【问题标题】:Azure add user authentication method using Microsoft.Graph.GraphServiceClientAzure 使用 Microsoft.Graph.GraphServiceClient 添加用户身份验证方法
【发布时间】:2020-09-24 10:32:45
【问题描述】:

我正在使用带有 SignInType 作为用户名的 GraphServiceClient 创建新用户,如下所示:

            var user = new User
        {
            AccountEnabled = true,

            GivenName = "Joe",
            Surname = "Bob",
            DisplayName = "Name",
            Mail = "joe@bob.com",
            MobilePhone = "111111111",
            Identities = new List<ObjectIdentity>()
            {
                new ObjectIdentity
                {
                    SignInType = "userName",
                    Issuer = "<Issuer...>",
                    IssuerAssignedId = "someName"
                },
            },
            PasswordProfile = new PasswordProfile
            {
                ForceChangePasswordNextSignIn = false,
                Password = "<pass>"
            },
            PasswordPolicies = "DisablePasswordExpiration,DisableStrongPassword",
        };

        await gsc.Users.Request().AddAsync(user);

在 Azure 中创建该用户后,我可以使用此帐户登录使用 B2C 登录策略的应用程序。但是,当我想为该用户调用 ResetPassword 策略时,在成功通过电子邮件验证后,我收到错误消息:“找不到提供的用户 ID 的帐户。”。经过反复试验,我发现 azure 用户配置文件选项卡“身份验证方法”中缺少数据。当我填写电子邮件输入时,一切正常,用户可以重置密码。

所以我正在寻找一种在创建期间如何将用户电子邮件填充到“身份验证方法”部分的方法。

【问题讨论】:

    标签: azure azure-ad-b2c


    【解决方案1】:

    在这种情况下,如果您想通过 Graph API 创建用户,则无法使用 Graph API 填充 strongAuthenticationEmail 属性。此属性保存与基于用户名的帐户关联的电子邮件,用于密码重置操作。用户流将在密码重置期间读取此属性。因此这是行不通的。

    您需要为基于用户名的旅程使用自定义策略,并将所有 strongAuthenticationEmail 实例替换为 extension_whatever。然后在您的 Graph API 有效负载中,将电子邮件地址插入名为 extension_GUID_whatever 的键中。

    https://github.com/azure-ad-b2c/samples/tree/master/policies/username-signup-or-signin

    【讨论】:

    • 谢谢,有没有办法通过代码填充这个 strongAuthenticationEmail?使用 Azure AD Graph API 或其他方式?
    • 不,因此我的回答
    • 嘿,还有一个问题,我不知道如何从代码中插入这个扩展我添加了一个额外的道具,如下所示: : AdditionalData = new Dictionary&lt;string, object&gt;() { { "extension_1111111111111111111111111111111_customEmail", "test@test.com" }, }, 但它不起作用 :( 我没有看到这个自定义政策中的价值
    • 您将其作为输出声明添加到正在执行读取操作的 AAD 技术配置文件中?您不会在门户中看到此声明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2012-07-05
    • 1970-01-01
    相关资源
    最近更新 更多