Condividi tramite


ClaimsSchema

Nota

In Azure Active Directory B2C i criteri personalizzati sono stati progettati principalmente per far fronte a scenari complessi. Per la maggior parte degli scenari, è consigliabile usare i flussi utente predefiniti. In caso contrario, vedere Introduzione ai criteri personalizzati in Active Directory B2C.

L'elemento ClaimsSchema definisce i tipi di attestazione a cui è possibile fare riferimento nei criteri. Lo schema di attestazioni è il posto in cui si dichiarano le attestazioni. Un'attestazione può essere un nome, un cognome, un nome visualizzato, un numero di telefono e altro ancora. L'elemento ClaimsSchema contiene l'elenco degli elementi ClaimType. Un elemento ClaimType contiene l'attributo Id, che è il nome dell'attestazione.

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="Id">
      <DisplayName>Surname</DisplayName>
      <DataType>string</DataType>
      <DefaultPartnerClaimTypes>
        <Protocol Name="OAuth2" PartnerClaimType="family_name" />
        <Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
        <Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
      </DefaultPartnerClaimTypes>
      <UserHelpText>Your surname (also known as family name or last name).</UserHelpText>
      <UserInputType>TextBox</UserInputType>

ClaimType

L'elemento ClaimType contiene l'attributo seguente:

Attributo Obbligatorio Descrizione
Id Identificatore usato per il tipo di attestazione. Altri elementi possono usare questo identificatore nei criteri.

L'elemento ClaimType contiene gli elementi seguenti:

Elemento Occorrenze Descrizione
DisplayName 1:1 Titolo che viene visualizzato agli utenti nelle varie schermate. Il valore può essere localizzato.
DataType 1:1 Tipo di attestazione.
DefaultPartnerClaimTypes 0:1 Tipi di attestazione predefiniti di partner da usare per un protocollo specificato. Il valore può essere sovrascritto nell'elemento PartnerClaimType specificato nell'elemento InputClaim o OutputClaim. Usare questo elemento per specificare il nome predefinito per un protocollo.
Maschera 0:1 Stringa di caratteri di mascheramento facoltativa che può essere applicata durante la visualizzazione dell'attestazione. Il numero di telefono 324-232-4343 ad esempio può essere mascherato come XXX-XXX-4343.
UserHelpText 0:1 Descrizione del tipo di attestazione che può essere utile agli utenti per comprenderne lo scopo. Il valore può essere localizzato.
UserInputType 0:1 Tipo di controllo di input che deve essere disponibile all'utente per l'immissione manuale dei dati di attestazione per il tipo di attestazione. Vedere i tipi di input utente definiti più avanti in questa pagina.
AdminHelpText 0:1 Descrizione del tipo di attestazione che può essere utile per gli amministratori per comprenderne lo scopo.
Restrizione 0:1 Restrizioni ai valori per questa attestazione, ad esempio un'espressione regolare (Regex) o un elenco di valori accettabili. Il valore può essere localizzato.
PredicateValidationReference 0:1 Riferimento a un elemento PredicateValidationsInput. Gli elementi PredicateValidationReference consentono di eseguire un processo di convalida per garantire l'inserimento solo di dati formattati adeguatamente. Per altre informazioni, vedere Predicates.

DataType

L'elemento DataType supporta i valori seguenti:

Tipo Descrizione
boolean Rappresenta un valore booleano (true o false).
data Rappresenta un istante nel tempo, in genere espresso come data di un giorno. Il valore della data segue la convenzione ISO 8601.
dateTime Rappresenta un istante di tempo, in genere espresso come data e ora del giorno. Il valore della data segue la convenzione ISO 8601 durante il runtime e viene convertito in un periodo UNIX quando viene emesso come attestazione nel token.
duration Rappresenta un intervallo di tempo in anni, mesi, giorni, ore, minuti e secondi. Il formato di è PnYnMnDTnHnMnS, dove P indica un valore positivo o N negativo. nY è il numero di anni seguito da un valore letterale Y. nMo è il numero di mesi seguito da un valore letterale Mo. nD è il numero di giorni seguiti da un valore letterale D. Esempi: P21Y rappresenta 21 anni. P1Y2Mo rappresenta un anno e due mesi. P1Y2Mo5D rappresenta un anno, due mesi e cinque giorni. P1Y2M5DT8H5M20S rappresenta un anno, due mesi, cinque giorni, otto ore, cinque minuti e venti secondi.
phoneNumber Rappresenta un numero di telefono.
int Rappresenta il numero compreso tra -2.147.483.648 e 2.147.483.647
long Rappresenta il numero compreso tra -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807
string Rappresenta il testo come sequenza di unità di codice UTF-16.
stringCollection Rappresenta una raccolta di oggetti string.
userIdentity Rappresenta un'identità utente.
userIdentityCollection Rappresenta una raccolta di oggetti userIdentity.

DefaultPartnerClaimTypes

L'elemento DefaultPartnerClaimTypes può contenere l'elemento seguente:

Elemento Occorrenze Descrizione
Protocollo 1:n Elenco di protocolli con il relativo nome del tipo di attestazione di partner predefinito.

L'elemento Protocollo contiene gli attributi seguenti:

Attributo Obbligatorio Descrizione
Name Nome di un protocollo valido supportato da Azure AD B2C. I valori possibili sono: OAuth1, OAuth2, SAML2, OpenIdConnect.
PartnerClaimType Nome del tipo di attestazione da usare.

Nell'esempio seguente, quando il framework dell'esperienza di gestione delle identità interagisce con un provider di identità SAML2 o un'applicazione basata su attestazioni, l'attestazione surname (cognome) viene mappata a http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname. Quando il framework interagisce con OpenIdConnect e OAuth2, l'attestazione viene mappata a family_name.

<ClaimType Id="surname">
  <DisplayName>Surname</DisplayName>
  <DataType>string</DataType>
  <DefaultPartnerClaimTypes>
    <Protocol Name="OAuth2" PartnerClaimType="family_name" />
    <Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
    <Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
  </DefaultPartnerClaimTypes>
</ClaimType>

Il token JWT emesso da Azure AD B2C crea quindi family_name invece del nome di ClaimType surname (cognome).

{
  "sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "auth_time": 1535013501,
  "given_name": "David",
  "family_name": "Williams",
  "name": "David Williams",
}

Maschera

L'elemento Mask contiene gli attributi seguenti:

Attributo Obbligatorio Descrizione
Type Tipo di maschera dell'attestazione. I valori possibili sono: Simple o Regex. Il valore Simple indica che viene applicata una semplice maschera di testo alla porzione iniziale di un'attestazione di tipo stringa. Il valore Regex indica che viene applicata un'espressione regolare all'intera attestazione di tipo stringa. Se viene specificato il valore Regex, è necessario definire anche un attributo facoltativo insieme all'espressione regolare da usare.
Regex No Se Type è impostato su Regex, specificare l'espressione regolare da usare.

Nell'esempio seguente viene configurata un'attestazione PhoneNumber con la Simple maschera. Per altri esempi, vedere la demo live Claim simple mask (Attestazione maschera semplice).

<ClaimType Id="PhoneNumber">
  <DisplayName>Phone Number</DisplayName>
  <DataType>string</DataType>
  <Mask Type="Simple">XXX-XXX-</Mask>
  <UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>

Il framework dell'esperienza di gestione delle identità esegue il rendering del numero di telefono e al contempo nasconde le prime sei cifre:

Attestazione numero di telefono visualizzata nel browser con prime sei cifre mascherate da Xs

Nell'esempio seguente viene configurata un'attestazione AlternateEmail con la Regex maschera. Per altri esempi, vedere la demo live di Regex mask.

<ClaimType Id="AlternateEmail">
  <DisplayName>Please verify the secondary email linked to your account</DisplayName>
  <DataType>string</DataType>
  <Mask Type="Regex" Regex="(?&lt;=.).(?=.*@)">*</Mask>
  <UserInputType>Readonly</UserInputType>
</ClaimType>

Il framework dell'esperienza di gestione delle identità esegue il rendering solo della prima lettera dell'indirizzo e-mail e del nome del dominio di posta elettronica:

Attestazione di posta elettronica visualizzata nel browser con caratteri mascherati da asterischi

Restrizione

L'elemento Restriction può contenere l'attributo seguente:

Attributo Obbligatorio Descrizione
MergeBehavior No Metodo usato per unire i valori di enumerazione con un elemento ClaimType nei criteri padre avente lo stesso identificatore. Usare questo attributo quando si sovrascrive un'attestazione specificata nei criteri di base. I valori possibili sono: Append, Prepend o ReplaceAll. Il valore Append è una raccolta di dati che è consigliabile accodare alla fine della raccolta specificata nei criteri padre. Il valore Prepend è una raccolta di dati che è consigliabile aggiungere all'inizio della raccolta specificata nei criteri padre. Il ReplaceAll valore è una raccolta di dati specificati nei criteri padre che è consigliabile ignorare.

L'elemento Restriction contiene gli elementi seguenti:

Elemento Occorrenze Descrizione
Enumerazione 1:n Opzioni disponibili nell'interfaccia utente che l'utente può selezionare per un'attestazione, ad esempio un valore in un menu a discesa.
Modello 1:1 Espressione regolare da usare.

Enumerazione

L'elemento Enumeration definisce le opzioni disponibili che l'utente deve selezionare per un'attestazione nell'interfaccia utente, ad esempio un valore in un CheckboxMultiSelectoggetto , DropdownSingleSelecto RadioSingleSelect. In alternativa, è possibile definire e localizzare le opzioni disponibili con l'elemento LocalizedCollections . Per cercare un elemento da una raccolta di enumerazioni attestazioni, usare la trasformazione delle attestazioni GetMappedValueFromLocalizedCollection.

L'elemento Enumeration contiene gli attributi seguenti:

Attributo Obbligatorio Descrizione
Testo Stringa di visualizzazione che viene mostrata all'utente nell'interfaccia utente per questa opzione.
Valore Valore di attestazione che viene associato alla selezione di questa opzione.
SelectByDefault No Indica se questa opzione deve essere selezionata o meno per impostazione predefinita nell'interfaccia utente. I valori possibili sono: True o False.

Nell'esempio seguente viene configurata un'attestazione elenco a discesa città con un valore predefinito impostato su New York. Per altri esempi, vedere la demo live relativa all'enumerazione delle restrizioni attestazioni.

<ClaimType Id="city">
  <DisplayName>city where you work</DisplayName>
  <DataType>string</DataType>
  <UserInputType>DropdownSingleSelect</UserInputType>
  <Restriction>
    <Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
    <Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
    <Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
  </Restriction>
</ClaimType>

Elenco a discesa delle città con valore predefinito impostato su New York:

Controllo elenco a discesa di cui è stato eseguito il rendering nel browser e visualizzazione del valore predefinito

Modello

L'elemento Pattern può contenere gli attributi seguenti:

Attributo Obbligatorio Descrizione
RegularExpression Espressione regolare a cui le attestazioni di questo tipo devono corrispondere per poter essere valide.
HelpText No Messaggio di errore per gli utenti se il controllo dell'espressione regolare ha esito negativo.

L'esempio seguente configura un'attestazione messaggio e-mail con la convalida di input dell'espressione regolare e con il testo della Guida:

<ClaimType Id="email">
  <DisplayName>Email Address</DisplayName>
  <DataType>string</DataType>
  <DefaultPartnerClaimTypes>
  <Protocol Name="OpenIdConnect" PartnerClaimType="email" />
  </DefaultPartnerClaimTypes>
  <UserHelpText>Email address that can be used to contact you.</UserHelpText>
  <UserInputType>TextBox</UserInputType>
  <Restriction>
    <Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
  </Restriction>
</ClaimType>

Il framework dell'esperienza di gestione delle identità esegue il rendering dell'attestazione indirizzo e-mail con la convalida di input del formato dell'indirizzo di posta elettronica:

TextBox che mostra il messaggio di errore attivato dalla restrizione regex

UserInputType

Azure AD B2C supporta molti tipi di input utente, ad esempio casella di testo, password ed elenco a discesa, che possono essere usati durante l'immissione dei dati di attestazione per il tipo di attestazione. È necessario specificare UserInputType quando si raccolgono informazioni dall'utente usando un profilo tecnico autocertivi e i controlli di visualizzazione.

Vedere la demo live del tipo di input dell'utente.

Tipo di input utente disponibile per l'elemento UserInputType :

UserInputType ClaimType supportato Descrizione
CheckboxMultiSelect string Casella di riepilogo a discesa a selezione multipla. Il valore dell'attestazione è rappresentato in una stringa delimitatore di virgole dei valori selezionati.
DateTimeDropdown date, dateTime Elenchi a discesa per selezionare un giorno, un mese e un anno.
DropdownSingleSelect string Casella di riepilogo a discesa Selezione singola. Il valore dell'attestazione è il valore selezionato.
EmailBox string Campo di input della posta elettronica.
Paragrafo boolean, date, dateTime, durationint, , longstring Campo che mostra il testo solo in un tag di paragrafo.
Password string Casella di testo Password.
RadioSingleSelect string Raccolta di pulsanti di opzione. Il valore dell'attestazione è il valore selezionato.
Sololettura boolean, date, dateTime, durationint, , longstring Casella di testo di sola lettura.
TextBox boolean, int, phoneNumberstring Casella di testo a riga singola.

TextBox

Il tipo di input utente TextBox viene usato per visualizzare una casella di testo a riga singola.

TextBox che mostra le proprietà specificate nel tipo di attestazione

<ClaimType Id="displayName">
  <DisplayName>Display Name</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Your display name.</UserHelpText>
  <UserInputType>TextBox</UserInputType>
</ClaimType>

EmailBox

Il tipo di input utente EmailBox viene usato per visualizzare un campo di input di base per l'e-mail.

EmailBox che mostra le proprietà specificate nel tipo di attestazione

<ClaimType Id="email">
  <DisplayName>Email Address</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Email address that can be used to contact you.</UserHelpText>
  <UserInputType>EmailBox</UserInputType>
  <Restriction>
    <Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
  </Restriction>
</ClaimType>

Password

Il tipo di input utente Password viene usato per registrare una password immessa dall'utente.

Utilizzo del tipo di attestazione con password

<ClaimType Id="password">
  <DisplayName>Password</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Enter password</UserHelpText>
  <UserInputType>Password</UserInputType>
</ClaimType>

DateTimeDropdown

Il tipo di input utente DateTimeDropdown viene usato per visualizzare un set di menu a discesa da cui selezionare un giorno, un mese e un anno. È possibile usare gli elementi Predicates e PredicateValidations per controllare i valori di data minimo e massimo. Per altre informazioni, vedere la sezione Configurare un intervallo di date in Predicates e PredicateValidations.

Utilizzo del tipo di attestazione con menu a discesa data e ora (datetimedropdown)

<ClaimType Id="dateOfBirth">
  <DisplayName>Date Of Birth</DisplayName>
  <DataType>date</DataType>
  <UserHelpText>The date on which you were born.</UserHelpText>
  <UserInputType>DateTimeDropdown</UserInputType>
</ClaimType>

RadioSingleSelect

Il tipo di input utente RadioSingleSelect viene usato per visualizzare una raccolta di pulsanti radio da cui l'utente può selezionare un'opzione.

Utilizzo del tipo di attestazione con pulsanti radio a selezione singola (radiodsingleselect)

<ClaimType Id="color">
  <DisplayName>Preferred color</DisplayName>
  <DataType>string</DataType>
  <UserInputType>RadioSingleSelect</UserInputType>
  <Restriction>
    <Enumeration Text="Blue" Value="Blue" SelectByDefault="false" />
    <Enumeration Text="Green " Value="Green" SelectByDefault="false" />
    <Enumeration Text="Orange" Value="Orange" SelectByDefault="true" />
  </Restriction>
</ClaimType>

Il tipo di input utente DropdownSingleSelect viene usato per visualizzare una casella a discesa da cui l'utente può selezionare un'opzione.

Utilizzo del tipo di attestazione con casella a discesa a selezione singola (dropdownsingleselect)

<ClaimType Id="city">
  <DisplayName>City where you work</DisplayName>
  <DataType>string</DataType>
  <UserInputType>DropdownSingleSelect</UserInputType>
  <Restriction>
    <Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
    <Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
    <Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
  </Restriction>
</ClaimType>

CheckboxMultiSelect

Il tipo di input utente CheckboxMultiSelect viene usato per visualizzare una raccolta di caselle di controllo da cui l'utente può selezionare più opzioni.

Utilizzo del tipo di attestazione con casella di controllo a più selezioni (checkboxmultiselect)

<ClaimType Id="languages">
  <DisplayName>Languages you speak</DisplayName>
  <DataType>string</DataType>
  <UserInputType>CheckboxMultiSelect</UserInputType>
  <Restriction>
    <Enumeration Text="English" Value="English" SelectByDefault="true" />
    <Enumeration Text="France " Value="France" SelectByDefault="false" />
    <Enumeration Text="Spanish" Value="Spanish" SelectByDefault="false" />
  </Restriction>
</ClaimType>

Sololettura

Il tipo di input utente Readonly viene usato per visualizzare un campo di sola lettura in cui visualizzare l'attestazione e il valore.

Utilizzo del tipo di attestazione con sola lettura (readonly)

<ClaimType Id="membershipNumber">
  <DisplayName>Membership number</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Your membership number (read only)</UserHelpText>
  <UserInputType>Readonly</UserInputType>
</ClaimType>

Paragrafo

Il tipo di input utente Paragraph viene usato per visualizzare un campo che mostra solo testo in un tag di paragrafo, ad esempio <p>testo</p>. Un tipo OutputClaim di input utente Paragraph del profilo tecnico autocertificato deve impostare l'attributo Required false (impostazione predefinita). Questo tipo di input utente è supportato solo nei layout di pagina autocertificati. Le pagine di accesso e iscrizione unificate (unifiedssp) potrebbero non essere visualizzate correttamente.

Utilizzo del tipo di attestazione con paragrafo (paragraph)

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <AdminHelpText>A claim responsible for holding response messages to send to the relying party</AdminHelpText>
  <UserHelpText>A claim responsible for holding response messages to send to the relying party</UserHelpText>
  <UserInputType>Paragraph</UserInputType>
</ClaimType>