Поделиться через


Определение преобразований утверждений номеров телефона в Azure AD B2C

В этой статье приведены справочные сведения и примеры использования преобразований утверждений номеров телефона в настраиваемой политике Azure Active Directory B2C (Azure AD B2C). Дополнительные общие сведения о преобразованиях утверждений см. в разделе ClaimsTransformations.

Примечание

Эта функция предоставляется в общедоступной предварительной версии.

ConvertPhoneNumberClaimToString

Преобразовывает тип данных phoneNumber в тип данных string. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim phoneNumber phoneNumber Утверждение для преобразования в строку.
outputClaim phoneNumberString строка Утверждение, которое создается после вызова этого преобразования утверждений.

Пример ConvertPhoneNumberClaimToString

В этом примере утверждение cellPhoneNumber с типом значения phoneNumber преобразуется в утверждение cellPhone с типом значения string.

<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 (строка)

ConvertStringToPhoneNumberClaim

Проверяет формат номера телефона. Если формат номера телефона является допустимым, он преобразовывается в стандартный формат, используемый Azure AD B2C. Если указанный номер телефона имеет недопустимый формат, возвращается сообщение об ошибке. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim phoneNumberString строка Строковое утверждение для номера телефона. Номер телефона должен быть указан в международном формате, включая знак "+" и код страны или региона. Если добавлено входящее утверждение country, номер телефона указывается в местном формате (без кода страны или региона).
InputClaim country строка (Необязательно.) Строковое утверждение для кода страны или региона номера телефона в формате ISO 3166 (двухбуквенный код страны и региона в формате 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
    • country: 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 Тип данных Примечания
InputClaim phoneNumber строка Строковое утверждение для номера телефона. Номер телефона должен быть указан в международном формате, включая знак "+" и код страны или региона.
InputParameter throwExceptionOnFailure Логическое (Необязательно) Параметр, указывающий, создавать ли исключение, если номер телефона является недопустимым. Значение по умолчанию — false.
InputParameter countryCodeType строка (Необязательно.) Параметр, указывающий тип кода страны или региона в выходном утверждении. Допустимые значения: CallingCode (международный код страны или региона, например +1) или ISO3166 (двухбуквенный код страны и региона в формате ISO 3166).
outputClaim nationalNumber строка Строковое утверждение для национального номера телефона.
outputClaim countryCode строка Строковое утверждение для кода страны или региона номера телефона.

Если преобразование утверждений 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

Пример GetNationalNumberAndCountryCodeFromPhoneNumberString с параметром CallingCode

В следующем примере производится попытка разделить номер телефона на национальной номер и телефонный код страны.

<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>

Дальнейшие действия