我想在用户每次登录或注册时从 Azure AD B2C 自定义策略生成 GUID,并每次返回相同的 GUID。我在微软文档中看到我们可以使用
ClaimTransformer
来生成GUID,但我不确定在哪里使用ClaimTransformer
。是否可以将 GUID 生成添加为 OrchestrationStep
?
[注意:我是 AD B2C 新手]
我不确定为什么您不使用用户的对象 ID 作为此 GUID?如果您需要知道这是否是一个已经建立的会话,您可以使用声明
objectIdFromSession
- 在 SSO 文档中引用
我可能缺少上下文,但这些是您需要的元素。
用于保存 GUID 的新声明类型 - 声明类型文档
<ClaimType Id="continuityGuid">
<DisplayName>User's Continuity </DisplayName>
<DataType>string</DataType>
<AdminHelpText>Continuity GUID for the user.</AdminHelpText>
<UserHelpText>Continuity GUID for the user.</UserHelpText>
</ClaimType>
用于创建 GUID 的声明转换 - 声明转换文档
<ClaimsTransformation Id="CP-CreateGuid" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="continuityGuid" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
执行声明转换的技术简介 - 声明转换协议提供商文档
<TechnicalProfile Id="Initialise-NewGuid">
<DisplayName>Create a new guid for the user</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IncludeClaimResolvingInClaimsHandling">true</Item>
</Metadata>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="continuityGuid" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="CP-CreateGuid"/>
</OutputClaimsTransformations>
</TechnicalProfile>
添加编排步骤...这将取决于您最好将其放置在哪里...也许就在最后一步之前 - 编排步骤文档
<OrchestrationStep Order="4" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="Generate-NewGuid" TechnicalProfileReferenceId="Initialise-NewGuid"/>
</ClaimsExchanges>
</OrchestrationStep>
在依赖方部分输出 GUID - 依赖方文档
<OutputClaim ClaimTypeReferenceId="continuityGuid" />