Condividi tramite


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.

Diagramma di corsia che mostra il flusso di accesso del protocollo OpenID Connect.

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:

  1. Accedi all'Interfaccia di amministrazione di Microsoft Entra.
  2. Passare a Identità>Applicazioni>Registrazioni app><la tua applicazione>>Autenticazione.
  3. In Configurazioni della piattaforma selezionare Aggiungi una piattaforma.
  4. Nel riquadro visualizzato selezionare la piattaforma appropriata per l'applicazione. Ad esempio, selezionare Web per un'applicazione Web.
  5. In URI di reindirizzamento aggiungere l'URI di reindirizzamento dell'applicazione. Ad esempio: https://localhost:8080/.
  6. In Concessione implicita e flussi ibridi selezionare la casella di controllo token ID (usati per i flussi impliciti e ibridi).

Oppure:

  1. Selezionare Identità>Applicazioni>Registrazioni app><la tua applicazione>>Manifesto.
  2. Impostare oauth2AllowIdTokenImplicitFlow su true 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:

  1. Passare a Identità>Applicazioni>Registrazioni app><la tua applicazione>>Endpoint.
  2. 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 parametro scope.
  • Specificare id_token nel parametro response_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 openidche 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:

Protocollo OpenID Connect: acquisizione dei token

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:

  1. Reindirizzare l'agente-utente dell'utente all'URI di disconnessione di Microsoft Identity Platform.
  2. 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
Parametro Condizione Descrizione
post_logout_redirect_uri Consigliato L'URL di destinazione al quale l'utente viene reindirizzato dopo la disconnessione. Se il parametro non è incluso, viene visualizzato un messaggio generico generato da Microsoft Identity Platform. Questo URL deve corrispondere esattamente a uno degli URI di reindirizzamento registrati per l'applicazione nel portale di registrazione delle app.
logout_hint Facoltativo Consente di disconnettersi senza chiedere all'utente di selezionare un account. Per usare logout_hint, abilitare l'attestazione login_hint facoltativa nell'applicazione client e usare il valore dell'attestazione login_hint facoltativa come logout_hint parametro . Non usare UPN o numeri di telefono come valore del parametro logout_hint.

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:

  1. Cancellare qualsiasi sessione che identifichi l'utente.
  2. 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