Как настроить срок действия токена доступа Azure AD (с использованием ADAL)?
Мы используем Azure AD для аутентификации пользователей в нашем приложении WPF с использованием их учетных записей Office 365. Это делается с помощью библиотеки аутентификации Active Directory (ADAL).
В настоящее время им предлагается входить в систему каждый раз, когда они открывают приложение. Мы хотим изменить это, чтобы разрешить вход в приложение через кешированный токен. Это работает, но мы хотим сократить срок действия токена до 24 часов или менее, требуя еще одного входа по истечении этого времени.
Я не вижу способа манипулировать истечением токена доступа в коде. Это нужно сделать в Azure AD?
1 ответ
Резюме
Вы не можете использовать ADAL для настройки срока действия токенов. ADAL - это библиотека аутентификации, которая помогает вам взаимодействовать со службой токенов, но вы можете установить конфигурацию времени жизни токена в вашем Принципале обслуживания, Приложении или Арендаторе.
Вам нужно будет использовать Powershell, чтобы создать политику, описывающую желаемое поведение, и связать ее с субъектом службы, клиентом или приложением. Помните, что если вы создаете мультитенантное приложение, владелец арендатора может перезаписать вашу политику.
tl; dr: не полагайтесь на время жизни токена в вашем приложении, так как оно может измениться в любое время.
Создайте и установите Token Lifetime Policy
Вы можете установить эти свойства с помощью команд Azure AD Powershell. Затем выполните следующие команды, чтобы установить время жизни токена доступа:
- Войдите в Powershell.
Connect-AzureAD -Confirm
- Создайте новую политику, чтобы установить время жизни токена доступа равным 2 часам. Вы можете изменить это значение от 10 минут до 1 дня.
New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "WebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"
- Получите объектный идентификатор policys.
Get-AzureAdPolicy
- Свяжите новую политику с вашим приложением. Вы можете получить objectId вашего приложения, используя GraphExplorer.
Add-AzureADApplicationPolicy -Id <ObjectId of the Application> -RefObjectId <ObjectId of the Policy>
Дополнительные примеры и полная документация см. В разделе Время жизни настраиваемого токена Azure AD.