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.
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 toDateTime
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 LogoutRequest
element . 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 ID
Version
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.