Azure AD B2C 字符串格式声明

时间:2021-02-12 18:24:03

标签: azure-ad-b2c azure-ad-b2c-custom-policy

我想用一次性密码发送短信,但要求必须在句子中: “这是您的一次性密码123456,请确认您的帐号”。

代码生成:

 <TechnicalProfile Id="GenerateOtpSms">
      <DisplayName>OTP</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="Operation">GenerateCode</Item>
        <Item Key="CodeExpirationInSeconds">1200</Item>
        <Item Key="CodeLength">6</Item>
        <Item Key="CharacterSet">0-9</Item>
        <Item Key="ReuseSameCode">false</Item>
        <Item Key="MaxNumAttempts">5</Item>
        <Item Key="NumCodeGenerationAttempts">5</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="signInNames.phoneNumber" PartnerClaimType="identifier" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="otpSms" PartnerClaimType="otpSmsGenerated" />
      </OutputClaims>

我已经试过了:

  <ClaimsTransformation Id="CreateMessageTransformation" TransformationMethod="FormatStringClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="otpSms" TransformationClaimType="inputClaim" />
    </InputClaims>
    <InputParameters>
      <InputParameter Id="stringFormat" DataType="string" Value="Use that code "{0} to..." />
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="text" TransformationClaimType="outputClaim" />
    </OutputClaims>

以及带有 FormatStringMultipleClaims 的那个,但我不断收到“无法验证所提供的信息。”。我添加了

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找的是可能的。

以下几点可能有助于解决这个问题:

  • 根据 MSDN documentation,我认为 PartnerClaimType Technical Profile 上输出的 GenerateOtpSms 应该是 otpGenerated,而不是 otpSmsGenerated
  • 您能否分享 otpSmstext 的声明定义?
  • 您在流程/旅程中的哪个环节“执行”了索赔转换?