OpenID Connect in Microsoft Identity Platform
OpenID Connect (OIDC) estende il protocollo di autorizzazione OAuth 2.0 da usare come un altro protocollo di autenticazione. È possibile usare OIDC per abilitare l'accesso Single Sign-On (SSO) tra le applicazioni abilitate per OAuth usando un token di sicurezza denominato token ID.
La specifica completa per OIDC è disponibile nel sito Web di OpenID Foundation all'indirizzo specifica OpenID Connect Core 1.0.
Flusso del protocollo: accesso
Il diagramma seguente illustra il flusso di accesso di base di OpenID Connect. I passaggi del flusso sono descritti in modo più dettagliato nelle sezioni successive dell'articolo.
Abilitare i token ID
Il token ID introdotto da OpenID Connect viene rilasciato dal server di autorizzazione, Microsoft Identity Platform, quando l'applicazione client ne richiede uno durante l'autenticazione utente. Il token ID consente a un'applicazione client di verificare l'identità dell'utente e di ottenere altre informazioni (attestazioni) su di esse.
I token ID non vengono rilasciati per impostazione predefinita per un'applicazione registrata con Microsoft Identity Platform. I token ID per un'applicazione sono abilitati usando uno dei metodi seguenti:
- Accedi all'Interfaccia di amministrazione di Microsoft Entra.
- Passare a Identità>Applicazioni>Registrazioni app><la tua applicazione>>Autenticazione.
- In Configurazioni della piattaforma selezionare Aggiungi una piattaforma.
- Nel riquadro visualizzato selezionare la piattaforma appropriata per l'applicazione. Ad esempio, selezionare Web per un'applicazione Web.
- In URI di reindirizzamento aggiungere l'URI di reindirizzamento dell'applicazione. Ad esempio:
https://localhost:8080/
. - In Concessione implicita e flussi ibridi selezionare la casella di controllo token ID (usati per i flussi impliciti e ibridi).
Oppure:
- Selezionare Identità>Applicazioni>Registrazioni app><la tua applicazione>>Manifesto.
- Impostare
oauth2AllowIdTokenImplicitFlow
sutrue
nel manifesto dell'applicazione della registrazione dell'app.
Se i token ID non sono abilitati per l'app e ne viene richiesta una, Microsoft Identity Platform restituisce un unsupported_response
errore simile al seguente:
Il valore fornito per il parametro di input 'response_type' non è consentito per questo client. Expected value is 'code' (Il valore fornito per il parametro di input 'response_type' non è consentito per questo client. Il valore previsto è 'code').
La richiesta di un token ID specificando un response_type
di id_token
è illustrata in Inviare la richiesta di accesso più avanti nell'articolo.
Recuperare il documento di configurazione OpenID
I provider OpenID come Microsoft Identity Platform forniscono un Documento di configurazione del provider OpenID in un endpoint accessibile pubblicamente contenente gli endpoint OIDC del provider, le attestazioni supportate e altri metadati. Le applicazioni client possono usare i metadati per individuare gli URL da usare per l'autenticazione e le chiavi di firma pubblica del servizio di autenticazione.
Le librerie di autenticazione sono gli utenti più comuni del documento di configurazione OpenID, che usano per l'individuazione degli URL di autenticazione, delle chiavi di firma pubblica del provider e di altri metadati del servizio. Se nell'app viene usata una libreria di autenticazione, è probabile che non sia necessario inviare a mano le richieste di codice e le risposte dall'endpoint del documento di configurazione OpenID.
Trovare l'URI del documento di configurazione OpenID dell'app
A ogni registrazione dell'app in Microsoft Entra ID viene fornito un endpoint accessibile pubblicamente che serve il documento di configurazione OpenID. Per determinare l'URI dell'endpoint del documento di configurazione per l'app, aggiungere il percorso di configurazione OpenID noto all'URL dell'autorità di registrazione dell'app.
- Percorso del documento di configurazione noto:
/.well-known/openid-configuration
- URL dell'autorità:
https://login.microsoftonline.com/{tenant}/v2.0
Il valore di {tenant}
varia in base al gruppo di destinatari che accede all'applicazione, come illustrato nella tabella seguente. L'URL dell'autorità varia anche in base all'istanza cloud.
Valore | Descrizione |
---|---|
common |
Possono accedere all'applicazione gli utenti con account Microsoft e account aziendali o dell'istituto d'istruzione di Microsoft Entra ID. |
organizations |
Possono accedere all'applicazione solo gli utenti con account aziendali o dell'istituto d'istruzione di Microsoft Entra ID. |
consumers |
Possono accedere all'applicazione solo gli utenti con account Microsoft personali. |
Directory (tenant) ID oppure contoso.onmicrosoft.com |
Solo gli utenti di un tenant Microsoft Entra specifico (membri della directory con un account aziendale o dell'istituto di istruzione o guest della directory con un account Microsoft personale) possono accedere all'applicazione. Il valore può essere il nome di dominio del tenant di Microsoft Entra o l'ID tenant in formato GUID. |
Suggerimento
Si noti che quando si usa l'autorità di common
o di consumers
per gli account Microsoft personali, l'applicazione delle risorse di utilizzo deve essere configurata per supportare tale tipo di account in conformità a signInAudience.
Per trovare il documento di configurazione OIDC nell'Interfaccia di amministrazione di Microsoft Entra, accedere all'Interfaccia di amministrazione di Microsoft Entra e quindi:
- Passare a Identità>Applicazioni>Registrazioni app><la tua applicazione>>Endpoint.
- Individuare l'URI in Documento dei metadati openID Connect.
Esempio di richiesta
La richiesta seguente ottiene i metadati di configurazione OpenID dall'endpoint del documento di configurazione OpenID dell'autorità di common
nel cloud pubblico di Azure:
GET /common/v2.0/.well-known/openid-configuration
Host: login.microsoftonline.com
Suggerimento
Prova Per visualizzare il documento di configurazione OpenID per l'autorità di common
di un'applicazione, passare a https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration.
Risposta di esempio
I metadati di configurazione vengono restituiti in formato JSON, come illustrato nell'esempio seguente (troncato per brevità). I metadati restituiti nella risposta JSON sono descritti in dettaglio nella specifica di individuazione OpenID Connect 1.0.
{
"authorization_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize",
"token_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token",
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"private_key_jwt"
],
"jwks_uri": "https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys",
"userinfo_endpoint": "https://graph.microsoft.com/oidc/userinfo",
"subject_types_supported": [
"pairwise"
],
...
}
Inviare la richiesta di accesso
Per autenticare un utente e richiedere un token ID da usare nell'applicazione, indirizzare l'agente-utente all'endpoint /authorize di Microsoft Identity Platform. La richiesta è simile a quella della prima parte del flusso del codice di autorizzazione di OAuth 2.0, con alcune importanti differenze:
- Includere l'ambito
openid
nel parametroscope
. - Specificare
id_token
nel parametroresponse_type
. - Includere il parametro
nonce
.
Richiesta di accesso di esempio (interruzioni di riga incluse solo per la leggibilità):
GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=678910
Parametro | Condizione | Descrizione |
---|---|---|
tenant |
Richiesto | È possibile usare il valore {tenant} nel percorso della richiesta per controllare chi può accedere all'applicazione. I valori consentiti sono common , organizations , consumers e gli identificatori del tenant. Per altre informazioni, vedere le nozioni di base sui protocolli. In modo critico, per gli scenari guest in cui un utente passa da un tenant a un altro tenant, è necessario fornire l'identificatore del tenant per accedere correttamente al tenant della risorsa. |
client_id |
Richiesto | L'ID applicazione (client) che l'esperienza Interfaccia di amministrazione di Microsoft Entra: Registrazioni app ha assegnato all'app. |
response_type |
Richiesto | Deve includere id_token per l'accesso a OpenID Connect. |
redirect_uri |
Consigliato | URI di reindirizzamento dell'app dove le risposte di autenticazione possono essere inviate e ricevute dall'app. Deve corrispondere esattamente a uno degli URI di reindirizzamento registrati nel portale, ad eccezione del fatto che deve essere codificato come URL. Se non è presente, l'endpoint seleziona uno registrato redirect_uri in modo casuale per inviare nuovamente l'utente. |
scope |
Richiesto | Elenco di ambiti separato da spazi. Per OpenID Connect, deve includere l'ambito openid che esegue la conversione all'autorizzazione per l'Accesso nell'interfaccia utente di consenso. È anche possibile includere in questa richiesta altri ambiti per richiedere il consenso. |
nonce |
Richiesto | Valore generato e inviato dall'app nella richiesta di un token ID. Lo stesso valore nonce è incluso nel token ID restituito all'app da Microsoft Identity Platform. Per attenuare gli attacchi di riproduzione dei token, l'app deve verificare che il valore nonce nel token ID sia lo stesso valore inviato durante la richiesta del token. Il valore è in genere una stringa univoca casuale. |
response_mode |
Consigliato | Specifica il metodo che deve essere usato per inviare il codice di autorizzazione risultante all'app. Può essere form_post o fragment . Per le applicazioni Web è consigliabile usare response_mode=form_post per assicurare il trasferimento più sicuro dei token nell'applicazione. |
state |
Consigliato | Valore incluso nella richiesta che viene restituito nella risposta del token. Può trattarsi di una stringa di qualsiasi contenuto. Per evitare gli attacchi di richiesta intersito falsa, viene in genere usato un valore univoco generato casualmente. Anche lo stato viene usato per codificare le informazioni sullo stato dell'utente nell'app prima dell'esecuzione della richiesta di autenticazione, ad esempio la pagina o la visualizzazione corrente dell'utente. |
prompt |
Facoltativo | Indica il tipo di interazione utente richiesto. Gli unici valori validi al momento sono login , none , consent e select_account . L'attestazione prompt=login forza l'utente a immettere le sue credenziali alla richiesta, negando l'accesso Single Sign-On. Il parametro prompt=none è l'opposto e deve essere associato a un login_hint per indicare l'utente che deve essere registrato. Questi parametri assicurano che all'utente non venga mostrata alcuna richiesta interattiva. Se la richiesta non può essere completata automaticamente mediante Single-Sign-On, Microsoft Identity Platform restituisce un errore. Le cause includono nessun utente connesso, l'utente con suggerimenti non è connesso o più utenti hanno eseguito l'accesso, ma non è stato fornito alcun suggerimento. L'attestazione prompt=consent attiva la finestra di dialogo di consenso di OAuth dopo l'accesso dell'utente. La finestra di dialogo chiede all'utente di concedere le autorizzazioni per l'app. Infine, select_account mostra l'utente un selettore di account, negando l'accesso Single Sign-Out, ma consentendo all'utente di selezionare l'account con cui intende eseguire l'accesso, senza richiedere la voce delle credenziali. Non è possibile usare sia login_hint che select_account . |
login_hint |
Facoltativo | È possibile usare questo parametro per pre-compilare i campi nome utente e indirizzo di posta elettronica nella pagina di accesso, se già si conosce il nome utente. Spesso le app usano questo parametro durante la riautenticazione, dopo aver già estratto l'attestazione facoltativa login_hint da un accesso precedente. |
domain_hint |
Facoltativo | Area di autenticazione dell'utente in una directory federata. Non viene eseguito il processo di individuazione basato sulla posta elettronica a cui viene sottoposto l'utente nella pagina di accesso per garantire un'esperienza utente più semplice. Per i tenant federati mediante una directory locale come AD FS, questo spesso comporta un accesso senza problemi per via della sessione di accesso esistente. |
A questo punto, all'utente viene chiesto di immettere le credenziali e completare l'autenticazione. Microsoft Identity Platform garantisce che l'utente abbia dato il consenso alle autorizzazioni indicate nel parametro di query scope
. Se l'utente non ha dato il consenso per alcuna autorizzazione, Microsoft Identity Platform chiede all'utente di dare il consenso per le autorizzazioni obbligatorie. Sono disponibili altre informazioni su autorizzazioni, consenso e app multi-tenant.
Dopo che l'utente ha eseguito l'autenticazione e dato il consenso, Microsoft Identity Platform restituisce una risposta all'app nell'URI di reindirizzamento indicato usando il metodo specificato nel parametro response_mode
.
Risposta con esito positivo
La risposta con esito positivo quando si usa response_mode=form_post
è simile alla seguente:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
Parametro | Descrizione |
---|---|
id_token |
Token ID richiesto dall'app. È possibile usare il parametro id_token per verificare l'identità dell'utente e avviare una sessione con l'utente. Per altre informazioni sui token ID e sul relativo contenuto, vedere informazioni di riferimento sul token ID. |
state |
Se nella richiesta è incluso un parametro state , lo stesso valore deve essere visualizzato nella risposta. L'app deve verificare che i valori state nella richiesta e nella risposta siano identici. |
Risposta con errore
Le risposte di errore possono essere inviate anche all'URI di reindirizzamento in modo che l'app possa gestirle, ad esempio:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
error=access_denied&error_description=the+user+canceled+the+authentication
Parametro | Descrizione |
---|---|
error |
Stringa di codice di errore che può essere usata per classificare i tipi di errori che si verificano e correggerli. |
error_description |
Messaggio di errore specifico che consente di identificare la causa principale di un errore di autenticazione. |
Codici per gli errori dell'endpoint di autorizzazione
La tabella seguente descrive i codici di errore che possono essere restituiti nel parametro error
della risposta di errore:
Codice errore | Descrizione | Azione client |
---|---|---|
invalid_request |
Errore del protocollo, ad esempio un parametro obbligatorio mancante. | Correggere e inviare di nuovo la richiesta. Questo errore di sviluppo deve essere rilevato durante il test dell'applicazione. |
unauthorized_client |
L'applicazione client non può richiedere un codice di autorizzazione. | Questo errore può verificarsi quando l'applicazione client non è registrata in Microsoft Entra ID o non viene aggiunta al tenant di Microsoft Entra dell'utente. L'applicazione può chiedere all'utente di installare l'applicazione e di aggiungerla a Microsoft Entra ID. |
access_denied |
Il proprietario della risorsa ha negato il consenso. | L'applicazione client può notificare all'utente che non può proseguire a meno che l'utente non acconsenta. |
unsupported_response_type |
Il server di autorizzazione non supporta il tipo di risposta nella richiesta. | Correggere e inviare di nuovo la richiesta. Questo errore di sviluppo deve essere rilevato durante il test dell'applicazione. |
server_error |
Errore imprevisto rilevato dal server. | ripetere la richiesta. Questi errori possono dipendere da condizioni temporanee. L'applicazione client può comunicare all'utente che la risposta è stata ritardata a causa di un errore temporaneo. |
temporarily_unavailable |
Il server è temporaneamente troppo occupato per gestire la richiesta. | ripetere la richiesta. L'applicazione client può comunicare all'utente che la risposta è stata ritardata a causa di una condizione temporanea. |
invalid_resource |
La risorsa di destinazione non è valida perché non esiste, Microsoft Entra ID non è in grado di trovarlo o è configurato in modo non corretto. | Questo errore indica che la risorsa, se esistente, non è stata configurata nel tenant. L'applicazione può chiedere all'utente di installare l'applicazione e di aggiungerla a Microsoft Entra ID. |
Convalidare il token ID
La ricezione di un token ID nell'app potrebbe non essere sempre sufficiente per autenticare completamente l'utente. Potrebbe anche essere necessario convalidare la firma del token ID e verificarne le attestazioni in base ai requisiti dell'app. Come tutti i provider OpenID, i token ID di Microsoft Identity Platform sono token JSON Web (JWT) firmati usando la crittografia a chiave pubblica.
Le app Web e le API Web che usano token ID per l'autorizzazione devono convalidarle perché tali applicazioni ottengono l'accesso ai dati. Altri tipi di applicazione potrebbero tuttavia non trarre vantaggio dalla convalida del token ID. Le applicazioni native e a pagina singola (SPA), ad esempio, raramente traggono vantaggio dalla convalida dei token ID perché qualsiasi entità con accesso fisico al dispositivo o al browser può potenzialmente ignorare la convalida.
Di seguito sono riportati due esempi di evitamento di convalida dei token:
- Fornire token falsi o chiavi modificando il traffico di rete nel dispositivo
- Debug dell'applicazione ed esecuzione della logica di convalida durante l'esecuzione del programma.
Se si convalidano i token ID nell'applicazione, è consigliabile non farlo manualmente. Usare invece una libreria di convalida dei token per analizzare e convalidare i token. Le librerie di convalida dei token sono disponibili per la maggior parte dei linguaggi di sviluppo, dei framework e delle piattaforme.
Cosa convalidare in un token ID
Oltre a convalidare la firma del token ID, è necessario convalidare diverse attestazioni come descritto in Convalida di un token ID. Vedere anche Informazioni importanti sulla firma dell'effetto di attivazione della chiave.
Diverse altre convalide sono comuni e variano in base agli scenari dell'applicazione, tra cui:
- Garantire che l'utente o l'organizzazione dispongano dell'iscrizione all'app.
- Garantire che l'utente disponga di autorizzazioni/privilegi adeguati.
- Garantire che sia stato applicato un determinato livello di autenticazione, ad esempio l'autenticazione a più fattori.
Dopo aver convalidato il token ID, è possibile iniziare una sessione con l'utente e usare le informazioni nelle attestazioni del token per la personalizzazione, la visualizzazione o l'archiviazione dei dati.
Diagramma di protocollo: acquisizione dei token di accesso
Molte applicazioni non solo devono dare l'accesso a un utente, ma anche a una risorsa protetta come un'API Web per conto dell'utente. Questo scenario combina OpenID Connect per ottenere un token ID per l'autenticazione dell'utente e OAuth 2.0 per ottenere un token di accesso per una risorsa protetta.
Il flusso completo di accesso OpenID Connect e di acquisizione dei token è simile a quello illustrato nel diagramma:
Ottenere un token di accesso per l'endpoint UserInfo
Oltre al token ID, le informazioni dell'utente autenticato vengono rese disponibili anche nell'endpoint UserInfo OIDC.
Per ottenere un token di accesso per l'endpoint UserInfo OIDC, modificare la richiesta di accesso come descritto di seguito:
// Line breaks are for legibility only.
GET https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444 // Your app registration's Application (client) ID
&response_type=id_token%20token // Requests both an ID token and access token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F // Your application's redirect URI (URL-encoded)
&response_mode=form_post // 'form_post' or 'fragment'
&scope=openid+profile+email // 'openid' is required; 'profile' and 'email' provide information in the UserInfo endpoint as they do in an ID token.
&state=12345 // Any value - provided by your app
&nonce=678910 // Any value - provided by your app
È possibile usare il flusso del codice di autorizzazione, il flusso del codice del dispositivo o un token di aggiornamento al posto di response_type=token
per ottenere un token di accesso per l'app.
Risposta del token riuscita
Risposta con esito positivo usando response_mode=form_post
:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
access_token=eyJ0eXAiOiJKV1QiLCJub25jZSI6I....
&token_type=Bearer
&expires_in=3598
&scope=email+openid+profile
&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI....
&state=12345
I parametri di risposta indicano la stessa cosa indipendentemente dal flusso usato per acquisirli.
Parametro | Descrizione |
---|---|
access_token |
Token usato per chiamare l'endpoint UserInfo. |
token_type |
Sempre "bearer token" |
expires_in |
Tempo di scadenza del token di accesso, espresso in secondi. |
scope |
Autorizzazioni concesse per il token di accesso. Poiché l'endpoint UserInfo è ospitato in Microsoft Graph, è possibile che scope ne contenga altre precedentemente concesse all'applicazione, ad esempio User.Read . |
id_token |
Token ID richiesto dall'app. È possibile usare il token ID per verificare l'identità dell'utente e avviare una sessione con l'utente. Altre informazioni sui token ID e il relativo contenuto sono disponibili nelle informazioni di riferimento dei token ID. |
state |
Se nella richiesta è incluso un parametro state, lo stesso valore deve essere visualizzato nella risposta. L'app deve verificare che i valori state nella richiesta e nella risposta siano identici. |
Avviso
Non tentare di convalidare o leggere i token per qualsiasi API di cui non si è proprietari, inclusi i token in questo esempio, nel codice. I token per i servizi Microsoft possono usare un formato speciale che non verrà convalidato come token JWT e potrebbe anche essere crittografato per gli utenti (account Microsoft). Sebbene la lettura dei token sia uno strumento utile per il debug e l'apprendimento, è consigliabile non dipendere da questo per il codice o presupporre specifiche sui token che non sono per un'API che si controlla.
Risposta con errore
Le risposte di errore possono essere inviate anche all'URI di reindirizzamento in modo che l'app possa gestirle adeguatamente:
POST /myapp/ HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
error=access_denied&error_description=the+user+canceled+the+authentication
Parametro | Descrizione |
---|---|
error |
Stringa di codice di errore che può essere usata per classificare i tipi di errori che si verificano e correggerli. |
error_description |
Messaggio di errore specifico che consente di identificare la causa principale di un errore di autenticazione. |
Per una descrizione dei possibili codici di errore e delle risposte client consigliate, vedere Codici per gli errori dell'endpoint di autorizzazione.
Dopo aver ottenuto un codice di autorizzazione e un token ID, è possibile far accedere l'utente e ottenere i token di accesso per suo conto. Per far accedere l'utente, è necessario convalidare il token ID come descritto in valida token. Per ottenere i token di accesso, seguire la procedura descritta nella documentazione del flusso del codice OAuth.
Chiamata dell'endpoint UserInfo
Esaminare la documentazione UserInfo per esaminare come chiamare l'endpoint UserInfo con questo token.
Inviare una richiesta di disconnessione
Per disconnettere un utente, eseguire entrambe le operazioni seguenti:
- Reindirizzare l'agente-utente dell'utente all'URI di disconnessione di Microsoft Identity Platform.
- Cancellare i cookie dell'app o terminare la sessione dell'utente nell'applicazione.
Se non si esegue una di queste operazioni, l'utente potrebbe rimanere autenticato e non ricevere la richiesta di accesso al successivo uso dell'app.
Reindirizzare l'agente-utente al end_session_endpoint
come illustrato nel documento di configurazione di OpenID Connect. Il end_session_endpoint
supporta sia le richieste HTTP GET che POST.
GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?
post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
Nota
Al termine della disconnessione, le sessioni attive verranno impostate su inattive. Se esiste un token di aggiornamento primario valido per l'utente disconnesso e viene eseguito un nuovo accesso, l'accesso Single Sign-Out verrà interrotto e l'utente visualizzerà una richiesta con una selezione account. Se l'opzione selezionata è l'account connesso che fa riferimento al token di aggiornamento primario, l'accesso procederà automaticamente senza la necessità di inserire credenziali aggiornate.
Single Sign-Out
Quando si reindirizza l'utente a end_session_endpoint
in un'applicazione, Microsoft Identity Platform termina la sessione utente per questa applicazione. Tuttavia, l'utente potrebbe comunque accedere ad altre applicazioni che usano gli stessi account Microsoft per l'autenticazione.
Quando un utente ha eseguito l'accesso a più applicazioni Web o a pagina singola registrate in questa directory (nota anche come tenant) consente a questo utente di disconnettersi immediatamente da tutte le applicazioni disconnettendosi in una delle applicazioni.
Per abilitare l'accesso Single Sign-Out per l'applicazione Entra, è necessario usare la funzionalità di disconnessione del canale front-end OpenID Connect. Questa funzionalità consente a un'applicazione di notificare ad altre applicazioni che l'utente ha disconnesso. Quando l'utente esce da un'applicazione, Microsoft Identity Platform invia una richiesta HTTP GET all'URL di disconnessione del canale anteriore di ogni applicazione a cui l'utente ha eseguito l'accesso.
Queste applicazioni devono rispondere a questa richiesta eseguendo le due azioni seguenti per il completamento dell'accesso Single Sign-Out:
- Cancellare qualsiasi sessione che identifichi l'utente.
- Le applicazioni devono rispondere a questa richiesta cancellando qualsiasi sessione che identifica l'utente e restituendo una risposta
200
.
Che cos'è un URL di disconnessione del canale anteriore?
Un URL di disconnessione del canale anteriore è il punto in cui l'applicazione Web o SPA riceve la richiesta di disconnessione dal server di autenticazione Entra ed esegue la funzionalità di single sign-out. Ogni applicazione ha un URL di disconnessione del canale anteriore.
Quando è necessario impostare un URL di disconnessione del canale anteriore?
Se l'utente o lo sviluppatore ha determinato che l'accesso Single Sign-Out è necessario per un'applicazione, è necessario impostare l'URL di disconnessione del canale anteriore per la registrazione dell'app dell'applicazione. Dopo aver impostato l'URL di disconnessione del canale anteriore per la registrazione dell'app dell'applicazione, Microsoft Identity Platform invia una richiesta HTTP GET all'URL di disconnessione front-channel di questa applicazione quando l'utente connesso ha disconnesso un'altra applicazione.
Come configurare l'accesso Single Sign-Out usando la funzionalità di disconnessione del canale front-end
Per usare la funzionalità di disconnessione del canale anteriore per un set di applicazioni, è necessario completare le due attività seguenti:
- Impostare l'URL di disconnessione del canale anteriore nell'interfaccia di amministrazione di Microsoft Entra per tutte le applicazioni che devono essere disconnesse contemporaneamente. Ogni applicazione ha in genere un proprio URL di disconnessione del canale anteriore dedicato.
- Modificare il codice delle applicazioni in modo che ascoltino una richiesta HTTP GET inviata da Microsoft Identity Platform all'URL di disconnessione del canale anteriore e rispondano a questa richiesta cancellando qualsiasi sessione che identifica l'utente e restituendo una risposta 200.
Come scegliere un URL di disconnessione del canale anteriore
L'URL di disconnessione del canale anteriore deve essere un URL in grado di ricevere e rispondere alle richieste HTTP GET e deve essere in grado di cancellare qualsiasi sessione che identifica l'utente. Di seguito sono riportati alcuni esempi di URL di disconnessione del canale anteriore:
Passaggi successivi
- Esaminare la documentazione dell'endpoint UserInfo.
- Popolare i valori delle attestazioni in un token con i dati dei sistemi locali.
- Includere attestazioni personalizzate nei token.