Comparteix a través de


Definición de transformaciones de notificaciones de número de teléfono en Azure AD B2C

En este artículo se proporcionan referencias y ejemplos de uso de las transformaciones de notificaciones de números de teléfono de la directiva personalizada de Azure Active Directory B2C (Azure AD B2C). Para obtener más información sobre las transformaciones de notificaciones en general, vea ClaimsTransformations.

Nota:

Esta característica está en versión preliminar pública.

ConvertPhoneNumberClaimToString

Convierte un tipo de datos phoneNumber en un tipo de datos string. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim phoneNumber phoneNumber La notificación que se va a convertir en cadena.
OutputClaim phoneNumberString string Notificación que se genera después de que se haya invocado esta transformación de notificaciones.

Ejemplo de ConvertPhoneNumberClaimToString

En este ejemplo, la notificación cellPhoneNumber con un tipo de valor de phoneNumber se convierte en una notificación cellPhone con un tipo de valor de string.

<ClaimsTransformation Id="PhoneNumberToString" TransformationMethod="ConvertPhoneNumberClaimToString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="cellPhoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="cellPhone" TransformationClaimType="phoneNumberString" />
  </OutputClaims>
</ClaimsTransformation>
  • Notificaciones de entrada:
    • phoneNumber: + 11234567890 (phoneNumber)
  • Notificaciones de salida:
    • phoneNumberString: +11234567890 (string)

ConvertStringToPhoneNumberClaim

Valida el formato de un número de teléfono. Si es válido, cámbielo a un formato estándar que use Azure AD B2C. Si el número de teléfono proporcionado no tiene un formato válido, se devuelve un mensaje de error. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim phoneNumberString string Notificación de cadena para el número de teléfono. El número de teléfono tiene que estar en formato internacional y completo con un signo "+" y un código de país o región al principio. Si se proporciona la notificación de entrada country, el número de teléfono está en formato local (sin el código de país o región).
InputClaim country string [Opcional] Notificación de cadena para el código de país o región del número de teléfono en formato ISO3166 (código de país o región ISO-3166 de dos letras).
OutputClaim outputClaim phoneNumber Resultado de esta transformación de notificaciones.

La transformación de notificaciones ConvertStringToPhoneNumberClaim siempre se ejecuta desde un perfil técnico de validación llamado por un perfil técnico autoafirmado o un control de visualización. Los metadatos de un perfil técnico autoafirmado UserMessageIfClaimsTransformationInvalidPhoneNumber controlan el mensaje de error que se presenta al usuario.

Diagrama de la ruta de acceso de ejecución del mensaje de error

Ejemplo de ConvertStringToPhoneNumberClaim

En el ejemplo siguiente se comprueba que el valor de la notificación phoneString es realmente un número de teléfono válido y, a continuación, se devuelve el número de teléfono con el formato de Azure AD B2C estándar. De lo contrario, se emite un mensaje de error.

<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>
  • Notificaciones de entrada:
    • phoneNumberString: 033 456-7890
    • country: DK
  • Notificaciones de salida:
    • outputClaim: +450334567890

Ejemplo de ConvertStringToPhoneNumberClaim sin notificación de código de país

Consulte la demo en vivo de este modo de la transformación de notificaciones.

  • Notificaciones de entrada:
    • phoneNumberString: +1 (123) 456-7890
  • Notificaciones de salida:
    • outputClaim: +11234567890

Llamada a la transformación de notificaciones ConvertStringToPhoneNumberClaim

El perfil técnico autoafirmado que llama al perfil técnico de validación que contiene esta transformación de notificaciones puede definir el mensaje de error.

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

GetNationalNumberAndCountryCodeFromPhoneNumberString

Extrae el código de país o región y el número nacional de la notificación de entrada y, opcionalmente, produce una excepción si el número de teléfono proporcionado no es válido. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim phoneNumber string Notificación de cadena del número de teléfono. El número de teléfono tiene que estar en formato internacional y estar completo con un signo "+" y un código de país o región al principio.
InputParameter throwExceptionOnFailure boolean [Opcional] Parámetro que indica si se produce una excepción cuando el número de teléfono no es válido. El valor predeterminado es False.
InputParameter countryCodeType string [Opcional] Parámetro que indica el tipo de código de país o región de la notificación de salida. Los valores disponibles son CallingCode (el código de llamada internacional de un país o región, por ejemplo, +1) o ISO3166 (el código de país o región ISO-3166 de dos letras).
OutputClaim nationalNumber string Notificación de cadena para el número nacional del número de teléfono.
OutputClaim countryCode string Notificación de cadena para el código de país o región del número de teléfono.

Si la transformación de notificaciones GetNationalNumberAndCountryCodeFromPhoneNumberString se ejecuta desde un perfil técnico de validación al que llama un perfil técnico autoafirmado o una acción de control de visualización, los metadatos del perfil técnico autoafirmado UserMessageIfPhoneNumberParseFailure controlan el mensaje de error que se presenta al usuario.

Diagrama de la ruta de acceso de ejecución del mensaje de error

Puede usar esta transformación de notificaciones para dividir un número de teléfono completo en el código de país o región y el número nacional. Si el número de teléfono proporcionado no es válido, puede optar por generar un mensaje de error.

Ejemplo de GetNationalNumberAndCountryCodeFromPhoneNumberString

En el ejemplo siguiente se intenta dividir el número de teléfono en el número nacional y el código de país o región. Si el número de teléfono es válido, el número nacional invalidará el número de teléfono. Si el número de teléfono no es válido, no se iniciará ninguna excepción y el número de teléfono seguirá teniendo su valor original.

<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>
  • Notificaciones de entrada:
    • phoneNumber: +49 (123) 456-7890
  • Parámetros de entrada:
    • throwExceptionOnFailure: false
    • countryCodeType: ISO3166
  • Notificaciones de salida:
    • nationalNumber: 1234567890
    • countryCode DE

Ejemplo de GetNumberAndCountryCodeFromPhoneNumberString con el parámetro CallingCode

En el ejemplo siguiente se intenta dividir el número de teléfono en el número nacional y el código de país.

<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>
  • Notificaciones de entrada:
    • phoneNumber: +49 (123) 456-7890
  • Parámetros de entrada
    • throwExceptionOnFailure: false
    • countryCodeType: CallingCode
  • Notificaciones de salida:
    • nationalNumber: 1234567890
    • countryCode: +49

Llamada a la transformación de notificaciones GetNumberNumberAndCountryCodeFromPhoneNumberString

El perfil técnico autoafirmado que llama al perfil técnico de validación que contiene esta transformación de notificaciones puede definir el mensaje de error.

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

Pasos siguientes