Azure active directory 为什么我不能在图形资源管理器中向Approvles对象添加元素?

Azure active directory 为什么我不能在图形资源管理器中向Approvles对象添加元素?,azure-active-directory,saml,Azure Active Directory,Saml,我在azure中创建了一个应用程序,现在我对向应用程序用户添加特定角色感兴趣,以便允许将角色数据作为SAML集成的一部分放入令牌中 问题是我无法运行补丁并向Approvles对象添加第三个元素。这是我运行GET-Here后的对象 {ID} } 我只是在该集合中添加第三个元素,如下所示 , { "allowedMemberTypes": ["User"], "description": "groupdescription1", "displayNam

我在azure中创建了一个应用程序,现在我对向应用程序用户添加特定角色感兴趣,以便允许将角色数据作为SAML集成的一部分放入令牌中

问题是我无法运行补丁并向Approvles对象添加第三个元素。这是我运行GET-Here后的对象 {ID}

}

我只是在该集合中添加第三个元素,如下所示

, {
        "allowedMemberTypes": ["User"],
        "description": "groupdescription1",
        "displayName": "groupdisplayName1",
        "id": "9ef0f137-69c7-4ae1-ad90-28363c1f58ba",
        "isEnabled": true,
        "origin": "Application",
        "value": null
    }
但是,在使用第三个元素运行补丁更新后,我收到

{
"error": {
    "code": "Request_BadRequest",
    "message": "One or more properties on the service principal does not match the application object.",
    "innerError": {
        "request-id": "819a5e01-3005-413a-9c36-a698dd90b88d",
        "date": "2019-08-29T21:03:23"
    }
}
}

我可以用2个元素运行补丁更新。这没关系。但是为什么它不允许第三个元素呢

我在这里读

此功能在当前版本中被禁用

这是否意味着我无法实现增加第三个角色的目标? 我错过了什么?感谢您的帮助

我在这里看到过
这在1点上是可能的。

您只需要保留原来的两个批准,并向请求主体添加一个新的批准

{
    "appRoles": [{
        "allowedMemberTypes": ["User"],
        "description": "msiam_access",
        "displayName": "msiam_access",
        "id": "b9632174-c057-4f7e-951b-be3adc52bfe6",
        "isEnabled": true,
        "origin": "Application",
        "value": null
    }, {
        "allowedMemberTypes": ["User"],
        "description": "User",
        "displayName": "User",
        "id": "18d14569-c3bd-439b-9a66-3a2aee01d14f",
        "isEnabled": true,
        "origin": "Application",
        "value": null
    }, {
        "allowedMemberTypes": ["User"],
        "description": "groupdescription1",
        "displayName": "groupdisplayName1",
        "id": "9ef0f137-69c7-4ae1-ad90-28363c1f58ba",
        "isEnabled": true,
        "origin": "Application",
        "value": {a meaningful value here}
    }]
}
请注意,为新方法的“值”设置一个有意义的值。

解决方案:从新对象中删除属性“原点”

此对象无效

{
    "allowedMemberTypes": ["User"],
    "description": "groupdescription1",
    "displayName": "groupdisplayName1",
    "id": "9ef0f137-69c7-4ae1-ad90-28363c1f58ba",
    "isEnabled": true,
    "ORIGIN": "Application",
    "value": null
}
一旦我删除origin属性并重试补丁,它就像一个符咒一样工作

我想这个错误是很明显的

服务主体上的一个或多个属性与应用程序对象不匹配


只是没有无效的字段名。我错误地认为我可以从GET复制对象,并粘贴到补丁体中

对我来说,问题是使用
源代码:“ServicePrincipal”
,然后我可以在“value”属性中设置任何内容(但不允许使用空格)。

Hi@joey。我同意你的看法。表明它不能包含在任何POST或修补程序请求中。
{
    "allowedMemberTypes": ["User"],
    "description": "groupdescription1",
    "displayName": "groupdisplayName1",
    "id": "9ef0f137-69c7-4ae1-ad90-28363c1f58ba",
    "isEnabled": true,
    "ORIGIN": "Application",
    "value": null
}