您可以在上面看到我的问题,我想知道是否可以通过Microsoft GraphAPI检索基于Azure Active Directory(AAD)的用户的分配组。
我的情况是,我有一个启用了Microsoft Azure的ASP.NET MVC项目。我的目标是使Azure用户可以使用其Azure帐户登录我的网站。
想法是,一个天蓝色的用户是管理员或用户(取决于天蓝色的组),并且取决于此角色组,该用户可以查看我的网页的更多或更少。
例如:
当Peter在我的网页上使用其Azure帐户登录时,他应该只能看到:
Add new Document
Edit Document
Remove Document
因为他仅在Azure Active Directory中被分配为“用户”。
但是,当Sabrina用她的azure帐户登录我的网页时,她应该能够执行与Peter相同的操作,但是她还可以看到:
Manage Products
Add new customer
etc.
因为她被分配为Azure Active Directory中的管理员。
我的问题是,我没有找到如何使用Microsoft GraphAPI检索用户的分配组。在我获得角色后用户可以看到或看不到的部分并不重要。
我已经尝试过此API调用:
https://graph.microsoft.com/v1.0/me/
但是,似乎此呼叫的响应不包括该用户的实际分配组。
您认为可以检索天青用户的已分配组吗?这有可能吗?还是我需要做其他事情来检索这些信息?
希望您能理解我的观点,也期待任何答复。预先感谢!
答案 0 :(得分:2)
在URL中添加/ memberOf以接收用户所属的组。
https://graph.microsoft.com/v1.0/me/memberOf
答案 1 :(得分:0)
以下是指向特定图形API的链接-https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_getmembergroups
在Github上查看此示例应用程序。它与任务跟踪器应用程序具有非常相似的功能,其中不同的用户能够根据他们所属的组执行不同的操作- https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims/blob/master/README.md
此外,在用户是太多组的成员的情况下,您将获得超额指示符,并且必须单独致电以获取所有组。在此处阅读有关“ hasgroups”和“ groups:src1”声明的信息-https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-id-and-access-tokens
答案 2 :(得分:0)
根据您的系统架构,如果某些用户的加入组过多,则API https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_getmembergroups将返回太多组。
但是,如果系统中具有权限的组不是太多,则可以使用以下API:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_checkmembergroups检查当前用户是否为指定组的成员。
使用此API:https://graph.microsoft.com/v1.0/me/memberOf不是一个好主意。因为它仅返回用户直接隶属的组,但是安全组可以是安全组的成员。