使用 Powershell 为应用配置 Azure AD 访问令牌生存期策略不起作用



我们试图使用下面的powershell cmdlet将访问令牌到期时间配置为8小时,但在应用程序上没有强制执行。它在组织级应用时有效(即-IsOrganizationDefault$true(。

New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"08:00:00"}}') -DisplayName $policyName -IsOrganizationDefault $false -Type "TokenLifetimePolicy"

$app = Get-AzureADApplication -Filter "DisplayName eq '$applicationName'"
Add-AzureADApplicationPolicy -Id $app.ObjectId -RefObjectId $policy.Id

参考:https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes

*注:2020年5月30日之后,没有新租户能够使用可配置令牌生存期策略来配置会话和刷新令牌。但是,在弃用之后,您仍然可以配置访问令牌生存期

需要帮助将Azure AD中oAuth/OIDC应用程序的访问令牌到期时间配置为8小时(默认值为1小时(。

这是一个迟来的答案。希望它能帮助像我这样的迟到者。

令牌生存期策略不是基于用于请求资源的AAD应用程序注册(服务原则/企业应用程序(。但它适用于您试图访问的资源。因此,资源需要具有生存期令牌策略,而不是具有权限的AAD应用程序注册(服务原则/企业应用程序(。

例如,我有一个React前端,对后端进行API调用,两者都在Azure AD上注册为两个独立的应用程序。当用户通过前端登录时,他们将获得一个Id令牌(来自前端的服务原则(和一个访问令牌(来自后端的服务原则

您的PowerShell cmd将创建一个8小时长的令牌如果我在前端应用它,id令牌将持续8小时。同样,如果应用于后端,则对服务器的访问令牌将持续8小时

这是MSFT教程,用于扩展令牌生存期策略并应用于服务原则。请注意,令牌生存期必须小于24小时才能有效。

https://learn.microsoft.com/en-us/azure/active-directory/develop/configure-token-lifetimes#create-a-policy-fo-web-sign-in

根据我的测试,它目前只适用于-IsOrganizationDefault $true,无论使用Add-AzureADServicePrincipalPolicy还是Add-AzureADApplicationPolicy,如果是-IsOrganizationDefault $false,两者都不起作用。

目前,配置令牌生存期策略功能仍在预览中。我认为这个功能可能还没有完全实现,这已经造成了问题。微软应该在未来实施它。

问题已解决。创建了一个8小时的AccessTokenLifetime策略。在Application ServicePrincipal上应用了TokenLifetimePolicy。在Azure AD&在授权请求中将其作为作用域(而不是MS Graph默认作用域(传递,以生成8小时访问令牌。

最新更新