Dela via


SAML-protokoll för enkel utloggning

Microsoft Entra ID har stöd för SAML 2.0-webbläsarens profil för enkel utloggning. För att enkel utloggning ska fungera korrekt måste logoutURL för programmet uttryckligen registreras med Microsoft Entra-ID under programregistreringen.

Om appen läggs till i Azure App Gallery kan det här värdet anges som standard. Annars måste värdet fastställas och anges av den person som lägger till appen i sin Microsoft Entra-klientorganisation. Microsoft Entra ID använder LogoutURL för att omdirigera användare när de har loggat ut. Microsoft Entra ID stöder omdirigeringsbindning (HTTP GET) och inte HTTP POST-bindning.

Följande diagram visar arbetsflödet för microsoft Entra-processen för enkel utloggning.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

Logga utRequest

Molntjänsten skickar ett LogoutRequest meddelande till Microsoft Entra-ID för att ange att en session har avslutats. Följande utdrag visar ett exempelelement 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>

Elementet LogoutRequest som skickas till Microsoft Entra ID kräver följande attribut:

  • ID – Detta identifierar utloggningsbegäran. Värdet ID för bör inte börja med ett tal. Den vanliga metoden är att lägga till ID i strängrepresentationen av ett GUID.
  • Version – Ange värdet för det här elementet till 2.0. Detta värde krävs.
  • IssueInstant – Det här är en DateTime sträng med ett UTC-värde (Coordinate Universal Time) och round-trip format ("o"). Microsoft Entra-ID förväntar sig ett värde av den här typen, men framtvingar det inte.

Enligt avsnitt 3.7 i SAML 2.0 Core-specifikationen kan det finnas flera deltagare (andra program) i en session förutom ditt program. Om en av de andra deltagarna skickar en LogoutRequest till Microsofts identitetsplattform (sessionsutfärdare) skickar den en LogoutRequest tillbaka till alla sessionsdeltagare utom deltagaren som skickade den första LogoutRequest. Om en annan deltagare samtidigt initierade utloggning skulle det finnas en kapplöpning för att se vilken som LogoutRequest når Microsofts identitetsplattform först. Därför bör ett program alltid vara redo att hantera en LogoutRequest.

Utfärdare

Elementet Issuer i ett LogoutRequest måste exakt matcha ett av ServicePrincipalNames i molntjänsten i Microsoft Entra-ID. Detta är vanligtvis inställt på den app-ID-URI som anges under programregistreringen.

NameID

Värdet för elementet NameID måste exakt matcha den NameID användare som loggas ut.

Kommentar

Under SAML-utloggningsbegäran NameID beaktas inte värdet av Microsoft Entra-ID.
Om en session med en användare är aktiv väljer Microsoft Entra-ID automatiskt den sessionen och SAML-utloggningen fortsätter.
Om flera användarsessioner är aktiva räknar Microsoft Entra-ID upp de aktiva sessionerna för användarval. När användaren har valts fortsätter SAML-utloggningen.

Logga utResponse

Microsoft Entra-ID skickar ett LogoutResponse som svar på ett LogoutRequest element. Följande utdrag visar ett exempel 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 anger IDvärdena , Version och IssueInstant i elementet LogoutResponse . Det anger också -elementet InResponseTo till värdet för ID attributet för LogoutRequest det som framkallade svaret.

Utfärdare

Microsoft Entra ID anger det här värdet till https://login.microsoftonline.com/<TenantIdGUID>/ där <TenantIdGUID är klientorganisations-ID> för Microsoft Entra-klientorganisationen.

Om du vill identifiera utfärdarelementet korrekt använder du värdet https://login.microsoftonline.com/<TenantIdGUID>/ som visas i exemplet LogoutResponse. Det här URL-formatet identifierar Microsoft Entra-klienten som utfärdare och representerar den utfärdare som ansvarar för att utfärda svaret.

Status

Microsoft Entra-ID använder elementet StatusCode i -elementet Status för att indikera att inloggningen lyckades eller misslyckades. När utloggningsförsöket misslyckas kan elementet StatusCode också innehålla anpassade felmeddelanden.