Partilhar via


Definir transformações de declarações de número de telefone no Azure AD B2C

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais nas nossas Perguntas Frequentes.

Este artigo fornece referência e exemplos para usar as transformações de declarações de número de telefone na política personalizada do Azure Ative Directory B2C (Azure AD B2C). Para obter mais informações sobre transformações de declarações em geral, consulte ClaimsTransformations.

Observação

Este recurso está em pré-visualização pública.

ConvertPhoneNumberClaimToString

Converte um phoneNumber tipo de dados em um string tipo de dados. Confira a demonstração ao vivo dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
InputClaim Número de telefone Número de telefone A reivindicação para converter em uma cadeia de caracteres.
OutputClaim phoneNumberString corda A alegação que é produzida após essa transformação de reivindicações foi invocada.

Exemplo de ConvertPhoneNumberClaimToString

Neste exemplo, a declaração cellPhoneNumber com um tipo de valor de é convertida em uma declaração de cellPhone com um tipo de phoneNumber valor de string.

<ClaimsTransformation Id="PhoneNumberToString" TransformationMethod="ConvertPhoneNumberClaimToString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="cellPhoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="cellPhone" TransformationClaimType="phoneNumberString" />
  </OutputClaims>
</ClaimsTransformation>
  • Declarações de entrada:
    • phoneNumber: +11234567890 (phoneNumber)
  • Declarações de saída:
    • phoneNumberString: +11234567890 (string)

ConvertStringToPhoneNumberClaim

Valida o formato de um número de telefone. Se for válido, altere-o para um formato padrão usado pelo Azure AD B2C. Se o número de telefone fornecido não estiver em um formato válido, uma mensagem de erro será retornada. Confira a demonstração ao vivo dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
InputClaim phoneNumberString corda A declaração de cadeia de caracteres para o número de telefone. O número de telefone tem de estar em formato internacional, completo com um "+" à esquerda e um código de país/região. Se a declaração country de entrada for fornecida, o número de telefone estará no formato local (sem o código do país/região).
InputClaim país corda [Opcional] A declaração de cadeia de caracteres para o código de país/região do número de telefone no formato ISO3166 (o código de país/região ISO-3166 de duas letras).
OutputClaim outputClaim Número de telefone O resultado desta transformação reivindica.

A transformação de declarações ConvertStringToPhoneNumberClaim é sempre executada a partir de um perfil técnico de validação que é chamado por um perfil técnico autodeclarado ou controle de exibição. Os metadados do perfil técnico autodeclarado UserMessageIfClaimsTransformationInvalidPhoneNumber controlam a mensagem de erro que é apresentada ao usuário.

Diagrama do caminho de execução da mensagem de erro

Exemplo de ConvertStringToPhoneNumberClaim

O exemplo a seguir verifica se a declaração phoneString é realmente um número de telefone válido e, em seguida, retorna o número de telefone no formato padrão do Azure AD B2C. Caso contrário, uma mensagem de erro será lançada.

<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>
  • Declarações de entrada:
    • telefoneNumberString: 033 456-7890
    • país: DK
  • Declarações de saída:
    • outputClaim: +450334567890

Exemplo de ConvertStringToPhoneNumberClaim sem declaração de código de país

Confira a demonstração ao vivo deste modo de transformação de declarações.

  • Declarações de entrada:
    • telefoneNumberString: +1 (123) 456-7890
  • Declarações de saída:
    • outputClaim: +11234567890

Chamando a transformação de declarações ConvertStringToPhoneNumberClaim

O perfil técnico autodeclarado que chama o perfil técnico de validação que contém essa transformação de declarações pode definir a mensagem de erro.

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

GetNationalNumberAndCountryCodeFromPhoneNumberString

Extrai o código de país/região e o número nacional da declaração de entrada e, opcionalmente, lança uma exceção se o número de telefone fornecido não for válido. Confira a demonstração ao vivo dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
InputClaim Número de telefone corda A declaração de cadeia de caracteres do número de telefone. O número de telefone tem de estar em formato internacional, completo com um "+" à esquerda e um código de país/região.
Parâmetro de Entrada throwExceptionOnFailure Booleano [Opcional] Um parâmetro que indica se uma exceção é lançada quando o número de telefone não é válido. O valor predefinido é falso.
Parâmetro de Entrada countryCodeType corda [Opcional] Um parâmetro que indica o tipo de código de país/região na declaração de saída. Os valores disponíveis são CallingCode (o código de chamada internacional de um país/região, por exemplo +1) ou ISO3166 (o código de país/região ISO-3166 de duas letras).
OutputClaim nacionalNúmero corda A declaração de cadeia de caracteres para o número nacional do número de telefone.
OutputClaim Código do país corda A declaração de cadeia de caracteres para o código de país/região do número de telefone.

Se a transformação de declarações GetNationalNumberAndCountryCodeFromPhoneNumberString for executada a partir de um perfil técnico de validação chamado por um perfil técnico autodeclarado ou por uma ação de controle de exibição, os metadados do perfil técnico autodeclarado UserMessageIfPhoneParseFailure controlarão a mensagem de erro apresentada ao usuário.

Diagrama do caminho de execução da mensagem de erro

Você pode usar essa transformação de declarações para dividir um número de telefone completo no código do país/região e no número nacional. Se o número de telefone fornecido não for válido, você poderá optar por enviar uma mensagem de erro.

Exemplo de GetNationalNumberAndCountryCodeFromPhoneNumberString

O exemplo a seguir tenta dividir o número de telefone em número nacional e código de país/região. Se o número de telefone for válido, o número de telefone será substituído pelo número nacional. Se o número de telefone não for válido, uma exceção não será lançada e o número de telefone ainda terá seu 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>
  • Declarações de entrada:
    • Número de telefone: +49 (123) 456-7890
  • Parâmetros de entrada:
    • throwExceptionOnFailure: falso
    • countryCodeType: ISO3166
  • Declarações de saída:
    • nationalNumber: 1234567890
    • Código do país: DE

Exemplo de GetNationalNumberAndCountryCodeFromPhoneNumberString com o parâmetro CallingCode

O exemplo a seguir tenta dividir o número de telefone em número nacional e código de chamada do 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>
  • Declarações de entrada:
    • Número de telefone: +49 (123) 456-7890
  • Parâmetros de entrada
    • throwExceptionOnFailure: falso
    • countryCodeType: CallingCode
  • Declarações de saída:
    • nationalNumber: 1234567890
    • código do país: +49

Chamando a transformação de declarações GetNationalNumberAndCountryCodeFromPhoneNumberString

O perfil técnico autodeclarado que chama o perfil técnico de validação que contém essa transformação de declarações pode definir a mensagem de erro.

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

Próximos passos

  • Encontre mais exemplos de transformação de declarações no repositório GitHub da comunidade do Azure AD B2C