Definire le trasformazioni delle attestazioni di numeri di telefono in Azure AD B2C

Questo articolo fornisce informazioni di riferimento ed esempi per l'uso delle trasformazioni delle attestazioni dei numeri di telefono nei criteri personalizzati di Azure Active Directory B2C (Azure AD B2C). Per altre informazioni sulle trasformazioni delle attestazioni in generale, vedere ClaimsTransformations.

Nota

Questa funzionalità è disponibile in anteprima pubblica.

ConvertPhoneNumberClaimToString

Converte un tipo di dati phoneNumber in un tipo di dati string. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim phoneNumber phoneNumber Attestazione da convertire in una stringa.
OutputClaim phoneNumberString string Attestazione generata dopo la chiamata di questa trasformazione delle attestazioni.

Esempio di ConvertPhoneNumberClaimToString

In questo esempio, l'attestazione cellPhoneNumber con un valore di tipo phoneNumber viene convertita in un'attestazione cellPhone con un valore di tipo string.

<ClaimsTransformation Id="PhoneNumberToString" TransformationMethod="ConvertPhoneNumberClaimToString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="cellPhoneNumber" TransformationClaimType="phoneNumber" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="cellPhone" TransformationClaimType="phoneNumberString" />
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di input:
    • phoneNumber: +11234567890 (phoneNumber)
  • Attestazioni di output:
    • phoneNumberString: +11234567890 (string)

ConvertStringToPhoneNumberClaim

Convalida il formato di un numero di telefono. Se valido, modificarlo in un formato standard usato da Azure AD B2C. Se il numero di telefono specificato non è in un formato valido, viene restituito un messaggio di errore. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim phoneNumberString string Attestazione stringa per il numero di telefono. Il numero di telefono deve essere in formato internazionale, preceduto da un simbolo "+" e un codice paese/area geografica. Se viene specificata l'attestazione di input country, il numero di telefono è in formato locale (senza il codice paese/area geografica).
InputClaim country string [Facoltativo] Attestazione stringa per il codice paese/area geografica del numero di telefono in formato ISO3166 (codice paese/area geografica ISO-3166 composto da due lettere).
OutputClaim outputClaim phoneNumber Risultato della trasformazione delle attestazioni.

La trasformazione delle attestazioni ConvertStringToPhoneNumberClaim viene sempre eseguita da un profilo tecnico di convalida chiamato da un profilo tecnico autocertificato o un controllo di visualizzazione. I metadati del profilo tecnico autocertificato UserMessageIfClaimsTransformationInvalidPhoneNumber controllano il messaggio di errore presentato all'utente.

Diagramma del percorso di esecuzione del messaggio di errore

Esempio di ConvertStringToPhoneNumberClaim

L'esempio seguente verifica che l'attestazione phoneString sia effettivamente un numero di telefono valido e quindi restituisca il numero di telefono nel formato standard di Azure AD B2C. In caso contrario, viene generato un messaggio di errore.

<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>
  • Attestazioni di input:
    • phoneNumberString: 033 456-7890
    • country: DK
  • Attestazioni di output:
    • outputClaim: +450334567890

Esempio di ConvertStringToPhoneNumberClaim senza attestazione del codice paese

Vedere la demo live di questa modalità della trasformazione delle attestazioni.

  • Attestazioni di input:
    • phoneNumberString: +1 (123) 456-7890
  • Attestazioni di output:
    • outputClaim: +11234567890

Chiamata alla trasformazione delle attestazioni ConvertStringToPhoneNumberClaim

Il profilo tecnico autocertificato che chiama il profilo tecnico di convalida contenente questa trasformazione delle attestazioni può definire il messaggio di errore.

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

GetNationalNumberAndCountryCodeFromPhoneNumberString

Estrae il codice paese/area geografica e il numero nazionale dall'attestazione di input e, facoltativamente, genera un'eccezione se il numero di telefono specificato non è valido. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim phoneNumber string Attestazione stringa del numero di telefono. Il numero di telefono deve essere in formato internazionale, preceduto da un simbolo "+" e un codice paese/area geografica.
InputParameter throwExceptionOnFailure boolean [Facoltativo] Parametro che indica se viene generata un'eccezione quando il numero di telefono non è valido. Il valore predefinito è False.
InputParameter countryCodeType string [Facoltativo] Parametro che indica il tipo di codice paese/area geografica presente nell'attestazione di output. I valori disponibili sono CallingCode (codice di chiamata internazionale di un paese o area geografica, ad esempio +1) oppure ISO3166 (codice paese/area geografica ISO-3166 composto da due lettere).
OutputClaim nationalNumber string Attestazione stringa per il numero locale del numero di telefono.
OutputClaim countryCode string Attestazione stringa per il codice paese/area geografica del numero di telefono.

Se la trasformazione delle attestazioni GetNationalNumberAndCountryCodeFromPhoneNumberString viene eseguita da un profilo tecnico di convalida chiamato da un profilo tecnico autocertificato o un'azione di controllo visualizzata, i metadati del profilo tecnico autocertificato UserMessageIfPhoneNumberParseFailure controllano il messaggio di errore presentato all'utente.

Diagramma del percorso di esecuzione del messaggio di errore

È possibile usare questa trasformazione delle attestazioni per dividere un numero di telefono completo in codice paese/area geografica e numero locale. Se il numero di telefono specificato non è valido, è possibile scegliere di generare un messaggio di errore.

Esempio di GetNationalNumberAndCountryCodeFromPhoneNumberString

L'esempio seguente prova a dividere il numero di telefono in numero locale e codice paese/area geografica. Se il numero di telefono è valido, tale numero verrà sostituito dal numero locale. Se il numero di telefono non è valido, non verrà generata un'eccezione e il numero di telefono ha ancora il valore originale.

<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>
  • Attestazioni di input:
    • phoneNumber: +49 (123) 456-7890
  • Parametri di input:
    • throwExceptionOnFailure: false
    • countryCodeType: ISO3166
  • Attestazioni di output:
    • nationalNumber: 1234567890
    • countryCode: DE

Esempio di GetNationalNumberAndCountryCodeFromPhoneNumberString con il parametro CallingCode

L'esempio seguente tenta di dividere il numero di telefono in numero nazionale e codice di chiamata paese.

<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>
  • Attestazioni di input:
    • phoneNumber: +49 (123) 456-7890
  • Parametri di input
    • throwExceptionOnFailure: false
    • countryCodeType: CallingCode
  • Attestazioni di output:
    • nationalNumber: 1234567890
    • countryCode: +49

Chiamata alla trasformazione delle attestazioni GetNationalNumberAndCountryCodeFromPhoneNumberString

Il profilo tecnico autocertificato che chiama il profilo tecnico di convalida contenente questa trasformazione delle attestazioni può definire il messaggio di errore.

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

Passaggi successivi