如何配置 Azure AD 访问令牌的过期时间(使用 ADAL)?
How can I configure the expiration time of an Azure AD access token (using ADAL)?
我们使用 Azure AD 通过用户的 Office 365 帐户对用户进行身份验证以进入我们的 WPF 应用程序。这是使用 Active Directory 身份验证库 (ADAL) 完成的。
目前,他们每次打开应用程序时都会提示登录。我们想更改此设置以允许通过缓存的令牌登录到应用程序。这可行,但我们希望将令牌的到期时间缩短到 24 小时或更短,要求在该时间过后再次登录。
我没有看到在代码中操纵访问令牌过期的方法。这是需要在 Azure AD 中完成的事情吗?
总结
您不能使用 ADAL 配置令牌的过期时间。 ADAL 是一个身份验证库,可帮助您与令牌服务交互,但您可以在您的服务主体、应用程序或租户上设置令牌生命周期配置。
您需要使用 Powershell 创建一个描述您想要的行为的策略,然后 link 将其发送给您的服务主体、租户或应用程序。请记住,如果您正在构建多租户应用程序,则租户的所有者可以覆盖您的策略。
tl;dr: 不要依赖应用程序中的令牌生命周期,因为它可以随时更改。
创建并设置令牌生命周期策略
您可以使用 Azure AD Powershell Commands 设置这些属性。然后 运行 以下命令设置访问令牌生命周期:
- 登录 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"
- 获取策略的 ObjectId。
Get-AzureAdPolicy
- Link 新政策到您的申请。您可以使用 GraphExplorer.
获取应用的 objectId
Add-AzureADApplicationPolicy -Id <ObjectId of the Application> -RefObjectId <ObjectId of the Policy>
有关更多示例和完整文档,请查看 Azure AD Configurable Token Lifetime。
我们使用 Azure AD 通过用户的 Office 365 帐户对用户进行身份验证以进入我们的 WPF 应用程序。这是使用 Active Directory 身份验证库 (ADAL) 完成的。
目前,他们每次打开应用程序时都会提示登录。我们想更改此设置以允许通过缓存的令牌登录到应用程序。这可行,但我们希望将令牌的到期时间缩短到 24 小时或更短,要求在该时间过后再次登录。
我没有看到在代码中操纵访问令牌过期的方法。这是需要在 Azure AD 中完成的事情吗?
总结
您不能使用 ADAL 配置令牌的过期时间。 ADAL 是一个身份验证库,可帮助您与令牌服务交互,但您可以在您的服务主体、应用程序或租户上设置令牌生命周期配置。
您需要使用 Powershell 创建一个描述您想要的行为的策略,然后 link 将其发送给您的服务主体、租户或应用程序。请记住,如果您正在构建多租户应用程序,则租户的所有者可以覆盖您的策略。
tl;dr: 不要依赖应用程序中的令牌生命周期,因为它可以随时更改。
创建并设置令牌生命周期策略
您可以使用 Azure AD Powershell Commands 设置这些属性。然后 运行 以下命令设置访问令牌生命周期:
- 登录 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"
- 获取策略的 ObjectId。
Get-AzureAdPolicy
- Link 新政策到您的申请。您可以使用 GraphExplorer. 获取应用的 objectId
Add-AzureADApplicationPolicy -Id <ObjectId of the Application> -RefObjectId <ObjectId of the Policy>
有关更多示例和完整文档,请查看 Azure AD Configurable Token Lifetime。