Azure B2C 自定义策略注册 UI - 删除显示名称
Posted
技术标签:
【中文标题】Azure B2C 自定义策略注册 UI - 删除显示名称【英文标题】:Azure B2C Custom Policy Sign Up UI- Remove display name 【发布时间】:2021-02-12 06:41:21 【问题描述】:我已经使用 LocalAndSocialAccount 入门包为 Azure AD B2C 设置了自定义策略。我正在尝试从注册 UI 中删除显示名称。我之前读过,这可以通过在 LocalAccountSignUpWithLogonEmail 技术配置文件中删除 <OutputClaim ClaimTypeReferenceId="displayName" />
来完成。
但是这不似乎对我有用。任何人都可以提供有关任何修复的任何见解吗?
我的 TrustFrameworkExtensions.xml:
<ClaimsProvider>
<DisplayName>Local Account</DisplayName>
<TechnicalProfiles>
<!--Local account sign-up page-->
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" />
<OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
<OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surName" />
<OutputClaim ClaimTypeReferenceId="dateOfBirth" />
<OutputClaim ClaimTypeReferenceId="verificationCode"/>
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
我的 SignUporSignIn.xml:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="verificationCode" DefaultValue=""/>
<OutputClaim ClaimTypeReferenceId="dateOfBirth" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="Policy:TenantObjectId" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
【问题讨论】:
【参考方案1】:这是因为您的技术资料与该文件的“基础”文件合并。因此,由于它存在于基础中,因此无法正常工作。 要么更改您的技术资料 ID,使其不与基础文件中的 ID 合并,要么删除基础文件中的输出声明。
【讨论】:
感谢您的回复。我尝试了您的建议,但没有成功。基本文件是指 TrustFrameworkBase.xml 文件吗?尝试修改它时出现异常。更改 id 也没有用。你能举个例子吗?【参考方案2】:你需要在你的基地中删除它
在文件 TrustFrameworkBase.xml 的第 631 行
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<DisplayName>Email signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IpAddressClaimReferenceId">IpAddress</Item>
<Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" />
<OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
<OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
<OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
<OutputClaim ClaimTypeReferenceId="newUser" />
<!-- Optional claims, to be collected from the user -->
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surName" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail" />
</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
你必须删除<OutputClaim ClaimTypeReferenceId="displayName" />
这一行
【讨论】:
以上是关于Azure B2C 自定义策略注册 UI - 删除显示名称的主要内容,如果未能解决你的问题,请参考以下文章
Azure AD B2C 自定义密码重置策略不会使用 + char\sign 验证电子邮件