Azure AD B2C 自定义策略 - 仅使用 String.Format 删除连字符



在 Azure B2C 自定义策略中,我想从 objectId(GUID( 声明类型中删除连字符"-"并将其分配给另一个声明类型。

例如:

输入 : e8023a66-30ed-4e31-a17e-c013081704a0 型号 : e8023a6630ed4e31a17ec013081704a0

我目前已尝试以下方法:

<InputParameter Id="stringFormat" DataType="string" Value="00000000000000000000000000000000,{0}" />
<InputParameter Id="stringFormat" DataType="string" Value="{0:################################}" />
<InputParameter Id="stringFormat" DataType="string" Value="{0:#}" /> 

我正在使用 FormatStringClaim 转换方法 在 ClaimsTransformation 中实现相同的效果,但是该值被分配给带有连字符的目标声明类型。

你能帮我删除连字符吗?

注意: 我无法使用任何其他字符串操作,如替换或拆分,因为 Azure AD 仅支持 String.Format 方法。

我在 ClaimsTransformation 中使用 FormatStringClaim 转换方法来实现相同的目的,但是该值被分配给带有连字符的目标声明类型。

听起来您错误地配置了声明转换,并将原始 GUID 分配为输入和输出声明。您需要使用要在其中存储修改后的 GUID 的声明更新声明类型引用 ID。

例:

<ClaimsTransformation Id="RemoveHash" TransformationMethod="FormatStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="originalGuid" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="modifiedGuid" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>

最新更新