Azure active directory 是否将claimsMappingPolicy分配给servicePrincipal给定错误?

Azure active directory 是否将claimsMappingPolicy分配给servicePrincipal给定错误?,azure-active-directory,microsoft-graph-api,azure-service-principal,Azure Active Directory,Microsoft Graph Api,Azure Service Principal,我遵循了下面的stackoverflow链接(答案由Allen Wu提供) 在访问令牌中添加自定义声明。但是当我尝试去做的时候,我得到了一个错误 将claimsMappingPolicy分配给servicePrincipal 我打开了MicrosoftGraph并执行了一个类似这样的POST调用- https://graph.microsoft.com/v1.0/servicePrincipals/8b6e2827-b3fa-467b-940d-324c301ca606/claimsMappi

我遵循了下面的stackoverflow链接(答案由Allen Wu提供)

在访问令牌中添加自定义声明。但是当我尝试去做的时候,我得到了一个错误

将claimsMappingPolicy分配给servicePrincipal

我打开了MicrosoftGraph并执行了一个类似这样的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"
        }
    }
}

这意味着servicePrincipal已被分配了claimsMappingPolicy

如果将另一个claimsMappingPolicy分配给它,则会出现409冲突错误

你需要先做,然后再做


现在,您可以将claimsMappingPolicy分配给servicePrincipal。

谢谢,@Allen,但是新的声明属于id\u令牌,而不是access\u令牌。有什么想法吗。我需要一些自定义声明才能使用access\u token。@debanka你确定吗?但根据我之前的回答,它应该在访问令牌中。确保您完成了所有步骤。在您之前提到的使用ROPC授权流的回答中,我使用的是使用PKCE授权授权流。首先我得到一个auth.code,然后我用access\u令牌、refresh\u令牌和id\u令牌交换auth代码。问题是我总是在id_令牌中获得自定义声明。@debanka我将为您进行测试并在此处发布。@debanka基于我的测试,使用PKCE授权授予流也有效。我想我已经知道原因了。您需要获取servicePrincipal(服务API)的访问令牌。您不应使用servicePrincipal作为客户端应用程序来获取令牌。请参阅此屏幕截图:。
范围中的id
是servicePrincipal的客户端id。您应该使用另一个Azure广告应用程序获取其访问令牌。