次の方法で共有


Azure AD B2C で電話番号要求変換を定義する

この記事では、Azure Active Directory B2C (Azure AD B2C) カスタム ポリシーで電話番号要求変換を使用するためのリファレンスと例を示します。 要求変換全般の詳細については、「ClaimsTransformations」を参照してください。

注意

この機能はパブリック プレビュー段階にあります。

ConvertPhoneNumberClaimToString

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

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

ConvertPhoneNumberClaimToString の例

この例では、値の型が phoneNumber のcellPhoneNumber 要求は、値の型が string の cellPhone 要求に変換されます。

<ClaimsTransformation Id="PhoneNumberToString" TransformationMethod="ConvertPhoneNumberClaimToString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="cellPhoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="cellPhone" TransformationClaimType="phoneNumberString" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • phoneNumber: + 11234567890 (phoneNumber)
  • 出力要求:
    • phoneNumberString: +11234567890 (string)

ConvertStringToPhoneNumberClaim

電話番号の形式を検証します。 有効な場合は、Azure AD B2C で使用される標準形式に変更します。 指定された電話番号が有効な形式でない場合は、エラー メッセージが返されます。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim phoneNumberString string 電話番号の文字列要求。 電話番号は国際対応形式で、先頭に "+" と国/地域コードを使用する必要があります。 入力要求 country が指定された場合、電話番号は現地形式になります (国/地域コードなし)。
InputClaim country string [省略可能] ISO3166 形式での電話番号の国/地域コードの文字列要求 (2 文字の ISO-3166 国/地域コード)。
OutputClaim outputClaim phoneNumber この要求変換の結果。

ConvertStringToPhoneNumberClaim 要求変換は、セルフアサート技術プロファイルまたは表示コントロールによって呼び出される検証技術プロファイルから常に実行する必要があります。 UserMessageIfClaimsTransformationInvalidPhoneNumber セルフアサート技術プロファイル メタデータにより、ユーザーに表示されるエラー メッセージが制御されます。

エラー メッセージの実行パスの図

ConvertStringToPhoneNumberClaim の例

次の例では、phoneString 要求が実際に有効な電話番号であることを確認してから、標準の Azure AD B2C 形式で電話番号を返します。 そうでない場合は、エラー メッセージがスローされます。

<ClaimsTransformation Id="ConvertStringToPhoneNumber" TransformationMethod="ConvertStringToPhoneNumberClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneString" TransformationClaimType="phoneNumberString" />
    <InputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="country" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • phoneNumberString:033 456-7890
    • :DK
  • 出力要求:
    • outputClaim: +450334567890

国コード要求がない ConvertStringToPhoneNumberClaim の例

要求変換のこのモードのライブ デモをご覧ください。

  • 入力要求:
    • phoneNumberString: +1 (123) 456-7890
  • 出力要求:
    • outputClaim: +11234567890

ConvertStringToPhoneNumberClaim 要求変換の呼び出し

この要求変換を含む検証技術プロファイルを呼び出すセルフアサート技術プロファイルで、エラー メッセージを定義できます。

<TechnicalProfile Id="SelfAsserted-LocalAccountSignUp-Phone">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationInvalidPhoneNumber">Custom error message if the phone number is not valid.</Item>
  </Metadata>
  ...
</TechnicalProfile>

GetNationalNumberAndCountryCodeFromPhoneNumberString

入力要求から国/地域コードと国内番号が抽出され、指定した電話番号が有効でない場合は、必要に応じて例外がスローされます。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim phoneNumber string 電話番号の文字列要求。 電話番号は国際対応形式で、先頭に "+" と国/地域コードを使用する必要があります。
InputParameter throwExceptionOnFailure boolean [省略可能] 電話番号が有効でない場合に例外をスローするかどうかを示すパラメーター。 既定値は false です。
InputParameter countryCodeType string [省略可能] 出力要求の国/地域コードの種類を示すパラメーター。 使用できる値は、CallingCode (国/地域の国際呼び出しコード。例: +1)、または ISO3166 (2 文字の ISO-3166 国/地域コード) です。
OutputClaim nationalNumber string 電話番号の国内番号に対する文字列要求。
OutputClaim countryCode string 電話番号の国/地域コードに対する文字列要求。

GetNationalNumberAndCountryCodeFromPhoneNumberString 要求変換が、セルフアサート技術プロファイルまたは表示コントロール アクションによって呼び出される検証技術プロファイルから実行された場合、セルフアサート技術プロファイルの UserMessageIfPhoneNumberParseFailure メタデータによって、ユーザーに表示されるエラー メッセージが制御されます。

エラー メッセージの実行パスの図

この要求変換を使用すると、完全な電話番号を国/地域コードと国内番号に分割できます。 指定された電話番号が有効でない場合にエラー メッセージをスローするように選択できます。

GetNationalNumberAndCountryCodeFromPhoneNumberString の例

次の例では、電話番号を国内番号と国/地域コードに分割しようとしています。 電話番号が有効な場合、電話番号は国内番号によって上書きされます。 電話番号が有効でない場合、例外はスローされず、電話番号の元の値がそのまま使用されます。

<ClaimsTransformation Id="GetNationalNumberAndCountryCodeFromPhoneNumberString" TransformationMethod="GetNationalNumberAndCountryCodeFromPhoneNumberString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="throwExceptionOnFailure" DataType="boolean" Value="false" />
    <InputParameter Id="countryCodeType" DataType="string" Value="ISO3166" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="nationalNumber" TransformationClaimType="nationalNumber" />
    <OutputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="countryCode" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • phoneNumber: +49 (123) 456-7890
  • 入力パラメーター:
    • throwExceptionOnFailure: false
    • countryCodeType: ISO3166
  • 出力要求:
    • nationalNumber: 1234567890
    • countryCode: DE

CallingCode パラメーターを使用した GetNationalNumberAndCountryCodeFromPhoneNumberString の例

次の例では、電話番号を国内番号と国呼び出しコードに分割しようとしています。

<ClaimsTransformation Id="GetNationalNumberAndCountryCodeFromPhoneNumberString" TransformationMethod="GetNationalNumberAndCountryCodeFromPhoneNumberString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="throwExceptionOnFailure" DataType="boolean" Value="false" />
    <InputParameter Id="countryCodeType" DataType="string" Value="CallingCode" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="nationalNumber" TransformationClaimType="nationalNumber" />
    <OutputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="countryCode" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • phoneNumber: +49 (123) 456-7890
  • 入力パラメーター
    • throwExceptionOnFailure: false
    • countryCodeType: CallingCode
  • 出力要求:
    • nationalNumber: 1234567890
    • countryCode: +49

GetNationalNumberAndCountryCodeFromPhoneNumberString 要求変換の呼び出し

この要求変換を含む検証技術プロファイルを呼び出すセルフアサート技術プロファイルで、エラー メッセージを定義できます。

<TechnicalProfile Id="SelfAsserted-LocalAccountSignup-Phone">
  <Metadata>
    <Item Key="UserMessageIfPhoneNumberParseFailure">Custom error message if the phone number is not valid.</Item>
  </Metadata>
  ...
</TechnicalProfile>

次の手順

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