使用 Azure AD 图形客户端获取 Active Directory 管理员
Get Active Directory Administrators using Azure AD Graph Client
使用 Azure Active Directory 图形客户端,我可以使用 ff 成功查询 AD 的用户角色。代码:
var activeDirectoryClient = new ActiveDirectoryClient(); // Instantiate the Graph Client here.
var adRoles = await activeDirectoryClient.DirectoryRoles.ExecuteAsync();
然而,是否有可能获得:
- 管理员角色的列表?和
- 属于管理员角色的用户列表?
在这种情况下,我对管理员的定义是 公司管理员 角色下的用户,或者能够授权应用程序的用户(通过授权请求 URL 格式为 https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxx-xxx&resource=yyy-yyy&redirect_uri=zzz-zzz&提示=admin_consent)
有几种方法可以做到这一点,让我们看看 REST API 作为起点。
您可以通过向 https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version
发出 GET 请求来获取每个 USER 的组和角色列表
成功后,returns指向此用户所属的群组和目录角色的链接集合
参考:Get a user's group and directory role memberships
要获得群组成员资格,您可以向以下地址发出 GET 请求:https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version
参考:Get a group's direct members
但是根据文档:
No functions or actions may be called on directory roles
这必须从 USER 对象完成。 SDK 将反映这一点。
IPagedCollection<IDirectoryObject> pagedCollection = retrievedUserFetcher.MemberOf.ExecuteAsync();
GraphAPI 控制台应用程序有一些很好的示例,可以向您展示如何完成这些操作:Program.cs
使用 Azure Active Directory 图形客户端,我可以使用 ff 成功查询 AD 的用户角色。代码:
var activeDirectoryClient = new ActiveDirectoryClient(); // Instantiate the Graph Client here.
var adRoles = await activeDirectoryClient.DirectoryRoles.ExecuteAsync();
然而,是否有可能获得:
- 管理员角色的列表?和
- 属于管理员角色的用户列表?
在这种情况下,我对管理员的定义是 公司管理员 角色下的用户,或者能够授权应用程序的用户(通过授权请求 URL 格式为 https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxx-xxx&resource=yyy-yyy&redirect_uri=zzz-zzz&提示=admin_consent)
有几种方法可以做到这一点,让我们看看 REST API 作为起点。
您可以通过向 https://graph.windows.net/myorganization/users/{user_id}/$links/memberOf?api-version
发出 GET 请求来获取每个 USER 的组和角色列表成功后,returns指向此用户所属的群组和目录角色的链接集合
参考:Get a user's group and directory role memberships
要获得群组成员资格,您可以向以下地址发出 GET 请求:https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version
参考:Get a group's direct members
但是根据文档:
No functions or actions may be called on directory roles
这必须从 USER 对象完成。 SDK 将反映这一点。
IPagedCollection<IDirectoryObject> pagedCollection = retrievedUserFetcher.MemberOf.ExecuteAsync();
GraphAPI 控制台应用程序有一些很好的示例,可以向您展示如何完成这些操作:Program.cs