在Azure AD B2C中使用自定义策略更改用户名

时间:2020-01-14 15:29:51

标签: azure-ad-b2c

我在自定义策略中使用username进行身份验证,电子邮件或电话都可以用作用户名:signInNames.emailAddresssignInNames.phoneNumber。现在我需要启用配置文件编辑,那里的用户可以更改电子邮件和电话。 我要到这里的问题是它说用户已经存在。 B2C是否允许更改用户名,或者此配置文件有什么问题?

以下是更新个人资料的技术资料:

                    <TechnicalProfile Id="AAD-UserWriteProfileUsingObjectId">
                    <Metadata>
                        <Item Key="Operation">Write</Item>
                        <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">false</Item>
                        <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
                    </Metadata>
                    <IncludeInSso>false</IncludeInSso>
                    <InputClaims>
                        <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
                    </InputClaims>
                    <PersistedClaims>
                        <!-- Required claims -->
                        <PersistedClaim ClaimTypeReferenceId="objectId" />
                        <PersistedClaim ClaimTypeReferenceId="signInNames.emailAddress" />
                        <PersistedClaim ClaimTypeReferenceId="signInNames.phoneNumber"  />

                        <!-- Optional claims -->
                        <PersistedClaim ClaimTypeReferenceId="givenName" />
                        <PersistedClaim ClaimTypeReferenceId="surname" />

                    </PersistedClaims>
                    <IncludeTechnicalProfile ReferenceId="AAD-Common" />
                </TechnicalProfile>

1 个答案:

答案 0 :(得分:0)

我已经对其进行了测试,可以成功更改用户名。

您可以参考Use the new extension property or custom attribute in a user journey进行配置。只需忽略步骤3,因为它不是自定义属性。

当我将当前用户名更改为现有用户名时,它将显示:

具有指定ID的用户已存在。请选择其他 一个。

因此请确保要修改的用户名在租户中不存在。