Accedere alle informazioni di riferimento sulle attestazioni del token
I token di accesso sono token JSON Web (JWT). I token JWT contengono le parti seguenti:
- Intestazione: fornisce informazioni su come convalidare il token, incluse informazioni sul tipo di token e su come è stato firmato.
- Payload: contiene tutti i dati importanti relativi all'utente o all'app che sta cercando di chiamare il servizio.
- Firma: rappresenta il materiale non elaborato usato per convalidare il token.
Ogni parte è separata da un punto (.
) e a ogni parte viene applicata separatamente la codifica Base 64.
Le attestazioni sono presenti solo se c'è un valore da inserire. L'applicazione non deve prendere una dipendenza legata alla presenza di un'attestazione. Gli esempi includono pwd_exp
(non ogni tenant richiede la scadenza delle password) e family_name
(i flussi delle credenziali client avvengono per conto delle applicazioni, che non hanno nomi). Il token di accesso conterrà sempre attestazioni sufficienti per la valutazione dell'accesso.
Microsoft Identity Platform usa alcune attestazioni per proteggere i token per il riutilizzo. La descrizione di Opaque
contrassegna queste attestazioni come non destinate all'uso pubblico. Queste attestazioni possono o meno essere presenti in un token e possono venirne aggiunte di nuove senza preavviso.
Attestazioni di intestazione
Richiesta di rimborso | Formato | Descrizione |
---|---|---|
typ |
Stringa - sempreJWT |
Indica che il token è un token JWT. |
alg |
String | Indica l'algoritmo usato per firmare il token, ad esempio RS256 |
kid |
String | Specifica l'identificazione personale per la chiave pubblica che può essere usata per convalidare la firma del token. Generata nei token di accesso sia v1.0 che v2.0. |
x5t |
String | Funziona in modo analogo, per uso e valore, a kid . x5t ed è un'attestazione legacy generata solo nei token di accesso v1.0 per motivi di compatibilità. |
Attestazioni di payload
Richiesta di rimborso | Formato | Descrizione | Considerazioni sull'autorizzazione |
---|---|---|---|
acrs |
Matrice di stringhe JSON | 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 . |
|
aud |
Stringa, URI ID applicazione o GUID | Identifica i destinatari previsti del token. Nei token v2.0 questo valore è sempre l'ID client dell'API. Nei token v1.0 può essere l'ID client o l'URI della risorsa usato nella richiesta. Il valore può dipendere dal modo in cui il client ha richiesto il token. | Questo valore deve essere convalidato, rifiutare il token se il valore non corrisponde al gruppo di destinatari previsto. |
iss |
Stringa, un servizio token di sicurezza (STS) URI | Identifica il servizio token di sicurezza che costruisce e restituisce il token e il tenant di Microsoft Entra dell'utente autenticato. Se il token emesso è un token v2.0 (vedere ver l'attestazione), l'URI termina con /v2.0 . Il GUID che indica che l'utente è un utente consumer di un account Microsoft è 9188040d-6c67-4c5b-b112-36a304b66dad . |
L'app può usare la parte relativa al GUID dell'attestazione per limitare il set di tenant che possono accedere all'applicazione, se applicabile. |
idp |
Stringa, di solito un URI del servizio token di sicurezza | Registra il provider di identità che ha autenticato l'oggetto del token. Questo valore è identico al valore dell'attestazione Autorità emittente, a meno che l'account utente non sia nello stesso tenant dell'autorità emittente, ad esempio guest. Usare il valore di iss se l'attestazione non è presente. Per gli account personali usati in un contesto aziendale, ad esempio, un account personale invitato in un tenant Microsoft Entra, l'idp attestazione potrebbe essere "live.com" o un URI STS contenente il tenant dell'account Microsoft9188040d-6c67-4c5b-b112-36a304b66dad . |
|
iat |
int, timestamp Unix | Specifica quando si è verificata l'autenticazione per questo token. | |
nbf |
int, timestamp Unix | Specifica l'ora dopo la quale è possibile elaborare il token JWT. | |
exp |
int, timestamp Unix | Specifica l'ora di scadenza prima della quale il token JWT non può essere accettato per l'elaborazione. Una risorsa può rifiutare anche il token prima di questa volta. Il rifiuto può verificarsi per una modifica necessaria nell'autenticazione o quando viene revocato un token. | |
aio |
Stringa opaca | Attestazione interna usata da Microsoft Entra ID per registrare i dati per il riutilizzo dei token. Le risorse non devono usare questa attestazione. | |
acr |
Stringa, un 0 o 1 , presente solo nei token v1.0 |
Un valore di 0 per l'attestazione "Classe di contesto di autenticazione" indica che l'autenticazione dell'utente finale non soddisfa i requisiti di ISO/IEC 29115. |
|
amr |
Matrice JSON di stringhe, presente solo nei token v1.0 | Identifica il metodo di autenticazione dell'oggetto del token. | |
appid |
Stringa, GUID, presente solo nei token v1.0 | ID applicazione del client che usa il token. L'applicazione può fungere per conto proprio o per conto dell'utente. L'ID dell'applicazione in genere rappresenta un oggetto applicazione, ma può anche rappresentare un oggetto di entità servizio in Microsoft Entra ID. | appid può essere usato nelle decisioni di autorizzazione. |
azp |
Stringa, GUID, presente solo nei token v2.0 | Sostituzione di appid . ID applicazione del client che usa il token. L'applicazione può fungere per conto proprio o per conto dell'utente. L'ID dell'applicazione in genere rappresenta un oggetto applicazione, ma può anche rappresentare un oggetto di entità servizio in Microsoft Entra ID. |
azp può essere usato nelle decisioni di autorizzazione. |
appidacr |
Stringa, un 0 , 1 o 2 , presente solo nei token v1.0 |
Indica il metodo di autenticazione del client. Per un client pubblico, il valore è 0 . Quando si usano l'ID client e il segreto client, il valore è 1 . Quando si usa un certificato client per l'autenticazione, il valore è 2 . |
|
azpacr |
Stringa, un 0 , 1 o 2 , presente solo nei token v2.0 |
Sostituzione di appidacr . Indica il metodo di autenticazione del client. Per un client pubblico, il valore è 0 . Quando si usano l'ID client e il segreto client, il valore è 1 . Quando si usa un certificato client per l'autenticazione, il valore è 2 . |
|
preferred_username |
Stringa, presente solo nei token v2.0. | Nome utente primario che rappresenta l'utente. Il valore potrebbe essere un indirizzo e-mail, un numero di telefono o un nome utente generico senza un formato specificato. Usare il valore per gli hint del nome utente e nell'interfaccia utente leggibile come nome utente. Per ricevere questa attestazione, usare l'ambito profile . |
Poiché questo valore è mutevole, non può essere usato per prendere decisioni in merito alle autorizzazioni. |
name |
String | Fornisce un valore leggibile che identifica l'oggetto del token. Il valore può variare, è modificabile ed è solo a scopo di visualizzazione. Per ricevere questa attestazione, usare l'ambito profile . |
Non usare questo valore per prendere decisioni di autorizzazione. |
scp |
Stringa, elenco di ambiti separati da spazi | Set di ambiti esposti dall'applicazione per cui l'applicazione client ha richiesto (e ricevuto) il consenso. Inclusa solo per i token utente. | L'app deve verificare che questi siano ambiti validi esposti dall'app e prendere decisioni relative alle autorizzazioni in base al valore di questi ambiti. |
roles |
Matrice di stringhe, un elenco di autorizzazioni | Il set di autorizzazioni esposto dall'applicazione per cui all'applicazione o all'utente richiedente è stata concessa l'autorizzazione per la chiamata. Il flusso delle credenziali client usa questo set di autorizzazioni anziché gli ambiti utente per i token dell'applicazione. Per i token utente, questo set di valori contiene i ruoli assegnati dell'utente nell'applicazione di destinazione. | Questi valori possono essere usati per la gestione dell'accesso, ad esempio l'attivazione dell'autorizzazione per accedere a una risorsa. |
wids |
Matrice di GUID RoleTemplateID | Indica i ruoli a livello di tenant assegnati a questo utente dalla sezione dei ruoli presenti nei ruoli predefiniti di Microsoft Entra. La groupMembershipClaims proprietà del manifesto dell'applicazione configura questa attestazione per ogni singola applicazione. Impostare l'attestazione su All o DirectoryRole . |
Questi valori possono essere usati per la gestione dell'accesso, ad esempio l'attivazione dell'autorizzazione per accedere a una risorsa. |
groups |
Matrice di GUID JSON | Fornisce gli ID oggetto che rappresentano le appartenenze ai gruppi del soggetto. La groupMembershipClaims proprietà del manifesto dell'applicazione configura l'attestazione di gruppo per ogni singola applicazione. Un valore null esclude tutti i gruppi, un valore SecurityGroup include i ruoli di directory e le appartenenze al gruppo di sicurezza di Active Directory e un valore All include sia i gruppi di sicurezza che le liste di distribuzione di Microsoft 365. Per gli altri flusi, se il numero di gruppi di cui l'utente è membro supera 150 per SAML e 200 per JWT, Microsoft Entra ID aggiunge un'attestazione di eccedenza alle origini attestazioni. Le origini attestazioni puntano all'endpoint di Microsoft Graph che contiene l'elenco di gruppi per l'utente. |
Questi valori possono essere usati per la gestione dell'accesso, ad esempio l'attivazione dell'autorizzazione per accedere a una risorsa. |
hasgroups |
Booleano | Se presente, sempre true , indica se l'utente è presente almeno in un gruppo. Indica che il client deve usare l'API Microsoft Graph per determinare i gruppi (https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects ) dell'utente. |
|
groups:src1 |
Oggetto JSON | Include un collegamento all'elenco completo dei gruppi per l'utente quando le richieste di token sono troppo grandi per il token. Per i token JWT come un'attestazione distribuita, per SAML come una nuova attestazione invece dell'attestazione groups . Valore token JWT di esempio: "groups":"src1" "_claim_sources : "src1" : { "endpoint" : "https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects" } |
|
sub |
String | L'entità di sicurezza associata al token. Ad esempio, l'utente di un'app. Questo valore non è modificabile e non può essere riassegnato o riutilizzato. L'oggetto è un identificatore pairwise univoco per un ID di applicazione specifico. Se un singolo utente accede a due app diverse usando due ID client differenti, queste app ricevono due valori differenti per l'attestazione dell'oggetto. L'uso dei due valori diversi dipende dall'architettura e dai requisiti di privacy. Vedere anche l'oid attestazione (che rimane invariata nelle app all'interno di un tenant. |
Questo valore può essere usato per eseguire controlli di autorizzazione, ad esempio quando il token viene usato per accedere a una risorsa oppure come chiave nelle tabelle di database. |
oid |
Stringa, un GUID | Identificatore non modificabile per il richiedente, ovvero l'identità verificata dell'utente o dell'entità servizio. Questo ID identifica in modo univoco il richiedente tra le applicazioni. Due applicazioni diverse che accedono allo stesso utente ricevono lo stesso valore nell'oid attestazione. È quindi possibile usare oid quando si eseguono query sui Microsoft Online Services, ad esempio Microsoft Graph. Microsoft Graph restituisce l'ID come id proprietà per un determinato account utente. Poiché oid consente a più app di correlare entità, per ricevere questa attestazione è necessario per gli utenti utilizzare l'ambito profile . Se un singolo utente esiste in più tenant, l'utente contiene un ID oggetto diverso in ogni tenant. Anche se l'utente accede a ogni account con le stesse credenziali, gli account sono diversi. |
Questo valore può essere usato per eseguire controlli di autorizzazione, ad esempio quando il token viene usato per accedere a una risorsa oppure come chiave nelle tabelle di database. |
tid |
Stringa, un GUID | Rappresenta il tenant a cui l'utente accede. Per gli account aziendali e dell'istituto di istruzione, il GUID è l'ID tenant non modificabile dell'organizzazione a cui appartiene l'utente. Per gli accessi al tenant dell'account Microsoft personale (servizi come Xbox, Teams for Life o Outlook), il valore è 9188040d-6c67-4c5b-b112-36a304b66dad . Per ricevere questa attestazione, l'applicazione deve richiedere profile l'ambito. |
Questo valore deve essere considerato in combinazione con altre attestazioni nelle decisioni di autorizzazione. |
unique_name |
Stringa, presente solo nei token v1.0 | Fornisce un valore leggibile che identifica l'oggetto del token. | Questo valore può essere diverso all'interno di un tenant; usarlo solo a scopo di visualizzazione. |
uti |
String | Attestazione dell'identificatore del token, equivalente a jti nella specifica JWT. Identificatore univoco per token con distinzione tra maiuscole e minuscole. |
|
rh |
Stringa opaca | Attestazione interna usata da Azure per riconvalidare i token. Le risorse non devono usare questa attestazione. | |
ver |
Stringa, 1.0 o 2.0 |
Indica la versione del token di accesso. | |
xms_cc |
Matrice di stringhe JSON | 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. |
Nota
Le attestazioni roles
, groups
, scp
e wids
non sono un elenco completo di come una risorsa potrebbe autorizzare un utente o un'applicazione, né sono un elenco completo di autorizzazioni concesse al chiamante. La risorsa di destinazione può usare un altro metodo per autorizzare l'accesso alle risorse protette.
Attestazione di eccedenza dei gruppi
Microsoft Entra ID limita il numero di ID oggetto inclusi nell'attestazione basata su gruppi per rimanere entro il limite di dimensioni dell'intestazione HTTP. Se un utente è membro di più gruppi rispetto al limite di eccedenza (150 per i token SAML, 200 per i token JWT), Microsoft Entra ID non emette l'attestazione basata su gruppi nel token. Include invece un'attestazione di eccedenza nel token, che indica all'applicazione di eseguire una query sull'API Microsoft Graph per recuperare l'appartenenza al gruppo dell'utente.
{
...
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "[Url to get this user's group membership from]"
}
}
...
}
È possibile usare BulkCreateGroups.ps1
disponibile nella cartella di script di creazione di app per testare gli scenari di eccedenza.
Nota
L'URL restituito sarà un URL Graph di Azure AD, ovvero graph.windows.net. Anziché basarsi su questo URL, i servizi devono invece usare l'attestazione idtyp
facoltativa (che identifica se il token è un'app o un token app+utente) per costruire un URL di Microsoft Graph al fine di eseguire query sull'elenco completo dei gruppi.
Attestazioni di base v1.0
Le attestazioni seguenti vengono incluse nei token v1.0, se applicabili, ma non sono incluse nei token v2.0 per impostazione predefinita. Per usare queste attestazioni per la versione 2.0, l'applicazione richiede l'uso di attestazioni facoltative.
Richiesta di rimborso | Formato | Descrizione |
---|---|---|
ipaddr |
Stringa | Indirizzo IP da cui l'utente ha eseguito l'autenticazione. |
onprem_sid |
Stringa, in formato SID | Nei casi in cui l'utente ha un'autenticazione in locale, questa attestazione fornisce il relativo SID. Usare questa attestazione per l'autorizzazione nelle applicazioni legacy. |
pwd_exp |
int, timestamp Unix | Indica quando scade la password dell'utente. |
pwd_url |
String | Un URL che consente agli utenti di reimpostare la password. |
in_corp |
boolean | Segnala se il client sta effettuando l'accesso dalla rete aziendale. |
nickname |
String | Un altro nome per l'utente, separato dal nome o dal cognome. |
family_name |
String | Fornisce il cognome dell'utente, come definito nell'oggetto utente. |
given_name |
String | Fornisce il nome dell'utente, come impostato nell'oggetto utente. |
upn |
String | Nome utente dell'utente. Può essere un numero di telefono, un indirizzo di posta elettronica o una stringa non formattata. Da utilizzare solo per scopi di visualizzazione e per fornire suggerimenti sul nome utente in casi di riautenticazione. |
attestazione amr
Le identità possono eseguire l'autenticazione in vari modi, che possono essere pertinenti per l'applicazione. L'attestazione amr
è una matrice che può contenere più elementi, ad esempio ["mfa", "rsa", "pwd"]
, per un'autenticazione che ha usato sia una password che l'app Authenticator.
valore | Descrizione |
---|---|
pwd |
Autenticazione con password, sia che si tratti della password Microsoft dell'utente o del segreto client di un'applicazione. |
rsa |
L'autenticazione è avvenuta in base alla prova di una chiave RSA, ad esempio con l'app Microsoft Authenticator. Questo valore indica anche l'uso di un JWT autofirmato con un certificato X509 di proprietà del servizio per l'autenticazione. |
otp |
Passcode monouso tramite un messaggio di posta elettronica o un SMS. |
fed |
Indica l'uso di un'asserzione di autenticazione federata (come JWT o SAML). |
wia |
Autenticazione integrata di Windows |
mfa |
Indica l'uso dell'autenticazione a più fattori. Include altri metodi di autenticazione quando è presente questa attestazione. |
ngcmfa |
Equivalente a mfa , usata per il provisioning di determinati tipi di credenziali avanzate. |
wiaormfa |
L'utente ha usato Windows o una credenziale di autenticazione a più fattori per l'autenticazione. |
none |
Indica che l'autenticazione non è stata completata. |
Passaggi successivi
- Ulteriori informazioni sui token di accesso usati in Microsoft Entra ID.