Azure MS Graph声明Map策略PowerShell

wn9m85ua  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(204)

我对MS Graph中与索赔Map政策相关的文章[Vague]感到有点困惑。我正在尝试使用PowerShell创建声明。使用以下格式创建新的声明Map时出现错误New-MgPolicyClaimMappingPolicy:属性定义的值无效。
这里需要帮助!

$policymap=[ordered]@{
definition=@(
@"
{
    "claimsMappingPolicy" :
        {
            "claimsSchema":[
                {
                    "source":"user"
                    "id":"assignedrikes"
                    "samlclaimtype":"https://aws.amazon.com/SAML/Attributes/Role"
                },
                {
                    "source":"user"
                    "id":"assignedrikes"
                    "samlclaimtype":"https://aws.amazon.com/SAML/Attributes/RoleSessionName"
                }
            ]
        }
    }
"@
)
displayname="Test"
isorganizationdefault=$false
}

New-MgPolicyClaimMappingPolicy -BodyParameter $policymap
rdlzhqv9

rdlzhqv91#

新索赔Map出现错误New-MgPolicyClaimMappingPolicy
如果您在运行下面的脚本时使用不正确的格式samlClaimtype而不是使用MgPolicyClaimMappingPolicy,确保安装Azure AD预览,则可能会发生此错误。

  • 请检查以下几个解决方法:*

安装了Azure AD预览模块并使用以下脚本创建了声明。

Connect-AzureAD
New-AzureADPolicy -Definition @('
{
    "ClaimsMappingPolicy":
    {
        "Version":1,"IncludeBasicClaimSet":"true", 
        "ClaimsSchema": [{"Source":"user","ID":"extensionattribute1","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/vikram","JwtClaimType":"vikram"}]
    }
}') -DisplayName "vikram" -Type "ClaimsMappingPolicy"

结果:

尝试添加服务主体并检查是否成功。
对于服务主体ID,转到Azure门户->企业应用->您的Web API->对象ID,如下所示:

Add-AzureADServicePrincipalPolicy -Id <ObjectId of the Web API ServicePrincipal> -RefObjectId <ObjectId of the Policy>

Get-AzureADServicePrincipalPolicy -Id <ObjectId of the Web API ServicePrincipal>

要为该声明赋值,请使用您的租户管理员帐户登录到Microsoft Graph Explorer并运行以下脚本。这将成功完成您的索赔Map的开发。**

PATCH https://graph.microsoft.com/beta/me
{
"onPremisesExtensionAttributes": 
    {
        "extensionAttribute1": "vedha"
    }
}

现在转到Azure门户->Azure Active Directory->应用注册->你的应用->清单,如下所示将声明接受为

然后,在[管理]下的[暴露API]中,编辑您的应用ID URI模式,如**https://<yourTenantDomain>**,而不是默认的api://<GUID>,然后保存。
生成访问令牌,您可以看到您在解码令牌中创建的自定义声明。要解密令牌,可以使用jwt.ms网站

相关问题