我们在Azure中使用Oauth2。默认情况下,服务器以一小时的间隔返回令牌到期。有没有办法改变到期时间间隔?
答案 0 :(得分:5)
现在可以配置令牌生存期。您可以在此处阅读更多内容:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes。
备注:此功能处于预览状态,不会以这种方式投入生产。以下标题也放在我上面提到的文档链接上。
在预览期间听取了客户的意见后,我们计划将此功能替换为Azure Active Directory条件访问中的新功能。新功能完成后,此功能最终将在通知期后弃用。如果您使用可配置令牌生命周期策略,请准备好在可用时切换到新的条件访问功能。
原始答案:
目前无法更改到期时间间隔。这些是当前的到期时间。
访问令牌持续1小时
刷新令牌持续14天,但
来源:http://www.cloudidentity.com/blog/2015/03/20/azure-ad-token-lifetime/以及我自己的经历。
答案 1 :(得分:4)
您必须使用power shell执行以下两个步骤:
制定新政策。此策略将超时设置为2小时
New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "MyWebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"
将此政策应用于您的网站
Add-AzureADServicePrincipalPolicy -Id <ObjectId of the ServicePrincipal> -RefObjectId <ObjectId of the Policy>
注意:
要获取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 token
和expiry time
,在发出请求之前,您可以检查令牌是否已过期(或即将过期)。在这种情况下,您可以使用此刷新令牌获取新令牌,然后发出请求。