首页 > 解决方案 > 将 claimMappingPolicy 分配给 servicePrincipal 给出错误?

问题描述

我已经按照下面的 stackoverflow 链接(Allen Wu 提供的答案) 当范围不是 Azure AD 中的 Graph API 时,如何添加自定义声明并检索其作为 access_token 的一部分?

在访问令牌中添加自定义声明。但是当我尝试时遇到错误

将 claimMappingPolicy 分配给 servicePrincipal。

我已经打开了 microsoft graph 并像这样执行了一个 POST 调用-

https://graph.microsoft.com/v1.0/servicePrincipals/8b6e2827-b3fa-467b-940d-324c301ca606/claimsMappingPolicies/$ref

与请求正文

{
"@odata.id":"https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/fce7f260-9598-426d-b8c2-7e589b25415b"   
}

但我得到一个带有以下响应预览的 409 响应代码:

{
    "error": {
        "code": "Request_MultipleObjectsWithSameKeyValue",
        "message": "Request contains property changes that would result in property-uniqueness violation(s). Please retry your request with corrected values.",
        "innerError": {
            "date": "2020-10-18T06:32:23",
            "request-id": "ae69cb4f-716d-4d56-a123-572c76ace2e0",
            "client-request-id": "29b0130e-8b7a-d09d-1188-2856c99dad8e"
        }
    }
}

标签: azure-active-directorymicrosoft-graph-apiazure-service-principal

解决方案


这意味着已为 servicePrincipal 分配了 claimMappingPolicy。

如果您为其分配另一个 claimMappingPolicy,您将收到 409 Conflict 错误。

您需要先列出分配的 claimMappingPolicy,然后再删除 ClaimsMappingPolicy

现在您可以将 claimMappingPolicy 分配给 servicePrincipal。


推荐阅读