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 | Sì | 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 | Sì | Nome di un protocollo valido supportato da Azure AD B2C. I valori possibili sono: OAuth1, OAuth2, SAML2, OpenIdConnect. |
PartnerClaimType | Sì | 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 |
Sì | 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:
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="(?<=.).(?=.*@)">*</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:
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 CheckboxMultiSelect
oggetto , DropdownSingleSelect
o 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 | Sì | Stringa di visualizzazione che viene mostrata all'utente nell'interfaccia utente per questa opzione. |
Valore | Sì | 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:
Modello
L'elemento Pattern può contenere gli attributi seguenti:
Attributo | Obbligatorio | Descrizione |
---|---|---|
RegularExpression | Sì | 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.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[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:
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 , duration int , , long string |
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 , duration int , , long string |
Casella di testo di sola lettura. |
TextBox | boolean , int , phoneNumber string |
Casella di testo a riga singola. |
TextBox
Il tipo di input utente TextBox viene usato per visualizzare una casella di testo a riga singola.
<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.
<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.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[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.
<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.
<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.
<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>
DropdownSingleSelect
Il tipo di input utente DropdownSingleSelect viene usato per visualizzare una casella a discesa da cui l'utente può selezionare un'opzione.
<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.
<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.
<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.
<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>