Partilhar via


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

Este artigo fornece referências e exemplos para utilizar as transformações de afirmações de número de telefone na política personalizada do Azure Active Directory B2C (Azure AD B2C). Para obter mais informações sobre transformações de afirmações em geral, veja ClaimsTransformations( AfirmaçõesTransformações).

Nota

Esta funcionalidade está em pré-visualização pública.

ConvertPhoneNumberClaimToString

Converte um phoneNumber tipo de dados num tipo de string dados. Veja a Demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim phoneNumber phoneNumber A afirmação para converter numa cadeia.
OutputClaim phoneNumberString string A afirmação que é produzida após esta transformação de afirmações ter sido invocada.

Exemplo de ConvertPhoneNumberClaimToString

Neste exemplo, a afirmação cellPhoneNumber com um tipo de valor de phoneNumber é convertida numa afirmação de cellPhone com um 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>
  • Afirmações de entrada:
    • phoneNumber: +11234567890 (phoneNumber)
  • Afirmações de saída:
    • phoneNumberString: +11234567890 (cadeia)

ConvertStringToPhoneNumberClaim

Valida o formato de um número de telefone. Se for válido, altere-o para um formato padrão utilizado pelo Azure AD B2C. Se o número de telefone fornecido não estiver num formato válido, é devolvida uma mensagem de erro. Veja a Demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim phoneNumberString string A afirmação de cadeia de carateres para o número de telefone. O número de telefone tem de estar em formato internacional, completo com um código "+" e de país/região à esquerda. Se for fornecida uma afirmação country de entrada, o número de telefone está no formato local (sem o código de país/região).
InputClaim país string [Opcional] A afirmação de cadeia 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 desta transformação de afirmações.

A transformação de afirmações ConvertStringToPhoneNumberClaim é sempre executada a partir de um perfil técnico de validação chamado por um perfil técnico auto-afirmado ou controlo de apresentação. Os metadados do perfil técnico auto-declarado UserMessageIfClaimsTransformationInvalidPhoneNumber controlam a mensagem de erro apresentada ao utilizador.

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

Exemplo de ConvertStringToPhoneNumberClaim

O exemplo seguinte verifica se a afirmação phoneString é, de facto, um número de telefone válido e, em seguida, devolve o número de telefone no formato padrão Azure AD B2C. Caso contrário, é emitida uma mensagem de erro.

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

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

Veja a Demonstração em direto deste modo da transformação de afirmações.

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

Chamar a transformação de afirmações ConvertStringToPhoneNumberClaim

O perfil técnico auto-afirmado que chama o perfil técnico de validação que contém esta transformação de afirmaçõ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 afirmação de entrada e, opcionalmente, gera uma exceção se o número de telefone fornecido não for válido. Veja a Demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim phoneNumber string A afirmação de cadeia do número de telefone. O número de telefone tem de estar em formato internacional, completo com um código "+" e de país/região à esquerda.
InputParameter throwExceptionOnFailure boolean [Opcional] Um parâmetro que indica se é emitida uma exceção quando o número de telefone não é válido. O valor predefinido é falso.
InputParameter countryCodeType string [Opcional] Um parâmetro que indica o tipo de código de país/região na afirmaçã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 afirmação de cadeia de carateres para o número nacional do número de telefone.
OutputClaim countryCode string A afirmação de cadeia para o código de país/região do número de telefone.

Se a transformação de afirmações GetNationalNumberAndCountryCodeFromPhoneNumberString for executada a partir de um perfil técnico de validação chamado por um perfil técnico auto-afirmado ou uma ação de controlo de apresentação, a userMessageIfPhoneNumberParseFailure auto-afirmada controla a mensagem de erro apresentada ao utilizador.

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

Pode utilizar esta transformação de afirmações para dividir um número de telefone completo no código de país/região e no número nacional. Se o número de telefone fornecido não for válido, pode optar por enviar uma mensagem de erro.

Exemplo de GetNationalNumberAndCountryCodeFromPhoneNumberString

O exemplo seguinte 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, não será emitida uma exceção e o número de telefone ainda tem o 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>
  • Afirmações de entrada:
    • phoneNumber: +49 (123) 456-7890
  • Parâmetros de entrada:
    • throwExceptionOnFailure: false
    • countryCodeType: ISO3166
  • Afirmações de saída:
    • nationalNumber: 1234567890
    • countryCode: DE

Exemplo do parâmetro GetNationalNumberAndCountryCodeFromPhoneNumberString com CallingCode

O exemplo seguinte tenta dividir o número de telefone em número nacional e código de chamada de país/região.

<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>
  • Afirmações de entrada:
    • phoneNumber: +49 (123) 456-7890
  • Parâmetros de entrada
    • throwExceptionOnFailure: false
    • countryCodeType: CallingCode
  • Afirmações de saída:
    • nationalNumber: 1234567890
    • countryCode: +49

Chamar a transformação de afirmações GetNationalNumberAndCountryCodeFromPhoneNumberString

O perfil técnico auto-afirmado que chama o perfil técnico de validação que contém esta transformação de afirmaçõ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>

Passos seguintes