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>

你必须删除&lt;OutputClaim ClaimTypeReferenceId="displayName" /&gt;这一行

【讨论】:

以上是关于Azure B2C 自定义策略注册 UI - 删除显示名称的主要内容,如果未能解决你的问题,请参考以下文章

Azure AD B2C 自定义策略

Azure B2C 自定义策略:请求无效,客户端密码错误

蔚蓝 B2C。使用 Azure 门户编辑自定义属性

Azure AD B2C 自定义密码重置策略不会使用 + char\sign 验证电子邮件

如何从Xamarin Forms中的Azure B2C中删除缩放按钮

AD B2C 自定义策略自定义声明出现错误“无法验证提供的信息”。注册时