我正在使用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。如果它们不是唯一的,我会得到一个错误。所以,我现在一直在裁决。
答案 0 :(得分:0)
您需要更新应用程序,而不是服务主体。 自定义权限在Application对象上定义,并且仅反映在服务主体中。
所以你需要做一个PATCH:
https://graph.microsoft.com/beta/applications/<objectID>
其中objectID是Application对象的对象id(请注意,这与服务主体的对象ID不同)。
您可能然后必须重新创建服务主体。
答案 1 :(得分:0)
感谢@juunas提供有用的反馈。
对我而言唯一有效的解决方案是使用新角色直接编辑Enterprise Application清单。我使用了GUID创建者Web应用程序来创建GUID,并且一切正常。