检查Microsoft Azure Active Directory中是否存在用户名

本文关键字:是否 存在 用户 Directory Microsoft Azure Active 检查 | 更新日期: 2023-09-27 18:29:13

我的MVC 5应用程序使用Microsoft Azure Active Directory登录。有人能告诉我如何检查Microsoft Azure Active Directory中是否已经存在用户名吗?

这样做的一般方法是什么?

检查Microsoft Azure Active Directory中是否存在用户名

您可以使用Graph API并查询所需的用户。有关Graph API的信息,请阅读:http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx
常见查询页面(http://msdn.microsoft.com/en-us/library/azure/jj126255.aspx)具有针对给定userPrincipalName的用户的查询。您应该使用此查询并检查它是否返回404(未找到)。

基本上,您要查找的查询是:"https://graph.windows.net/contoso.com/users/admin@contoso.com?api版本=2013-04-05"其中您需要将contoso.com替换为您的域和admin@contoso.com使用要搜索的upn。

您还应该查看GitHub上的Azure AD示例。在这种情况下,您可能对如何使用Graph API感兴趣:https://github.com/AzureADSamples/WebApp-GraphAPI-DotNet

此示例MVC web应用程序演示了如何使用Graph API查询Azure Active Directory。为了方便应用程序开发,它包括展示如何使用包含的Graph Library,并使用OpenID Connect授权用户连接到他们的目录数据。

替代解决方案:

  public async Task<User> FindByAlias(string alias, GraphServiceClient graphClient)
        {
            List<QueryOption> queryOptions = new List<QueryOption>
            {
                new QueryOption("$filter", $@"mailNickname eq '{alias}'")
            };
            var userResult = await graphClient.Users.Request(queryOptions).GetAsync();
            if (userResult.Count != 1) throw new ApplicationException($"Unable to find a user with the alias {alias}");
            return userResult[0];
        }