如何配置Azure AD访问令牌的到期时间(使用ADAL)?

时间:2017-10-20 15:56:45

标签: c# oauth-2.0 azure-active-directory access-token adal

我们使用Azure AD使用Office 365帐户对用户进行WPF应用程序身份验证。这是使用Active Directory身份验证库(ADAL)完成的。

目前,每次打开应用时都会提示他们登录。我们想要更改此设置以允许通过缓存令牌登录到应用程序。这有效但我们希望将令牌的到期时间缩短到24小时或更短,在此时间过后需要再次登录。

我没有看到在代码中操纵访问令牌过期的方法。这是否需要在Azure AD中完成?

1 个答案:

答案 0 :(得分:4)

摘要

您无法使用ADAL配置令牌的到期时间。 ADAL是一个身份验证库,可帮助您与令牌服务进行交互,但您可以在服务主体,应用程序或租户上设置令牌生存期配置。

您需要使用Powershell创建描述所需行为的策略,并将其链接到您的服务主体,租户或应用程序。请注意,如果您要构建多租户应用,则租户的所有者可以覆盖您的策略。

tl; dr: 不要依赖应用中的令牌生命周期,因为它可以随时更改。

创建并设置令牌生命周期策略

您可以使用Azure AD Powershell Commands设置这些属性。然后运行以下命令以设置访问令牌生存期:

  1. 登录Powershell。
  2. Connect-AzureAD -Confirm

    1. 创建新策略以将访问令牌生存期设置为2小时。您可以将其更改为10分钟到1天。
    2. New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "WebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"

      1. 获取政策ObjectId。
      2. Get-AzureAdPolicy

        1. 将新政策与您的申请相关联。您可以使用GraphExplorer
        2. 获取应用的objectId

          Add-AzureADApplicationPolicy -Id <ObjectId of the Application> -RefObjectId <ObjectId of the Policy>

          有关更多示例和完整文档,请结帐Azure AD Configurable Token Lifetime