首页 文章

如何在Graph Api中使用appRoleAssignment

提问于
浏览
2

我正在尝试利用beta api为应用程序分配azure用户 .

我查看了文档并尝试使用 HttpClientWebClient 在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 回答

  • 3

    看起来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)):

    https://graph.windows.net/{tenant-id}/users/{id}/appRoleAssignments?api-version=1.6
       https://graph.microsoft.com/beta/users/{id}/appRoleAssignments
    

    要列出分配了组的所有应用程序角色:

    https://graph.windows.net/{tenant-id}/groups/{id}/appRoleAssignments?api-version=1.6
       https://graph.microsoft.com/beta/groups/{id}/appRoleAssignments
    

    要执行相反操作,请列出分配给应用的所有用户或组:

    https://graph.windows.net/{tenant-id}/servicePrincipals/{id}/appRoleAssignedTo?api-version=1.6
       https://graph.microsoft.com/beta/servicePrincipals/{id}/appRoleAssignedTo
    
  • 2

    在新的Azure门户中,在 "Enterprise applications" > (your app) > "Users and groups" 下,您将看到分配给应用程序的用户列表,以及分配给它们的应用程序角色 . 经过测试,您可以使用Microsoft Graph API请求执行相同的操作:

    https://graph.microsoft.com/beta/servicePrincipals/d0790296-0a14-4ab1-8f6c-4e4d3eb03036/appRoleAssignments
    

    您可以在 "Enterprise applications" > (your app) >Properties>Object ID 下获得服务委托人 . 这是回复样本:
    enter image description here

    id 是角色ID,在您的方案中,您可以在 principalId 与特定用户的对象ID匹配时检查记录是否存在, principalTypeuser .

相关问题