Udostępnij za pośrednictwem


Wylogowanie jednokrotne — protokół SAML

Microsoft Entra ID obsługuje profil logowania jednokrotnego przeglądarki internetowej SAML 2.0. Aby logowanie jednokrotne działało poprawnie, adres LogoutURL dla aplikacji musi być jawnie zarejestrowany w identyfikatorze Entra firmy Microsoft podczas rejestracji aplikacji.

Jeśli aplikacja zostanie dodana do galerii aplikacja systemu Azure, tę wartość można ustawić domyślnie. W przeciwnym razie wartość musi zostać określona i ustawiona przez osobę dodającą aplikację do dzierżawy firmy Microsoft Entra. Identyfikator Entra firmy Microsoft używa biblioteki LogoutURL do przekierowywania użytkowników po wylogowaniu. Identyfikator Entra firmy Microsoft obsługuje powiązanie przekierowania (HTTP GET), a nie powiązanie HTTP POST.

Na poniższym diagramie przedstawiono przepływ pracy procesu wylogowania jednokrotnego firmy Microsoft.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

Wylogowywanie

Usługa w chmurze wysyła LogoutRequest komunikat do identyfikatora Entra firmy Microsoft, aby wskazać, że sesja została zakończona. Poniższy fragment przedstawia przykładowy LogoutRequest element.

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

Element LogoutRequest wysłany do identyfikatora Entra firmy Microsoft wymaga następujących atrybutów:

  • ID — Identyfikuje żądanie wylogowania. Wartość ID nie powinna zaczynać się od liczby. Typowym rozwiązaniem jest dołączenie identyfikatora do ciągu reprezentującego identyfikator GUID.
  • Version - Ustaw wartość tego elementu na 2.0. Wartość ta jest wymagana.
  • IssueInstant — Jest to DateTime ciąg z wartością czasu uniwersalnego współrzędnych (UTC) i formatem rundy ("o"). Identyfikator Entra firmy Microsoft oczekuje wartości tego typu, ale nie wymusza jej.

W sekcji 3.7 podstawowej specyfikacji SAML 2.0 może istnieć wielu uczestników (innych aplikacji) w sesji oprócz aplikacji. Jeśli jeden z pozostałych uczestników wyśle element LogoutRequest do Platforma tożsamości Microsoft (urzędu sesji), wyśle z LogoutRequest powrotem do wszystkich uczestników sesji, z wyjątkiem uczestnika, który wysłał początkowy LogoutRequestelement . Jeśli inny uczestnik zainicjował wylogowanie się jednocześnie, będzie wyścig, który LogoutRequest osiągnie Platforma tożsamości Microsoft pierwszy. W związku z tym aplikacja powinna być zawsze przygotowana do obsługi elementu LogoutRequest.

Wystawca

Element Issuer w elemecie LogoutRequest musi dokładnie odpowiadać jednemu z parametrów ServicePrincipalNames w usłudze w chmurze w identyfikatorze Entra firmy Microsoft. Zazwyczaj jest to ustawienie identyfikatora URI identyfikatora aplikacji określonego podczas rejestracji aplikacji.

Identyfikator nazwy

Wartość NameID elementu musi być dokładnie zgodna NameID z wylogowywanym użytkownikiem.

Uwaga

Podczas żądania NameID wylogowania SAML wartość nie jest uwzględniana przez identyfikator Entra firmy Microsoft.
Jeśli jedna sesja użytkownika jest aktywna, identyfikator Entra firmy Microsoft automatycznie wybierze tę sesję, a wylogowanie SAML będzie kontynuowane.
Jeśli wiele sesji użytkownika jest aktywnych, identyfikator entra firmy Microsoft wylicza aktywne sesje wyboru użytkownika. Po wybraniu przez użytkownika wylogowywanie saml będzie kontynuowane.

Wylogowywanie odpowiedzi

Identyfikator Entra firmy Microsoft wysyła element LogoutResponse w odpowiedzi na LogoutRequest element. Poniższy fragment przedstawia przykład 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>

Identyfikator Entra firmy Microsoft ustawia IDVersion wartości i IssueInstant w elemecie LogoutResponse . Ustawia InResponseTo również element na wartość ID atrybutu LogoutRequest , który wywołał odpowiedź.

Wystawca

Identyfikator entra firmy Microsoft ustawia tę wartość na https://login.microsoftonline.com/<TenantIdGUID>/ miejsce, w którym <tenantIdGUID> jest identyfikatorem dzierżawy firmy Microsoft Entra.

Aby poprawnie zidentyfikować element wystawcy, użyj wartości https://login.microsoftonline.com/<TenantIdGUID>/ , jak pokazano w przykładzie LogoutResponse. Ten format adresu URL identyfikuje dzierżawę firmy Microsoft Entra jako wystawcę reprezentującą urząd odpowiedzialny za wystawianie odpowiedzi.

Stan

Identyfikator Entra firmy Microsoft używa StatusCode elementu w elemecie Status , aby wskazać powodzenie lub niepowodzenie wylogowania. Gdy próba wylogowania zakończy się niepowodzeniem, StatusCode element może również zawierać niestandardowe komunikaty o błędach.