Каков правильный метод установки истечения срока действия токена доступа в неявном потоке в IdentityServer4?

Я попытался установить свойство AccessTokenLifetime для моего неявного клиента на 90 секунд. Клиент - это приложение javascript.

Однако клиент все еще может получить доступ к области api «api1» в течение примерно 5 минут после истечения срока действия токена.

Это код для конфигурации клиента в IdentityServer4:

// JavaScript Client
            new Client
            {
                ClientId = "js",
                ClientName = "JavaScript Client",
                AllowedGrantTypes = GrantTypes.Implicit,
                AllowAccessTokensViaBrowser = true,

                RedirectUris = { "http://localhost:5003/callback.html" },
                PostLogoutRedirectUris = { "http://localhost:5003/index.html" },
                AllowedCorsOrigins = { "http://localhost:5003" },

                AllowedScopes =
                {
                    IdentityServerConstants.StandardScopes.OpenId,
                    IdentityServerConstants.StandardScopes.Profile,
                    "api1"
                },
                AccessTokenLifetime = 90
            }

Я использую решение для быстрого запуска Javascript из репозитория IdentityServer github здесь https://github.com/IdentityServer/IdentityServer4.Samples/tree/release/Quickstarts/7_JavaScriptClient


person user1651370    schedule 07.03.2018    source источник


Ответы (1)


В промежуточном программном обеспечении проверки Microsoft JWT наблюдается перекос часов. По умолчанию установлено значение 5 минут и не может быть меньше. В противном случае - предполагаемое время жизни токена доступа as short as possible. Особенно в клиентах на стороне клиента, где вы открываете его браузеру. Итак, лучшее решение - оставьте значение по умолчанию (300 секунд / 5 минут).

Проверьте эту тему - по этому поводу есть хорошая дискуссия.

person m3n7alsnak3    schedule 07.03.2018