尝试将自定义角色添加到Azure AD应用程序

时间:2018-06-11 16:39:57

标签: single-sign-on azure-active-directory saml-2.0 claims-based-identity

我正在使用Microsoft Graph Editor将应用程序角色添加到Azure AD中启用SAML SSO的应用程序。我使用Get复制了现有的appRoles节,并对其进行了编辑以包含两个新角色。

https://graph.microsoft.com/beta/servicePrincipals/<objectID>
在这种情况下,

是我的应用程序的objectID。

但是,当我运行Patch调用来更新servicePrincipals数据时,它会抛出一个非常一般的错误(一个或多个属性包含无效值)。

我已经验证了JSON,但无法确定导致错误的原因。

我的JSON如下:

{
            "appRoles": [{
                            "allowedMemberTypes": ["User"],
                            "description": "msiam_access",
                            "displayName": "msiam_access",
                            "id": "b9632174-c057-4f7e-951b-be3adc52bfe6",
                            "isEnabled": true,
                            "origin": "Application",
                            "value": null
            },
            {
                            "allowedMemberTypes": ["User"],
                            "description": "Administrator",
                            "displayName": "Administrator",
                            "id": "b45591dd-c1f4-404e-9554-18fea972c3e4",
                            "isEnabled": true,
                            "origin": "ServicePrincipal",
                            "value": "SAML_Admin"
            },
            {
                            "allowedMemberTypes": ["User"],
                            "description": "ReadOnlyUsers",
                            "displayName": "ReadOnlyUsers",
                            "id": "e3c19ea4-e86a-4897-9bb5-3d2d115fed80",
                            "isEnabled": true,
                            "origin": "ServicePrincipal",
                            "value": "SAML_RO"
            }]

}

我还使用了GUID生成器来生成GUID。如果它们不是唯一的,我会得到一个错误。所以,我现在一直在裁决。

2 个答案:

答案 0 :(得分:0)

您需要更新应用程序,而不是服务主体。 自定义权限在Application对象上定义,并且仅反映在服务主体中。

所以你需要做一个PATCH:

https://graph.microsoft.com/beta/applications/<objectID>

其中objectID是Application对象的对象id(请注意,这与服务主体的对象ID不同)。

可能然后必须重新创建服务主体。

答案 1 :(得分:0)

感谢@juunas提供有用的反馈。

对我而言唯一有效的解决方案是使用新角色直接编辑Enterprise Application清单。我使用了GUID创建者Web应用程序来创建GUID,并且一切正常。