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.
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ärdetID
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 enDateTime
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 ID
vä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.