Condividi tramite


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.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

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 di ID 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 stringa DateTime 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 IDvalori e IssueInstantVersion 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.