Protocollo SAML per Single Sign-On
Microsoft Entra ID supporta il profilo single sign-out del Web browser SAML 2.0. Per il corretto funzionamento dell'accesso Single Sign-Out, logoutURL per l'applicazione deve essere registrato in modo esplicito con Microsoft Entra ID durante la registrazione dell'applicazione.
Se l'app viene aggiunta alla raccolta app Azure, questo valore può essere impostato per impostazione predefinita. In caso contrario, il valore deve essere determinato e impostato dalla persona che aggiunge l'app al tenant di Microsoft Entra. Microsoft Entra ID usa logoutURL per reindirizzare gli utenti dopo la disconnessione. Microsoft Entra ID supporta l'associazione di reindirizzamento (HTTP GET) e non l'associazione HTTP POST.
Il diagramma seguente illustra il flusso di lavoro del processo di single sign-out di Microsoft Entra.
LogoutRequest
Il servizio cloud invia un LogoutRequest
messaggio all'ID Microsoft Entra per indicare che una sessione è stata terminata. L'estratto seguente contiene un esempio di elemento LogoutRequest
.
<samlp:LogoutRequest xmlns="urn:oasis:names:tc:SAML:2.0:metadata" ID="idaa6ebe6839094fe4abc4ebd5281ec780" Version="2.0" IssueInstant="2013-03-28T07:10:49.6004822Z" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://www.workaad.com</Issuer>
<NameID xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> Uz2Pqz1X7pxe4XLWxV9KJQ+n59d573SepSAkuYKSde8=</NameID>
</samlp:LogoutRequest>
L'elemento LogoutRequest
inviato a Microsoft Entra ID richiede gli attributi seguenti:
ID
: identifica la richiesta di disconnessione. Il valore diID
non deve iniziare con un numero. La procedura tipica consiste nell'aggiungere id alla rappresentazione di stringa di un GUID.Version
: impostare il valore di questo elemento su 2.0. Questo valore è obbligatorio.IssueInstant
: è una stringaDateTime
con un valore di UTC (Coordinate Universal Time) e il formato round trip ("o"). Microsoft Entra ID prevede un valore di questo tipo, ma non lo applica.
Nella sezione 3.7 della specifica di base SAML 2.0 possono essere presenti più partecipanti (altre applicazioni) in una sessione oltre all'applicazione. Se uno degli altri partecipanti invia un oggetto LogoutRequest
a Microsoft Identity Platform (l'autorità di sessione), invierà un LogoutRequest
messaggio a tutti i partecipanti alla sessione, ad eccezione del partecipante che ha inviato l'oggetto iniziale LogoutRequest
. Se un altro partecipante ha avviato contemporaneamente la disconnessa, ci sarà una gara per vedere quale LogoutRequest
raggiunge prima Microsoft Identity Platform. Pertanto, un'applicazione deve essere sempre preparata per gestire un oggetto LogoutRequest
.
Autorità di certificazione
L'elemento Issuer
in deve LogoutRequest
corrispondere esattamente a uno dei ServicePrincipalNames nel servizio cloud in Microsoft Entra ID. Viene in genere impostato sull' URI ID app specificato durante la registrazione dell'applicazione.
NameID
Il valore dell'elemento NameID
deve corrispondere esattamente al NameID
dell'utente che viene disconnesso.
Nota
Durante la richiesta di disconnessione SAML, il NameID
valore non viene considerato da Microsoft Entra ID.
Se una singola sessione utente è attiva, Microsoft Entra ID selezionerà automaticamente tale sessione e la disconnessione SAML procederà.
Se sono attive più sessioni utente, Microsoft Entra ID enumererà le sessioni attive per la selezione dell'utente. Dopo la selezione dell'utente, la disconnessione SAML procederà.
LogoutResponse
Microsoft Entra ID invia un oggetto LogoutResponse
in risposta a un LogoutRequest
elemento . L'estratto seguente contiene un esempio di elemento LogoutResponse
.
<samlp:LogoutResponse ID="_f0961a83-d071-4be5-a18c-9ae7b22987a4" Version="2.0" IssueInstant="2013-03-18T08:49:24.405Z" InResponseTo="iddce91f96e56747b5ace6d2e2aa9d4f8c" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/</Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
</samlp:LogoutResponse>
Microsoft Entra ID imposta i ID
valori e IssueInstant
Version
nell'elemento LogoutResponse
. Imposta anche l'elemento InResponseTo
sul valore dell'attributo ID
dell'elemento LogoutRequest
che ha provocato la risposta.
Autorità di certificazione
Microsoft Entra ID imposta questo valore su https://login.microsoftonline.com/<TenantIdGUID>/
dove <TenantIdGUID> è l'ID tenant del tenant di Microsoft Entra.
Per identificare correttamente l'elemento issuer, usare il valore https://login.microsoftonline.com/<TenantIdGUID>/
come illustrato nell'esempio LogoutResponse. Questo formato DI URL identifica il tenant di Microsoft Entra come autorità di certificazione, che rappresenta l'autorità responsabile dell'emissione della risposta.
Status
Microsoft Entra ID usa l'elemento StatusCode
nell'elemento per indicare l'esito Status
positivo o negativo della disconnessità. Quando il tentativo di disconnesso non riesce, l'elemento StatusCode
può contenere anche messaggi di errore personalizzati.