如何在 Graph 中使用 appRoleAssignment Api
How to use appRoleAssignment in Graph Api
我正在尝试利用测试版 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 请求的文档的实际文档。 Graph Explorer 似乎暗示示例是正确的,但通过各种尝试,我只能得到
的响应
{
"error": {
"code": "Request_UnsupportedQuery",
"message": "Direct queries to this resource type are not supported.",
...
}
}
我的基本 url 是
https://graph.microsoft.com/beta/appRoleAssignments/
示例说 {id}
但我不知道要输入什么。我输入了几个 guid、用户 ID、对象 ID、资源 ID,并且 none 有效。
它没有说任何访问被拒绝的消息,所以我认为它与作用域无关(尽管关于它的文档也有点空)。
理想情况下,我能够查看给定的来宾 Azure 用户是否有权访问特定的应用程序,然后我就能够去更新分配。我可能还需要删除作业。
在新的 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
下获得服务主体。这是响应示例:
id
是角色id,在你的场景中,当principalId
匹配特定用户的对象id时,你可以检查记录是否存在,而principalType
是user
.
[编辑 (2021-07-06):所有这些都使用 Microsoft Graph v1.0。]
Microsoft Graph API 的 beta 端点目前似乎不允许您列出 AppRoleAssignments。
[编辑 (2018-10-11):Microsoft Graph beta 端点现在支持列出 AppRoleAssignments 的功能,但您仍应将 Azure AD Graph 用于任何生产应用程序,直到它到达v1.0.] 幸运的是,Azure AD Graph API 确实 为此工作(另外,它不是测试端点,因此它更有可能稳定)。
列出为用户分配了 Microsoft Graph 的所有应用角色:
https://graph.microsoft.com/v1.0/users/{id}/appRoleAssignments
要列出分配给组的所有应用角色:
https://graph.microsoft.com/v1.0/groups/{id}/appRoleAssignments
反之,列出分配给某个应用的所有用户或组:
https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Azure AD Graph is deprecated and all support for it will cease in June 2022. 等效的请求是(与上面的顺序相同):
https://graph.windows.net/{tenant-id}/users/{id}/appRoleAssignments?api-version=1.6
https://graph.windows.net/{tenant-id}/groups/{id}/appRoleAssignments?api-version=1.6
https://graph.windows.net/{tenant-id}/servicePrincipals/{id}/appRoleAssignedTo?api-version=1.6
我正在尝试利用测试版 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 请求的文档的实际文档。 Graph Explorer 似乎暗示示例是正确的,但通过各种尝试,我只能得到
的响应{
"error": {
"code": "Request_UnsupportedQuery",
"message": "Direct queries to this resource type are not supported.",
...
}
}
我的基本 url 是 https://graph.microsoft.com/beta/appRoleAssignments/
示例说 {id}
但我不知道要输入什么。我输入了几个 guid、用户 ID、对象 ID、资源 ID,并且 none 有效。
它没有说任何访问被拒绝的消息,所以我认为它与作用域无关(尽管关于它的文档也有点空)。
理想情况下,我能够查看给定的来宾 Azure 用户是否有权访问特定的应用程序,然后我就能够去更新分配。我可能还需要删除作业。
在新的 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
下获得服务主体。这是响应示例:
id
是角色id,在你的场景中,当principalId
匹配特定用户的对象id时,你可以检查记录是否存在,而principalType
是user
.
[编辑 (2021-07-06):所有这些都使用 Microsoft Graph v1.0。]
Microsoft Graph API 的 beta 端点目前似乎不允许您列出 AppRoleAssignments。
[编辑 (2018-10-11):Microsoft Graph beta 端点现在支持列出 AppRoleAssignments 的功能,但您仍应将 Azure AD Graph 用于任何生产应用程序,直到它到达v1.0.] 幸运的是,Azure AD Graph API 确实 为此工作(另外,它不是测试端点,因此它更有可能稳定)。
列出为用户分配了 Microsoft Graph 的所有应用角色:
https://graph.microsoft.com/v1.0/users/{id}/appRoleAssignments
要列出分配给组的所有应用角色:
https://graph.microsoft.com/v1.0/groups/{id}/appRoleAssignments
反之,列出分配给某个应用的所有用户或组:
https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Azure AD Graph is deprecated and all support for it will cease in June 2022. 等效的请求是(与上面的顺序相同):
https://graph.windows.net/{tenant-id}/users/{id}/appRoleAssignments?api-version=1.6
https://graph.windows.net/{tenant-id}/groups/{id}/appRoleAssignments?api-version=1.6
https://graph.windows.net/{tenant-id}/servicePrincipals/{id}/appRoleAssignedTo?api-version=1.6