繁体   English   中英

b2c 用户的 Azure Graph api passwordprofile NULL

[英]Azure's Graph api passwordprofile NULL for b2c users

用户使用身份提供商本地帐户-电子邮件通过 Azure AD B2C 注册/登录。

我可以看到用户为租户注册(使用他们的密码): 在此处输入图片说明 当我运行示例“使用图形 API 管理用户帐户”来检查本地身份密码配置文件时,它们显示为空。 我的假设是当用户创建与其他用户资源相同的密码时会自动填充此属性。

有人可以给我一些指导我缺少什么吗?

public static async Task GetUserByIssuerAssignedID(AppSettings config, GraphServiceClient graphClient)
    {
        Console.Write("Enter user sign-in name (username or email address): ");
        string userName = Console.ReadLine();

        Console.WriteLine($"Looking for user with sign-in name '{userName}'...");

        try
        {
            // Get user by sign-in name
            var result = await graphClient.Users
                .Request()
                .Filter($"identities/any(c:c/issuerAssignedId eq '{userName}' and c/issuer eq '{config.TenantId}')")
                .Select(e => new
                {
                    e.PasswordProfile,
                    e.DisplayName,
                    e.Id,
                    e.Identities
                })
                .GetAsync();

            if (result != null)
            {
                Console.WriteLine(JsonConvert.SerializeObject(result));
            }

在此处输入图片说明 感谢您的帮助

这是一个预期的结果。

Azure AD B2C 不需要本地身份用户在下次登录时更改密码。如文档所述

该属性必须设置为.forceChangePasswordNextSignIn false

forceChangePasswordNextSignIn设置为true是没有意义的。 在这种情况下,通过 Microsoft Graph API 的 GET 方法将看不到passwordProfile

您可以在Microsoft Graph Explorer 中快速验证。

例如,如果您在 Azure AD 租户中创建一个具有"forceChangePasswordNextSignIn": true的用户,您将在结果中获得passwordProfile

如果你在 Azure AD B2C 租户中创建了一个"forceChangePasswordNextSignIn": true的用户,你可以在结果中得到"passwordProfile"但密码为空。

"passwordProfile": {
    "password": null,
    "forceChangePasswordNextSignIn": true,
    "forceChangePasswordNextSignInWithMfa": false
}

我们永远无法使用 Microsoft Graph API 或任何其他官方 API 获取用户密码。 Azure AD 不会存储密码。 所以你拿不到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM