我想使令牌仅在30分钟内对用户可用。如果我们配置令牌生存期策略,这是可行的,但它不起作用,因为我仍然获得有效期为1小时的令牌。
遵循此建议文档https://learn.microsoft.com/en-us/azure/active-directory/develop/configure-token-lifetimes#create-a-policy-for-web-sign-in
$policy = New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"00:30:00"}}') -DisplayName "Valid 30min" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"
# Get ID of the service principal
$sp = Get-AzureADServicePrincipal -Filter "DisplayName eq '<service principal display name>'"
# Assign policy to a service principal
Add-AzureADServicePrincipalPolicy -Id $sp.ObjectId -RefObjectId $policy.Id
如何使代币的有效期仅为30分钟?
2条答案
按热度按时间eanckbw91#
我尝试在我的环境中重现相同的结果,得到以下结果:
我使用以下命令创建了策略:
为了将策略添加到服务主体,我使用了以下命令:
添加策略后,我为Azure服务主体生成了令牌,但令牌生存期策略失败。
IsOrganizationDefault
的值更改为$True**来创建令牌生存期策略,如下所示:30
分钟。**如果问题仍然存在,请检查该策略是否未被具有更高优先级的策略覆盖。
yv5phkfx2#
我遵循了相同的文档步骤,并在本地环境中对此进行了测试,我能够将服务主体的访问令牌生存期设置为30分钟。
步骤1:为其中一个生存期为30分钟的SP创建配置生存期令牌策略,如下所示。
步骤2:从 Postman 处创建访问令牌,并通过jwt.ms验证访问令牌的到期时间,如下所示。
此策略有几个策略评估限制和优先级规则,有关详细信息,请参阅本文档。