Informazioni di riferimento sulle attestazioni facoltative
Le attestazioni facoltative possono essere usate per:
- Selezionare le attestazioni da includere nei token per l'applicazione.
- Modificare il comportamento di determinate attestazioni restituite da Microsoft Identity Platform nei token.
- Aggiungere e accedere ad attestazioni personalizzate per l'applicazione.
Mentre le attestazioni facoltative sono supportate sia nei token di formato v1.0 e v2.0 che nei token SAML, l'utilizzo risulta particolarmente vantaggioso passando dalla versione 1.0 alla versione 2.0. In Microsoft Identity Platform, vengono usati token più piccoli per garantire prestazioni ottimali dai client. Di conseguenza, diverse attestazioni incluse in precedenza nei token ID e di accesso non sono più presenti nei token v2.0 e devono essere richieste espressamente per ogni applicazione.
Tipo di conto | Token v1.0 | Token v2.0 |
---|---|---|
Account Microsoft personale | N/D | Supportata |
Account Microsoft Entra | Supportata | Supportata |
Set di attestazioni facoltative v1.0 e v2.0
Il set di attestazioni facoltative disponibili per impostazione predefinita per l'uso da parte delle applicazioni è riportato nella tabella seguente. È possibile usare dati personalizzati negli attributi di estensione e nelle estensioni della directory per aggiungere attestazioni facoltative per l'applicazione. Si noti che quando si aggiungono attestazioni al token di accesso, le attestazioni si applicano ai token di accesso richiesti per l'applicazione (un'API Web), non alle attestazioni richieste dall'applicazione. Indipendentemente dalla modalità di accesso del client all'API, i dati corretti sono presenti nel token di accesso usato per l'autenticazione con l'API.
Nota
La maggior parte di queste attestazioni può essere inclusa in token JWT per v1.0 e v2.0, ma non in token SAML, salvo dove diversamente indicato nella colonna Tipo di token. Gli account personali supportano un subset di tali attestazioni, come indicato nella colonna Tipo utente. Molte delle attestazioni elencate non si applicano agli utenti consumer (non hanno tenant, quindi tenant_ctry
non presenta alcun valore).
La tabella seguente elenca il set di attestazioni facoltative v1.0 e v2.0.
Nome | Descrizione | Tipo di token | Tipo di utente | Note |
---|---|---|---|---|
acct |
Stato dell'account degli utenti nel tenant | JWT, SAML | Se l'utente è membro del tenant, il valore è 0 . Se si tratta di un utente guest, il valore è 1 . |
|
acrs |
ID contesto di autenticazione | JWT | Microsoft Entra ID | Indica gli ID contesto di autenticazione delle operazioni che il token di connessione è autorizzato a eseguire. Gli ID contesto di autenticazione possono essere usati per attivare una richiesta di autenticazione dettagliata dall'interno dell'applicazione e dei servizi. Spesso vengono usati insieme all'attestazione xms_cc . |
auth_time |
Ora dell'ultima autenticazione dell'utente. | JWT | ||
ctry |
Paese/Area geografica dell'utente | JWT | Questa attestazione viene restituita se è presente e se il valore del campo è un codice paese/area geografica a due lettere standard, ad esempio FR, JP, SZ e così via. | |
email |
Indirizzo e-mail segnalato per l'utente | JWT, SAML | MSA, Microsoft Entra ID | Questo valore è incluso per impostazione predefinita se l'utente è un ospite nel tenant. Per gli utenti gestiti (gli utenti all'interno del tenant) deve essere richiesto tramite questa attestazione facoltativa oppure, solo per la versione 2.0, con l'ambito OpenID. La correttezza di questo valore non è garantita e il valore è variabile nel tempo; non usarlo mai per l'autorizzazione o per salvare i dati per un utente. Per altre informazioni, vedere Verificare che l'utente disponga dell'autorizzazione per accedere a questi dati. Se si usa l'attestazione di posta elettronica per l'autorizzazione, è consigliabile eseguire una migrazione per passare a un'attestazione più sicura. Se è necessario un indirizzo e-mail indirizzabile nell'app, richiedere questi dati direttamente all'utente, usando questa attestazione come suggerimento o precompilarne una nell'esperienza utente corrente. |
fwd |
Indirizzo IP | JWT | Aggiunge l'indirizzo originale del client richiedente (quando si trova in una rete virtuale). | |
groups |
Formattazione facoltativa per le attestazioni di gruppo | JWT, SAML | L'attestazione groups viene usata in combinazione con l'impostazione GroupMembershipClaims nel manifesto dell'applicazione, che deve anch'esso essere impostato. |
|
idtyp |
Tipo di token | Token JWT di accesso | Speciale: solo nei token di accesso solo app | Il valore è app quando il token è un token solo app. Per un'API questa attestazione è il modo più preciso di determinare se un token è un token dell'app o un token app+utente. |
login_hint |
Hint di accesso | JWT | MSA, Microsoft Entra ID | Attestazione dell'hint di accesso opaca e affidabile con codifica Base 64. Non modificare questo valore. Questa attestazione è il valore migliore da usare per il parametro OAuth login_hint in tutti i flussi per ottenere l'accesso SSO. Può essere passata tra le applicazioni per consentire l'accesso Single Sign-On invisibile all'utente. L'applicazione A può accedere a un utente, leggere l'attestazione login_hint e quindi inviare l'attestazione e il contesto del tenant corrente all'applicazione B nella stringa o nel frammento di query quando l'utente seleziona un collegamento che li porta all'applicazione B. Per evitare problemi di race condition e affidabilità, l'attestazione login_hint non include il tenant corrente per l'utente e per impostazione predefinita viene usato il tenant principale dell'utente. In uno scenario guest in cui l'utente proviene da un altro tenant, è necessario specificare un identificatore del tenant nella richiesta di accesso. Passare quindi lo stesso alle app con cui si collabora. Questa attestazione è destinata all'uso con le funzionalità login_hint esistenti dell'SDK, indipendentemente dall'esposizione. |
sid |
ID sessione, usato per la disconnessione utente per sessione. | JWT | Account personali e Microsoft Entra. | |
tenant_ctry |
Paese/Area geografica del tenant della risorsa | JWT | Uguale a ctry , ma impostato a livello di tenant da un amministratore. Deve anche essere un valore standard di due lettere. |
|
tenant_region_scope |
Area del tenant della risorsa. | JWT | ||
upn |
UserPrincipalName | JWT, SAML | Identificatore per l'utente che può essere usato con il parametro username_hint . Non è un identificatore durevole per l'utente e non deve essere usato per l'autorizzazione o per identificare in modo univoco le informazioni utente (ad esempio, come chiave del database). Usare invece l'ID oggetto utente (oid ) come chiave del database. Per altre informazioni, vedere Proteggere applicazioni e API mediante la convalida delle attestazioni. Per gli utenti che accedono con un ID di accesso alternativo, il relativo nome dell'entità utente (UPN) non deve visibile. Usare invece le attestazioni del token ID seguenti per visualizzare lo stato di accesso all'utente: preferred_username o unique_name per i token v1 e preferred_username per i token v2. Benché questa attestazione sia inclusa automaticamente, è possibile specificarla come attestazione facoltativa per collegare altre proprietà in modo da modificarne il comportamento nel caso dell'utente guest. È consigliabile usare l'attestazione login_hint per l'uso di login_hint : gli identificatori leggibili come UPN non sono affidabili. |
|
verified_primary_email |
Originato dall'indirizzo di posta elettronica PrimaryAuthoritativeEmail dell'utente | JWT | ||
verified_secondary_email |
Originato dall'indirizzo di posta elettronica SecondaryAuthoritativeEmail dell'utente | JWT | ||
vnet |
Informazioni sull'identificatore di rete virtuale. | JWT | ||
xms_cc |
Funzionalità client | JWT | Microsoft Entra ID | Indica se l'applicazione client che ha acquisito il token è in grado di gestire i problemi relativi alle attestazioni. Viene spesso usato insieme all'attestazione acrs . Questa attestazione viene comunemente usata negli scenari di accesso condizionale e valutazione continua dell'accesso. Il server di risorse o l'applicazione del servizio per cui il token è stato rilasciato controlla la presenza di questa attestazione in un token. Un valore di cp1 nel token di accesso è il modo autorevole per indicare che un'applicazione client è in grado di gestire una richiesta di attestazioni. Per altre informazioni, vedere Problematiche delle attestazioni, richieste di attestazioni e funzionalità client. |
xms_edov |
Valore booleano che indica se il proprietario del dominio di posta elettronica dell'utente è stato verificato. | JWT | Un messaggio di posta elettronica viene considerato come dominio verificato se appartiene al tenant in cui risiede l'account utente e l'amministratore tenant completato la verifica del dominio. Inoltre, il messaggio di posta elettronica deve provenire da un account Microsoft (MSA), un account Google o usato per l'autenticazione mediante il flusso di passcode monouso (OTP). Gli account Facebook e SAML/WS-Fed non hanno domini verificati. Affinché questa attestazione venga restituita nel token, è necessaria la presenza dell'attestazione email . |
|
xms_pdl |
Posizione dei dati preferita | JWT | Per i tenant multi-geografici, la posizione dei dati preferita è il codice a tre lettere che mostra l'area geografica in cui si trova l'utente. Per altre informazioni, vedere la documentazione di Microsoft Entra Connect sulla posizione dei dati preferita. | |
xms_pl |
Lingua preferita dell'utente | JWT | Lingua preferita dell'utente, se impostata. Originato dal proprio tenant principale, negli scenari di accesso guest. Nel formato LL-PP ("it-it"). | |
xms_tpl |
Lingua preferita del tenant | JWT | Lingua preferita del tenant delle risorse, se impostata. Nel formato LL ("it"). | |
ztdid |
ID distribuzione completamente automatico | JWT | Identità del dispositivo usata per Windows AutoPilot . |
Avviso
Non usare mai valori di attestazione email
o upn
per archiviare o determinare se l'utente in un token di accesso deve avere accesso ai dati. I valori delle attestazioni modificabili come questi possono cambiare nel tempo, rendendoli non sicuri e inaffidabili per l'autorizzazione.
Set di attestazioni facoltative specifiche per v2.0
Queste attestazioni sono sempre incluse nei token v1.0, ma non sono incluse nei token v2.0 a meno che non sia richiesto. Queste attestazioni sono applicabili solo per i token JWT (token ID e token di accesso).
Attestazione JWT | Nome | Descrizione | Note |
---|---|---|---|
ipaddr |
Indirizzo IP | Indirizzo IP da cui il client ha effettuato l'accesso. | |
onprem_sid |
ID di sicurezza locale | ||
pwd_exp |
Ora scadenza password | Numero di secondi dopo l'ora di scadenza della password nell'attestazione iat . Questa attestazione viene inclusa solo quando la password scade a breve (scadenza definita dai "giorni di notifica" specificati nei criteri password). |
|
pwd_url |
URL per la modifica della password | URL che l'utente può visitare per cambiare la password. Questa attestazione viene inclusa solo quando la password scade a breve (scadenza definita dai "giorni di notifica" specificati nei criteri password). | |
in_corp |
All'interno della rete aziendale | Segnala se il client sta effettuando l'accesso dalla rete aziendale. In caso contrario, l'attestazione non è inclusa. | In base alle impostazioni degli indirizzi IP attendibili nell'autenticazione a più fattori. |
family_name |
Cognome | Fornisce il cognome dell'utente, come definito nell'oggetto utente. Ad esempio: "family_name":"Miller" . |
Supportato in MSA e Microsoft Entra ID. Richiede l'ambito profile . |
given_name |
Nome | Fornisce il nome dell'utente, come impostato nell'oggetto utente. Ad esempio: "given_name": "Frank" . |
Supportato in MSA e Microsoft Entra ID. Richiede l'ambito profile . |
upn |
Nome entità utente | Identificatore per l'utente che può essere usato con il parametro username_hint . Non è un identificatore durevole per l'utente e non deve essere usato per l'autorizzazione o per identificare in modo univoco le informazioni utente (ad esempio, come chiave del database). Per altre informazioni, vedere Proteggere applicazioni e API mediante la convalida delle attestazioni. Usare invece l'ID oggetto utente (oid ) come chiave del database. Per gli utenti che accedono con un ID di accesso alternativo, il relativo nome dell'entità utente (UPN) non deve visibile. Usare invece l'attestazione preferred_username seguente per visualizzare lo stato di accesso all'utente. |
Richiede l'ambito profile . |
Set di attestazioni facoltative specifiche per v1.0
Alcuni dei miglioramenti del formato del token v2 sono disponibili per le app che usano il formato di token v1, in quanto consentono di migliorare la sicurezza e l'affidabilità. Questi miglioramenti si applicano solo ai token JWT e non ai token SAML.
Attestazione JWT | Nome | Descrizione | Note |
---|---|---|---|
aud |
Destinatari | Sempre presente nei token JWT, ma nei token di accesso v1 può essere generata in vari modi: qualsiasi URI appID, con o senza barra finale e ID client della risorsa. Questa randomizzazione può essere difficile da codificare quando si esegue la convalida del token. Usare additionalProperties per questa attestazione per assicurarsi che sia sempre impostato sull'ID client della risorsa nei token di accesso v1. |
Solo token di accesso JWT v1 |
preferred_username |
Nome utente preferito | Fornisce l'attestazione del nome utente preferito all'interno dei token v1. Questa attestazione rende più semplice per le app fornire suggerimenti per il nome utente e mostrare nomi visualizzati leggibili, indipendentemente dal tipo di token. È consigliabile usare questa attestazione facoltativa anziché usare upn o unique_name . |
Token ID e token di accesso v1 |
additionalProperties
per le attestazioni facoltative
Alcuni attestazioni facoltative possono essere configurate per modificare il modo in cui che viene restituita l'attestazione. additionalProperties
viene usato principalmente per facilitare la migrazione di applicazioni locali con aspettative di dati diverse. Ad esempio, include_externally_authenticated_upn_without_hash
supporta i client che non sono in grado di gestire i caratteri di cancelletto (#
) nell'UPN.
Nome della proprietà | Nome in additionalProperty |
Descrizione |
---|---|---|
upn |
Utilizzabile per le risposte SAML e JWT e per i token v1.0 e v2.0. | |
include_externally_authenticated_upn |
Include l'UPN guest così come è archiviato nel tenant della risorsa. Ad esempio: foo_hometenant.com#EXT#@resourcetenant.com . |
|
include_externally_authenticated_upn_without_hash |
Come indicato sopra, tranne che i cancelletti (# ) vengono sostituiti da caratteri di sottolineatura (_ ), ad esempio foo_hometenant.com_EXT_@resourcetenant.com . |
|
aud |
Nei token di accesso v1 questa attestazione viene usata per modificare il formato dell'attestazione aud . Questa attestazione non ha alcun effetto nei token v2 o nei token ID della versione, dove l'attestazione aud è sempre l'ID client. Usare questa configurazione per assicurarsi che l'API possa eseguire più facilmente la convalida dei destinatari. Come tutte le attestazioni facoltative che interessano il token di accesso, la risorsa nella richiesta deve impostare questa attestazione facoltativa, perché le risorse possiedono il token di accesso. |
|
use_guid |
Genera l'ID client della risorsa (API) in formato GUID sempre come attestazione aud anziché dipendere dal runtime. Ad esempio, se una risorsa imposta questo flag e il relativo ID client è 00001111-aaaa-2222-bbbb-3333cccc4444 , qualsiasi app che richiede un token di accesso per tale risorsa riceve un token di accesso con aud : 00001111-aaaa-2222-bbbb-3333cccc4444 . Senza questo set di attestazioni, un'API potrebbe ottenere token con un'attestazione aud di api://MyApi.com , api://MyApi.com/ , api://myapi.com/AdditionalRegisteredField o qualsiasi altro valore impostato come URI ID app per tale API e l'ID client della risorsa. |
|
idtyp |
Questa attestazione viene usata per ottenere il tipo di token (app, utente, dispositivo). Per impostazione predefinita, viene generato solo per i token solo app. Come tutte le attestazioni facoltative che interessano il token di accesso, la risorsa nella richiesta deve impostare questa attestazione facoltativa, perché le risorse possiedono il token di accesso. | |
include_user_token |
Genera l'attestazione idtyp per il token utente. Senza questa proprietà aggiuntiva facoltativa per il set di attestazioni idtyp, un'API ottiene solo l'attestazione per i token app. |
Esempio di additionalProperties
"optionalClaims": {
"idToken": [
{
"name": "upn",
"essential": false,
"additionalProperties": [
"include_externally_authenticated_upn"
]
}
]
}
Questo oggetto optionalClaims
fa in modo che il token ID restituito al client includa un'attestazione upn
con informazioni aggiuntive sul tenant principale e sul tenant delle risorse. L'attestazione upn
viene modificata nel token solo se l'utente è un utente guest nel tenant (che usa un provider di identità diverso per l'autenticazione).
Vedi anche
Passaggi successivi
- Altre informazioni sulla configurazione delle attestazioni facoltative.