Compartilhar via


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

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 AD B2C (Azure Active Directory B2C). Para obter mais informações sobre as transformações de declarações em geral, confira ClaimsTransformations.

Observação

Esse recurso está em uma versão prévia.

ConvertPhoneNumberClaimToString

Converte um tipo de dados phoneNumber em um tipo de dados string. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim phoneNumber phoneNumber A declaração para converter em uma cadeia de caracteres.
OutputClaim phoneNumberString string A declaração que é produzida após a invocação dessa transformação de declarações.

Exemplo de ConvertPhoneNumberClaimToString

Neste exemplo, a declaração cellPhoneNumber com um tipo de valor phoneNumber é convertida em uma declaração cellPhone com um tipo de valor 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 válido, altere-o para um formato padrão usado por 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 desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim phoneNumberString string A declaração de cadeia de caracteres para o número de telefone. O número de telefone deve estar em formato internacional e ser iniciado com um "+" e o código de país/região. Se a declaração de entrada country for fornecida, o número de telefone estará no formato local (sem o código de país/região).
InputClaim country string [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 phoneNumber O resultado dessa transformação de declarações.

A transformação de declarações ConvertStringToPhoneNumberClaim é sempre executada a partir um perfil técnico de validação que é chamado por um perfil técnico autodeclarado ou um controle de exibições. 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 é, de fato, 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á gerada.

<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:
    • phoneNumberString: 033 456-7890
    • country: 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 da transformação de declarações.

  • Declarações de entrada:
    • phoneNumberString: +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, gera uma exceção se o número de telefone fornecido não for válido. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim phoneNumber string A declaração de cadeia de caracteres do número de telefone. O número de telefone deve estar em formato internacional e ser iniciado com um "+" e o código de país/região.
InputParameter throwExceptionOnFailure booleano [Opcional] Um parâmetro que indica se uma exceção é gerada quando o número de telefone não é válido. O valor padrão é falso.
InputParameter countryCodeType string [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 para um país/região, por exemplo + 1) ou ISO3166 (o código de país/região ISO-3166 de duas letras).
OutputClaim nationalNumber string A declaração de cadeia de caracteres para o número nacional do número de telefone.
OutputClaim countryCode string 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 de um perfil técnico de validação chamado por um perfil técnico autodeclarado ou uma ação de controle de exibições, os metadados de perfil técnico autodeclarado UserMessageIfPhoneNumberParseFailure 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 em código de país/região e número nacional. Se o número de telefone fornecido não for válido, você poderá optar por gerar uma mensagem de erro.

Exemplo de GetNationalNumberAndCountryCodeFromPhoneNumberString

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

Exemplo de GetNationalNumberAndCountryCodeFromPhoneNumberString com o parâmetro CallingCode

O exemplo a seguir tenta dividir o número de telefone em um número nacional e o 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:
    • phoneNumber: +49 (123) 456-7890
  • Parâmetros de entrada
    • throwExceptionOnFailure: false
    • countryCodeType: CallingCode
  • Declarações de saída:
    • nationalNumber: 1234567890
    • countryCode: +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óximas etapas