Azure Active Directory 中的可配置令牌生命周期
Configurable token lifetimes in Azure Active Directory
我无法从 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
的任何有用链接和解决方案
应用程序是在 B2C 门户中创建的吗?
假设答案是肯定的,这种行为是意料之中的:
Microsoft 有 2 个授权端点,V1 和 V2。
B2C 门户创建 V2 应用程序。 powershell 的令牌生命周期设置可能只适用于 V1 应用程序。
b2c 上有设置 blade 可以更改此设置。
另一种选择是从 Azure 活动目录 blade(相对于 b2c blade)创建应用程序。然后您可以使用 powershell 设置令牌生命周期。
我通过仅使用 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.
我为我的客户对此做了很多测试。由于没有使用最新版本的 PowerShell,我 运行 时不时地遇到这样的问题。
get-module
目前 AzureADPreview (V2) 的最新版本 2.0.0.114
Instructions to download here
正如 Seth 指出的那样,-IsOrganizationDefault $true 存在问题。
我发现的另一个问题是您的系统上有多个版本的 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 -> Application -> Tenant(组织)
我无法从 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
的任何有用链接和解决方案
应用程序是在 B2C 门户中创建的吗?
假设答案是肯定的,这种行为是意料之中的: Microsoft 有 2 个授权端点,V1 和 V2。
B2C 门户创建 V2 应用程序。 powershell 的令牌生命周期设置可能只适用于 V1 应用程序。
b2c 上有设置 blade 可以更改此设置。
另一种选择是从 Azure 活动目录 blade(相对于 b2c blade)创建应用程序。然后您可以使用 powershell 设置令牌生命周期。
我通过仅使用 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.
我为我的客户对此做了很多测试。由于没有使用最新版本的 PowerShell,我 运行 时不时地遇到这样的问题。
get-module
目前 AzureADPreview (V2) 的最新版本 2.0.0.114 Instructions to download here
正如 Seth 指出的那样,-IsOrganizationDefault $true 存在问题。
我发现的另一个问题是您的系统上有多个版本的 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 -> Application -> Tenant(组织)