我正在尝试利用beta api为应用程序分配azure用户 .
我查看了文档并尝试使用 HttpClient
和 WebClient
在C#控制台应用程序中进行了各种尝试,但无法成功 . 然后我去了Microsoft graph explorer https://developer.microsoft.com/en-us/graph/graph-explorer . 我无法让它发挥作用 .
我查看了文档https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/approleassignment_get
该文档的HTTP请求的实际文档与Example不匹配 . 图形浏览器似乎暗示该示例是正确的,但通过各种尝试,我只能获得响应
{
"error": {
"code": "Request_UnsupportedQuery",
"message": "Direct queries to this resource type are not supported.",
...
}
}
我的基本网址是https://graph.microsoft.com/beta/appRoleAssignments/
示例说 {id}
但我不知道要放什么 . 我输入了几个guid,用户ID,对象ID,资源id,没有工作 .
它并没有说任何访问被拒绝的消息所以我认为它与Scopes无关(尽管文档对此也有点空洞) .
理想情况下,我能够看到对于给定的Guest Azure用户是否可以访问特定应用程序,那么我将能够更新分配 . 我可能还需要删除作业 .
2 回答
看起来Microsoft Graph API的beta endpoints 目前不允许您列出AppRoleAssignments . [编辑(2018-10-11):Microsoft Graph beta endpoints 现在支持列出AppRoleAssignments的功能,但您仍应将Azure AD Graph用于任何 生产环境 应用程序,直到它达到v1.0 . ]幸运的是,Azure AD Graph API确实如此为此工作(另外,'s not a beta endpoint, so it'更可能稳定) .
列出分配用户的所有应用程序角色(使用Azure AD Graph和Microsoft Graph(beta)):
要列出分配了组的所有应用程序角色:
要执行相反操作,请列出分配给应用的所有用户或组:
在新的Azure门户中,在
"Enterprise applications" > (your app) > "Users and groups"
下,您将看到分配给应用程序的用户列表,以及分配给它们的应用程序角色 . 经过测试,您可以使用Microsoft Graph API请求执行相同的操作:您可以在
"Enterprise applications" > (your app) >Properties>Object ID
下获得服务委托人 . 这是回复样本:id
是角色ID,在您的方案中,您可以在principalId
与特定用户的对象ID匹配时检查记录是否存在,principalType
是user
.