Microsoft GraphAPI:如何检索蔚蓝用户的已分配组?

时间:2018-08-27 09:14:26

标签: azure azure-active-directory microsoft-graph

您可以在上面看到我的问题,我想知道是否可以通过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/

但是,似乎此呼叫的响应不包括该用户的实际分配组。

您认为可以检索天青用户的已分配组吗?这有可能吗?还是我需要做其他事情来检索这些信息?

希望您能理解我的观点,也期待任何答复。预先感谢!

3 个答案:

答案 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不是一个好主意。因为它仅返回用户直接隶属的组,但是安全组可以是安全组的成员。