我是azure AD的新手。
我有第三方API,它给了我一个userId。我编写了一个.NET Core API,它应该使用此userID并获取该特定用户的角色和组。
我已经阅读了有关微软图API的信息。不确定这在我的场景中是否有用。
还有任何其他方式以编程方式访问AD用户的角色和组。
用于获取组和角色信息的API
首先,Microsoft Graph API是获取您正在寻找的信息的最佳选择。
哪种确切的API最适合您取决于您的方案(a。您是否需要顶级直接会员资格或传递检查?b。您是否只需要安全组甚至O365组?),因此您是最好的评判者。
我将在这里列出其中的3个,你应该得到一些想法。
GET /users/{id | userPrincipalName}/memberOf
POST /users/{id | userPrincipalName}/getMemberGroups
返回用户所属的所有组。检查这个是否是Transitive,因此您可以放心,所有组都将被退回。最多2046作为1个请求的一部分返回。它也适用于O365组,您可以使用参数过滤到SecurityEnabled组实现和代码示例..如何获取令牌,调用API等。
// Load user's profile in formatted JSON.
public static async Task<string> GetUserJson(GraphServiceClient graphClient, string email, HttpContext httpContext)
{
if (email == null) return JsonConvert.SerializeObject(new { Message = "Email address cannot be null." }, Formatting.Indented);
try
{
// Load user profile.
var user = await graphClient.Users[email].Request().GetAsync();
return JsonConvert.SerializeObject(user, Formatting.Indented);
}
注意:该示例使用委派的权限。您可能需要直接使用应用程序权限或代表流程(如果您想在用户的上下文中执行此操作),因为您提到您的是被调用的API。此外,这只是其中一个示例,您应该了解如何使用SDK,但是一旦您开始进一步了解Microsoft Graph API和客户端库文档,就会有很多可用的示例。如果我找到更接近您的确切方案的样本,我会更新答案。