如何从 Azure AD B2C 返回令牌中的 GUID?

问题描述 投票:0回答:1

我想在用户每次登录或注册时从 Azure AD B2C 自定义策略生成 GUID,并每次返回相同的 GUID。我在微软文档中看到我们可以使用

ClaimTransformer
来生成GUID,但我不确定在哪里使用
ClaimTransformer
。是否可以将 GUID 生成添加为
OrchestrationStep
? [注意:我是 AD B2C 新手]

azure active-directory azure-ad-b2c azure-ad-b2c-custom-policy
1个回答
0
投票

我不确定为什么您不使用用户的对象 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" />
© www.soinside.com 2019 - 2024. All rights reserved.