如何在Graph Api中使用appRoleAssignment

And*_*dre 5 azure-ad-graph-api microsoft-graph

我正在尝试利用Beta API将Azure用户分配给应用程序。

我查看了文档,并使用HttpClient和在C#控制台应用程序中尝试了多种尝试WebClient,但均未成功。然后,我去了Microsoft图浏览器https://developer.microsoft.com/en-us/graph/graph-explorer。我无法正常工作。

我看了一下文档 https://developer.microsoft.com/zh-cn/graph/docs/api-reference/beta/api/approleassignment_get

该文档的HTTP请求的实际文档与示例不匹配。Graph Explorer似乎暗示该示例是正确的,但是通过各种尝试,我只能得到

{
    "error": {
        "code": "Request_UnsupportedQuery",
        "message": "Direct queries to this resource type are not supported.",
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我的基本网址是 https://graph.microsoft.com/beta/appRoleAssignments/

该示例说,{id}但我不知道要输入什么。我输入了几个guid,用户ID,对象ID,资源ID,但没有一个起作用。

这并不是说有任何拒绝访问的消息,因此我认为它与Scopes无关(尽管与此同时文档也有些空白)。

理想情况下,我可以查看给定的Guest Azure用户是否有权访问特定的应用程序,然后可以去更新作业。我可能还需要删除分配。

Phi*_*ret 6

看起来Microsoft Graph API的beta终结点当前不允许您列出AppRoleAssignments。[编辑(2018-10-11):Microsoft Graph Beta终结点现在支持列出AppRoleAssignments的功能,尽管您仍应将Azure AD Graph用于任何生产应用程序,直到v1.0为止。]幸运的是,Azure AD Graph API 确实可以做到这一点(此外,它不是beta端点,因此更可能稳定)。

若要列出分配给用户的所有应用程序角色(使用Azure AD Graph和Microsoft Graph(beta)):

   https://graph.windows.net/{tenant-id}/users/{id}/appRoleAssignments?api-version=1.6
   https://graph.microsoft.com/beta/users/{id}/appRoleAssignments
Run Code Online (Sandbox Code Playgroud)

要列出所有应用角色,请分配一个组:

   https://graph.windows.net/{tenant-id}/groups/{id}/appRoleAssignments?api-version=1.6
   https://graph.microsoft.com/beta/groups/{id}/appRoleAssignments
Run Code Online (Sandbox Code Playgroud)

若要进行相反操作,并列出分配给应用程序的所有用户或组,请执行以下操作:

   https://graph.windows.net/{tenant-id}/servicePrincipals/{id}/appRoleAssignedTo?api-version=1.6
   https://graph.microsoft.com/beta/servicePrincipals/{id}/appRoleAssignedTo
Run Code Online (Sandbox Code Playgroud)