整数要求変換

この記事では、Azure Active Directory B2C (Azure AD B2C) の Identity Experience Framework スキーマの整数要求変換の使用例を示します。 詳細については、「ClaimsTransformations」を参照してください。

AdjustNumber

数値要求を増減し、新しい要求を返します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim INT 増減する数が含まれる要求の種類。 inputClaim 要求値が null の場合、既定値の 0 が使用されます。
InputParameter 演算子 string 指定できる値は INCREMENT(既定値) またはDECREMENTです。
OutputClaim outputClaim INT この要求変換が呼び出された後に生成される要求の種類。

AdjustNumber の例

この要求変換を使用して、数値要求値を増減します。 次の要求変換では、数値要求値が増加します。

<ClaimsTransformation Id="UpdateSteps" TransformationMethod="AdjustNumber">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="steps" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="Operator" DataType="string" Value="INCREMENT" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="steps" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim: 1
  • 入力パラメーター:
    • Operator: INCREMENT
  • 出力要求:
    • outputClaim: 2

null 値を使用した AdjustNumber の例

入力要求が null の場合、出力要求は 1 になります。

  • 入力要求:
    • inputClaim: NULL
  • 入力パラメーター:
    • Operator: INCREMENT
  • 出力要求:
    • outputClaim: 1

AssertNumber

数値と比較して数値要求が大きいか、小さいか、等しいか、等しくないかを判断します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim INT 2 番目の数値と比較して大きいか、小さいか、等しいか、または等しくないかを比較する 1 番目の数値要求。 Null 値の場合は例外がスローされます。
InputParameter CompareToValue INT 1 番目の数値と比較して大きいか、小さいか、等しいか、または等しくないかを比較する 2 番目の数値。
InputParameter 演算子 string 指定できる値: LessThanGreaterThanGreaterThanOrEqualLessThanOrEqualEqualNotEqual
InputParameter throwError boolean 比較結果が true の場合に、このアサーションでエラーをスローする必要があるかどうかを指定します。 指定できる値は true(既定値) またはfalseです。
 
true に設定すると (アサーション モード)、比較結果が true の場合、例外がスローされます。 false に設定すると (評価モード)、結果は、値が true または false の新しいブール型の要求の種類になります。
OutputClaim outputClaim boolean ThrowErrorfalse に設定されている場合、この出力要求には、比較結果に従って、true または false が含まれます。

アサーション モード

throwError 入力パラメーターが true (既定値) のときは、AssertNumber 要求変換は常に、セルフアサート技術プロファイルによって呼び出される検証技術プロファイル から実行されます。

AssertNumberError セルフアサート技術プロファイル メタデータでは、技術プロファイルによってユーザーに表示されるエラー メッセージが制御されます。 エラー メッセージは、ローカライズできます。

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="AssertNumberError">You've reached the maximum logon attempts</Item>
  </Metadata>
  ...
</TechnicalProfile>

アサーション モードで要求変換を呼び出す方法の詳細については、「AssertStringClaimsAreEqual」、「AssertBooleanClaimIsEqualToValue」、「AssertDateTimeIsGreaterThan」の各要求変換を参照してください。

AssertNumber の例

次の例では、試行回数が 5 回を超えるとアサートします。 要求変換では、比較結果に従ってエラーがスローされます。

<ClaimsTransformation Id="isOverLimit" TransformationMethod="AssertNumber">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="attempts" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="Operator" DataType="string" Value="GreaterThan" />
    <InputParameter Id="CompareToValue" DataType="int" Value="5" />
    <InputParameter Id="throwError" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim: 10
  • 入力パラメーター:
    • Operator: GreaterThan
    • CompareToValue: 5
    • throwError: true
  • 結果:エラーがスローされます

AssertNumber 評価モードの例

次の例では、試行回数が 5 回を超えるかどうかが評価されます。 出力要求には、比較結果に従ったブール値が含まれます。 要求変換では、エラーはスローされません。

<ClaimsTransformation Id="isOverLimit" TransformationMethod="AssertNumber">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="attempts" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="Operator" DataType="string" Value="GreaterThan" />
    <InputParameter Id="CompareToValue" DataType="int" Value="5" />
    <InputParameter Id="throwError" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="attemptsCountExceeded" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim: 10
  • 入力パラメーター:
    • Operator: GreaterThan
    • CompareToValue: 5
    • throwError: false
  • 出力要求:
    • outputClaim: true

ConvertNumberToStringClaim

long データ型を string データ型に変換します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim long 文字列に変換する要求の種類。
OutputClaim outputClaim string この要求変換が呼び出された後に生成される要求の種類。

ConvertNumberToStringClaim の例

この例では、値の型が long の numericUserId 要求は、値の型が string の UserId 要求に変換されます。

<ClaimsTransformation Id="CreateUserId" TransformationMethod="ConvertNumberToStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="UserId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim:12334 (long)
  • 出力要求:
    • outputClaim:"12334" (string)

次の手順

  • その他の要求変換のサンプルについては、Azure AD B2C コミュニティの GitHub リポジトリをご覧ください