Azure ad b2c 更新Azure B2C自定义策略中的显示名称
我们正在尝试使用声明转换更新自定义Azure B2C策略中的显示名称,但无法使其正常工作。策略执行时没有错误,但显示名称不会更新 我们不希望用户输入显示名称 回答了一个类似的问题,但解决方案中提供的转换在上传到Azure时未通过验证 以下是我们正在使用的更新转换:Azure ad b2c 更新Azure B2C自定义策略中的显示名称,azure-ad-b2c,Azure Ad B2c,我们正在尝试使用声明转换更新自定义Azure B2C策略中的显示名称,但无法使其正常工作。策略执行时没有错误,但显示名称不会更新 我们不希望用户输入显示名称 回答了一个类似的问题,但解决方案中提供的转换在上传到Azure时未通过验证 以下是我们正在使用的更新转换: <ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleC
<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
有一个示例使用上述转换 您发布的转换是正确的。所以我假设你没有按照正确的顺序使用它 您已写入,不希望用户设置显示名称。因此,您只需在技术概要文件中引入转换,该技术概要文件实际上会将用户的详细信息写入Active Directory 举例说明:
<TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
<Metadata>
<Item Key="Operation">Write</Item>
<Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<!-- Transform optional claims (given name, surname) to proper display name -->
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateDisplayNameFromFirstNameAndLastName" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" Required="true" />
</InputClaims>
<PersistedClaims>
<!-- Required claims -->
<PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
<PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
<PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
<!-- Optional claims. -->
<PersistedClaim ClaimTypeReferenceId="givenName" />
<PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
<OutputClaim ClaimTypeReferenceId="userPrincipalName" />
<OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
写
真的
假的
现在转换采用可选名称声明,并在(输入转换)将值写入目录之前创建适当的显示名称。如果未设置给定名称或姓氏,则将使用回退值(未知)。字典上的任何读取操作(登录等)都将返回一次性转换的显示名称
但是,您可以调整用于收集此信息的技术配置文件(例如LocalAccountSignUpWithLogonEmail),以要求这些字段具有值
...
<OutputClaim ClaimTypeReferenceId="givenName" Required="true" />
<OutputClaim ClaimTypeReferenceId="surName" Required="true" />
。。。
您如何调用此声明转换?i、 e.来自哪个技术概要?作为输入或输出声明转换?