SAML-Protokoll für einmaliges Abmelden

Microsoft Entra ID unterstützt das SAML 2.0 Webbrowser Single Sign-Out Profil. Damit die einmalige Abmeldung ordnungsgemäß funktioniert, muss die LogoutURL der Anwendung bei der Anwendungsregistrierung explizit mit Microsoft Entra ID registriert worden sein.

Wenn die App dem Azure-App-Katalog hinzugefügt wird, kann dieser Wert standardmäßig festgelegt werden. Andernfalls muss der Wert von der Person bestimmt und festgelegt werden, die die App ihrem Microsoft Entra-Mandanten hinzufügt. Microsoft Entra ID verwendet LogoutURL, um Benutzer nach dem Abmelden umzuleiten. Microsoft Entra ID unterstützt die Umleitungsbindung (HTTP GET) und keine HTTP POST-Bindung.

In der folgenden Abbildung ist der Workflow des Microsoft Entra-Prozesses für das einmalige Abmelden dargestellt.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

LogoutRequest

Der Clouddienst sendet eine LogoutRequest -Nachricht an Microsoft Entra, um anzugeben, dass eine Sitzung beendet wurde. Der folgende Auszug enthält ein LogoutRequest -Beispielelement.

<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>

Für das an Microsoft Entra ID gesendete LogoutRequest -Element sind die folgenden Attribute erforderlich:

  • ID: Dieses Attribut dient zum Identifizieren der Abmeldeanforderung. Der Wert von ID darf nicht mit einer Zahl beginnen. Die übliche Vorgehensweise besteht darin, id an die Zeichenfolgendarstellung einer GUID anzufügen.
  • Version: Legen Sie den Wert dieses Elements auf 2.0 fest. Dieser Wert ist erforderlich.
  • IssueInstant: Bei diesem Attribut handelt es sich um eine DateTime-Zeichenfolge mit einem UTC-Wert (Coordinated Universal Time) und Roundtripformat („o“). Microsoft Entra ID erwartet einen Wert dieses Typs, aber der Wert wird nicht erzwungen.

Gemäß Abschnitt 3.7 der SAML 2.0-Kernspezifikation kann es neben Ihrer Anwendung mehrere Teilnehmer (andere Anwendungen) in einer Sitzung geben. Wenn einer der anderen Teilnehmer eine LogoutRequest an Microsoft Identity Platform (die Sitzungsautorität) sendet, sendet Microsoft Identity Platform eine LogoutRequest zurück an alle Sitzungsteilnehmer mit Ausnahme des Teilnehmers, der die ursprüngliche LogoutRequest gesendet hat. Wenn ein anderer Teilnehmer gleichzeitig eine Abmeldung initiiert, entscheidet die Schnelligkeit, welche LogoutRequest Microsoft Identity Platform zuerst erreicht. Daher sollte eine Anwendung immer bereit sein, eine LogoutRequest zu verarbeiten.

Issuer (Aussteller)

Das Issuer-Element in einem LogoutRequest-Element muss mit einem der ServicePrincipalNames-Werte im Clouddienst von Microsoft Entra ID exakt übereinstimmen. Normalerweise ist es auf den App-ID-URI festgelegt, der bei der Anwendungsregistrierung angegeben wird.

NameID

Der Wert des NameID-Elements muss genau mit NameID des Benutzers übereinstimmen, der abgemeldet wird.

Hinweis

Bei der SAML-Abmeldeanforderung wird der NameID-Wert von Microsoft Entra ID nicht berücksichtigt.
Ist eine einzelne Benutzersitzung aktiv, wählt Microsoft Entra ID diese Sitzung automatisch aus, und die SAML-Abmeldung wird fortgesetzt.
Sind mehrere Benutzersitzungen aktiv, listet Microsoft Entra ID die aktiven Sitzungen für die Benutzerauswahl auf. Nach der Benutzerauswahl wird die SAML-Abmeldung fortgesetzt.

LogoutResponse

Microsoft Entra-ID sendet als LogoutResponse Antwort auf ein LogoutRequest Element eine . Der folgende Auszug enthält ein Beispiel für 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 legt die ID, Version und IssueInstant Werte im LogoutResponse -Element fest. Außerdem wird das InResponseTo-Element auf den Wert des ID-Attributs des LogoutRequest-Elements festgelegt, von dem die Antwort stammt.

Issuer (Aussteller)

Microsoft Entra-ID legt diesen Wert auf https://login.microsoftonline.com/<TenantIdGUID>/ fest, wobei <TenantIdGUID> die Mandanten-ID des Microsoft Entra Mandanten ist.

Um das Zertifikatausstellerelement ordnungsgemäß zu identifizieren, verwenden Sie den Wert https://login.microsoftonline.com/<TenantIdGUID>/, wie im Beispiel für „LogoutResponse“ gezeigt. Dieses URL-Format identifiziert den Microsoft Entra-Mandanten als Zertifikataussteller und stellt die für die Ausstellung der Antwort zuständige Behörde dar.

Status

Microsoft Entra ID verwendet das StatusCode-Element im Status-Element, um anzugeben, ob die Abmeldung erfolgreich war. Wenn beim Abmelden ein Fehler auftritt, kann das StatusCode -Element auch benutzerdefinierte Fehlermeldungen enthalten.