Azure Oauth - 如何更改令牌到期时间?

时间:2015-07-01 13:07:55

标签: azure oauth-2.0

我们在Azure中使用Oauth2。默认情况下,服务器以一小时的间隔返回令牌到期。有没有办法改变到期时间间隔?

3 个答案:

答案 0 :(得分:5)

现在可以配置令牌生存期。您可以在此处阅读更多内容:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes

备注:此功能处于预览状态,不会以这种方式投入生产。以下标题也放在我上面提到的文档链接上。

  

在预览期间听取了客户的意见后,我们计划将此功能替换为Azure Active Directory条件访问中的新功能。新功能完成后,此功能最终将在通知期后弃用。如果您使用可配置令牌生命周期策略,请准备好在可用时切换到新的条件访问功能。

原始答案:

目前无法更改到期时间间隔。这些是当前的到期时间。

  • 访问令牌持续1小时

  • 刷新令牌持续14天,但

    • 如果您在这14天内使用刷新令牌,您将收到一个新的有效窗口向前移动14天。你可以重复这个技巧长达90天的总有效期,然后你将不得不重新认证
    • 由于独立于您的应用的原因(例如,用户更改密码),刷新令牌可能会在任何时候失效。因此,您不应该依赖于代码中的上述内容 - 您的逻辑应始终假设刷新令牌可能随时失败
    • 刷新客户MSA帐户的令牌问题仅持续12个小时

来源:http://www.cloudidentity.com/blog/2015/03/20/azure-ad-token-lifetime/以及我自己的经历。

答案 1 :(得分:4)

您必须使用power shell执行以下两个步骤:

  1. 制定新政策。此策略将超时设置为2小时 New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "MyWebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"

  2. 将此政策应用于您的网站

    Add-AzureADServicePrincipalPolicy -Id <ObjectId of the ServicePrincipal> -RefObjectId <ObjectId of the Policy>

  3. 注意: 要获取ServicePrincipal的ObjectId,请运行以下命令:Get-AzureADServicePrincipal

    要获取策略的ObjectId,请运行以下命令:Get-AzureADPolicy

    有关详细信息,请参阅此文档:https://docs.microsoft.com/en-us/azure/active-directory/active-directory-configurable-token-lifetimes

答案 2 :(得分:0)

假设您正在谈论Azure AD,AFAIK则无法这样做。

但是,在响应和令牌中,您还可以获得一个refresh token,可用于获取新令牌。您可以做的是缓存refresh tokenexpiry time,在发出请求之前,您可以检查令牌是否已过期(或即将过期)。在这种情况下,您可以使用此刷新令牌获取新令牌,然后发出请求。