我无法从PowerShell分配TokenLifetimePolicy
Azure AD应用程序策略。我收到了错误BadRequest
:Message: Open navigation properties are not supported on OpenTypes.Property name: 'policies
我正在尝试从Configurable token lifetimes in Azure Active Directory
实施令牌到期时间请参阅下面的屏幕截图,欢迎使用AzureAD cmdlet Add-AzureADApplicationPolicy
上的所有有用链接和解决方案
答案 0 :(得分:1)
我仅使用New-AzureADPolicy
cmdlet并设置-IsOrganizationDefault $true
而不是$false
才能使其正常工作。效果需要一段时间才能看到它。所以等待大约30分钟到一个小时(我不知道多久)。之后,您的新政策将被创建和应用。还要记住这是PowerShell,因此cmdlet中没有空格。
示例:
New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxInactiveTime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "PolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"
多行版本:
New-AzureADPolicy -Definition @(
'
{
"TokenLifetimePolicy":
{
"Version": 1,
"AccessTokenLifetime": "02:00:00",
"MaxInactiveTime": "02:00:00",
"MaxAgeSessionSingleFactor": "02:00:00"
}
}
'
) -DisplayName "PolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"
Microsoft可能会使用IsOrganizationDefault $true
解决此问题。请在问题中详细了解:Azure AD Configurable Token Lifetimes not being Applied。
答案 1 :(得分:1)
我为我的客户测试了这一点。由于没有最新版本的PowerShell,我偶尔会遇到类似这样的问题。
get-module
目前AzureADPreview(V2)的最新版本2.0.0.114 Instructions to download here
Seth指出-IsOrganizationDefault $是一个问题。
我发现的另一个问题是在您的系统上安装了多个版本的PowerShell,而且它加载了一个没有更新位的错误版本。我上周五打了这个 - 我不得不擦掉所有东西并重新安装 - 然后它就修好了。
另外 -
之间有区别:
Add-AzureADApplicationPolicy
和
Add-AzureADServicePrincipalPolicy
一个用于应用程序对象,另一个用于ServicePrincipal。如果您要应用它来说,基于SAML的应用程序,那么您应该将它应用于ServicePrincpal。
注意:应用程序对象和servicePrincipal对象有不同的ObjectID。不要混淆这些。对于实验,请针对您的应用程序运行两个cmd:
Get-AzureADServicePrincipal -SearchString <name of app>
Get-AzureADApplication -SearchString <name of app>
如果您使用了错误的ObjectID - 当您开始应用该政策
时,请不要这样做这些政策的顺序是:ServicePrincipal - &gt;申请 - &gt;租户(组织)
答案 2 :(得分:0)
是否在B2C门户中创建了应用程序?
假设答案是肯定的,这种行为是预期的: Microsoft有2个授权端点,V1和V2。
B2C门户网站创建V2应用程序。来自powershell的令牌生存期设置可能仅适用于V1应用程序。
b2c刀片上有一些设置可以更改此设置。
另一个选项是从azure活动目录刀片(而不是b2c刀片)创建应用程序。然后,您可以使用powershell设置令牌生存时间。