OpenID Connect nel Microsoft Identity Platform

OpenID Connect (OIDC) estende il protocollo di autorizzazione OAuth 2.0 da usare come protocollo di autenticazione aggiuntivo. È 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 alla 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 nel flusso sono descritti in modo più dettagliato nelle sezioni successive dell'articolo.

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

Suggerimento

Provare a eseguire la richiesta in Postman
Provare a eseguire questa richiesta e altro ancora in Postman. Non dimenticare di sostituire token e ID.

Abilitare i token ID

Il token ID introdotto da OpenID Connect viene rilasciato dal server di autorizzazione, il 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 il Microsoft Identity Platform. I token ID per un'applicazione sono abilitati usando uno dei metodi seguenti:

  1. Passare alla portale di Azure e selezionare Azure Active Directory>Registrazioni appautenticazione< dell'applicazione>>.>
  2. In Concessione implicita e flussi ibridi selezionare la casella di controllo Token ID (usati per flussi impliciti e ibridi).

Oppure:

  1. Selezionare Azure Active Directory>Registrazioni app><Il manifesto dell'applicazione>>.
  2. Impostare su oauth2AllowIdTokenImplicitFlowtrue nel manifesto dell'applicazione della registrazione dell'app.

Se i token ID non sono abilitati per l'app e ne viene richiesto uno, il Microsoft Identity Platform restituisce un unsupported_response errore simile al seguente:

Il valore specificato 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 code è illustrata in Inviare la richiesta di accesso più avanti nell'articolo.

Recuperare il documento di configurazione OpenID

I provider OpenID come il 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 i consumer 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 manualmente le richieste di codice e le risposte dall'endpoint del documento di configurazione OpenID.

Trovare l'URI del documento di configurazione OpenID dell'app

Ogni registrazione dell'app in Azure AD viene fornito un endpoint accessibile pubblicamente che gestisce il documento di configurazione OpenID. Per determinare l'URI dell'endpoint del documento di configurazione per l'app, aggiungere il percorso di configurazione OpenID notoall'URL dell'autorità di registrazione dell'app.

  • Percorso del documento di configurazione noto: /.well-known/openid-configuration
  • URL autorità: https://login.microsoftonline.com/{tenant}/v2.0

Il valore di varia in base al gruppo di {tenant} destinatari di accesso dell'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 Azure AD.
organizations Possono accedere all'applicazione solo gli utenti con account aziendali o dell'istituto d'istruzione di Azure AD.
consumers Possono accedere all'applicazione solo gli utenti con account Microsoft personali.
8eaef023-2b34-4da1-9baa-8bc8c9d6a490 o contoso.onmicrosoft.com Solo gli utenti di un tenant di Azure AD 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 Azure AD o l'ID tenant in formato GUID. È anche possibile usare il GUID del tenant consumer, 9188040d-6c67-4c5b-b112-36a304b66dad, al posto di consumers.

Suggerimento

Si noti che quando si usa l'autorità common o consumers per gli account Microsoft personali, l'applicazione di risorse di consumo deve essere configurata per supportare tale tipo di account in conformità con signInAudience.

Per trovare il documento di configurazione OIDC nel portale di Azure, passare alla portale di Azure e quindi:

  1. Selezionare Azure Active Directory>Registrazioni app><Endpoint dell'applicazione>>.
  2. Individuare l'URI nel documento dei metadati openID Connect.

Richiesta di esempio

La richiesta seguente ottiene i metadati di configurazione OpenID dall'endpoint common del documento di configurazione OpenID dell'autorità 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 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 del Microsoft Identity Platform. La richiesta è simile alla prima parte del flusso del codice di autorizzazione OAuth 2.0 , ma con queste distinzioni:

  • Includere l'ambito openid nel scope parametro .
  • Specificare code nel response_type parametro .
  • Includere il nonce parametro .

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=6731de76-14a6-49ae-97bc-6eba6914391e
&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 Obbligatoria È 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 si firma un utente da un tenant in un altro tenant, è necessario specificare l'identificatore del tenant per l'accesso corretto al tenant della risorsa.
client_id Obbligatoria L'ID dell'applicazione (client) assegnato all'app dall'esperienzaPortale di Azure - Registrazioni app.
response_type Obbligatoria Deve includere code 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 selezionerà uno registrato redirect_uri in modo casuale per inviare nuovamente l'utente.
scope Obbligatoria Elenco di ambiti separati da spazi. Per OpenID Connect, deve includere l'ambito openid, che si traduce nell'autorizzazione Accedi nell'interfaccia utente del consenso. È anche possibile includere in questa richiesta altri ambiti per richiedere il consenso.
nonce Obbligatoria Valore generato e inviato dall'app nella richiesta di un token ID. Lo stesso nonce valore è incluso nel token ID restituito all'app dal Microsoft Identity Platform. Per attenuare gli attacchi di riproduzione dei token, l'app deve verificare che il nonce valore nel token ID corrisponda al 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 verrà restituito anche 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 obbligatoria dell'utente. Gli unici valori validi in questo momento sono login, none, consente select_account. L'attestazione prompt=login forza l'utente a immettere le sue credenziali alla richiesta, negando l'accesso Single Sign-On. Il prompt=none parametro è l'opposto e deve essere associato a un login_hint per indicare l'utente che deve essere connesso. Questi parametri assicurano che all'utente non venga visualizzato alcun prompt interattivo. Se la richiesta non può essere completata automaticamente tramite Single Sign-On, il Microsoft Identity Platform restituisce un errore. Le cause includono nessun utente connesso, l'utente con suggerimento non ha eseguito l'accesso 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. select_account Mostra infine l'utente un selettore di account, negando l'accesso SSO invisibile all'utente, ma consentendo all'utente di selezionare l'account con cui intende eseguire l'accesso, senza richiedere la voce delle credenziali. Non è possibile usare sia che login_hintselect_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 login_hintfacoltativa 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. Il Microsoft Identity Platform verifica che l'utente abbia acconsentito alle autorizzazioni indicate nel scope parametro di query. Se l'utente non ha acconsentito ad alcuna di queste autorizzazioni, il Microsoft Identity Platform chiede all'utente di fornire il consenso alle autorizzazioni necessarie. Sono disponibili altre informazioni su autorizzazioni, consenso e app multi-tenant.

Dopo che l'utente esegue l'autenticazione e concede il consenso, il Microsoft Identity Platform restituisce una risposta all'app all'URI di reindirizzamento indicato usando il metodo specificato nel response_mode parametro .

Risposta di esito positivo

Una risposta con esito positivo quando si usa response_mode=form_post è simile a:

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 le 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 dello stato nella richiesta e nella risposta siano identici.

Risposta di errore

È anche possibile inviare risposte di errore 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 di 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 Azure AD o non viene aggiunta al tenant di Azure AD dell'utente. L'applicazione può chiedere all'utente di installare l'applicazione e di aggiungerla ad Azure AD.
access_denied Il proprietario della risorsa ha negato il consenso. L'applicazione client può indicare all'utente che non può proseguire, a meno che l'utente non fornisca il consenso.
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, Azure AD non riesce a trovarla o non è configurata correttamente. 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 ad Azure AD.

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. Analogamente a tutti i provider OpenID, i token ID del 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 app native e a pagina singola,ad esempio, traggono raramente 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 bypass di convalida dei token:

  • Fornire token o chiavi falsi modificando il traffico di rete verso il dispositivo
  • Debug dell'applicazione e 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 nel riferimento al token ID. Vedere anche Informazioni importanti sulla firma del rollover 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 accedere a un utente, ma anche accedere a una risorsa protetta come un'API Web per conto dell'utente. Questo scenario combina OpenID Connect per ottenere un token ID per autenticare l'utente e OAuth 2.0 per ottenere un token di accesso per una risorsa protetta.

Il flusso completo di accesso e acquisizione dei token openID Connect è simile al diagramma seguente:

Protocollo OpenID Connect: acquisizione di 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=6731de76-14a6-49ae-97bc-6eba6914391e        // 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 per ottenere un token di response_type=token accesso per l'app.

Risposta del token riuscita

Risposta riuscita dall'uso di 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 che verrà usato per chiamare l'endpoint UserInfo.
token_type Sempre "Bearer"
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 scope che altri utenti vengano precedentemente concessi 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 sui relativi contenuti sono disponibili nella guida di riferimento ai 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 del parametro state siano identici nella richiesta e nella risposta.

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 consumer (account Microsoft). Durante la lettura dei token è uno strumento utile per il debug e l'apprendimento, non assumere dipendenze da questo nel codice o presupporre specifiche sui token che non sono per un'API che si controlla.

Risposta di errore

È anche possibile inviare risposte di errore all'URI di reindirizzamento in modo che l'app possa gestirle in modo appropriato:

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 esattamente come descritto. Per ottenere i token di accesso, seguire la procedura descritta nella documentazione del flusso del codice OAuth.

Chiamata dell'endpoint UserInfo

Esaminare la documentazione di UserInfo per esaminare come chiamare l'endpoint UserInfo con questo token.

Inviare una richiesta di disconnessione

Per disconnettere un utente, eseguire entrambe queste operazioni:

  • Reindirizzare l'agente utente dell'utente all'URI di disconnessione del Microsoft Identity Platform
  • Cancellare i cookie dell'app o terminare la sessione dell'utente nell'applicazione.

Se non si esegue alcuna operazione, l'utente potrebbe rimanere autenticato e non chiedere di eseguire l'accesso al successivo utente dell'app.

Reindirizzare l'agente utente a end_session_endpoint come illustrato nel documento di configurazione di OpenID Connect. 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 URL a cui l'utente viene reindirizzato dopo la disconnessione. Se il parametro non è incluso, viene visualizzato un messaggio generico generato dal 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_hintfacoltativa 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 logout_hint parametro .

Nota

Al termine della disconnessa, le sessioni attive verranno impostate su inattive. Se esiste un token di aggiornamento primario (PRT) valido per l'utente disconnesso e viene eseguito un nuovo accesso, l'accesso SSO 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, il Microsoft Identity Platform cancella la sessione dell'utente dal browser. L'utente può tuttavia essere ancora connesso ad altre applicazioni che usano account Microsoft per l'autenticazione. Per consentire a tali applicazioni di disconnettere l'utente contemporaneamente, il Microsoft Identity Platform invia una richiesta HTTP GET alla registrazione LogoutUrl di tutte le applicazioni a cui l'utente ha attualmente eseguito l'accesso. Le applicazioni devono rispondere a questa richiesta cancellando qualsiasi sessione che identifica l'utente e restituendo una risposta 200. Se si vuole supportare Single Sign-Out nell'applicazione, è necessario implementare questo tipo di oggetto LogoutUrl nel codice dell'applicazione. È possibile impostare LogoutUrl dal portale di registrazione delle app.

Passaggi successivi