Protokol SAML pro jednotné odhlašování

Microsoft Entra ID podporuje profil jednotného odhlášení webového prohlížeče SAML 2.0. Aby jednotné odhlášení fungovalo správně, musí být protokol LOGOUTURL aplikace při registraci aplikace explicitně zaregistrovaný u Microsoft Entra ID.

Pokud se aplikace přidá do galerie Aplikace Azure, můžete tuto hodnotu nastavit ve výchozím nastavení. Jinak musí být hodnota určena a nastavena osobou, která přidává aplikaci do tenanta Microsoft Entra. Microsoft Entra ID používá logoutURL k přesměrování uživatelů po odhlášení. Microsoft Entra ID podporuje vazbu přesměrování (HTTP GET) a ne vazbu HTTP POST.

Následující diagram znázorňuje pracovní postup procesu jednotného přihlašování Microsoft Entra.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

LogoutRequest

Cloudová služba odešle LogoutRequest do Microsoft Entra ID zprávu, která indikuje, že relace byla ukončena. Následující výňatek ukazuje ukázkový LogoutRequest prvek.

<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 odeslaný do Microsoft Entra ID vyžaduje následující atributy:

  • ID - Tím se identifikuje žádost o odhlášení. Hodnota ID by neměla začínat číslem. Typickým postupem je připojení ID k řetězcové reprezentaci identifikátoru GUID.
  • Version - Nastavte hodnotu tohoto prvku na hodnotu 2,0. Tato hodnota je povinná.
  • IssueInstant- Jedná se o DateTime řetězec s hodnotou souřadnicového univerzálního času (UTC) a formátem odezvy ("o"). ID Microsoft Entra očekává hodnotu tohoto typu, ale nevynucuje ji.

V bodě 3.7 základní specifikace SAML 2.0 může být v relaci kromě vaší aplikace více účastníků (jiných aplikací). Pokud některý z ostatních účastníků pošle LogoutRequest platformě Microsoft Identity Platform (autoritu relace), odešle LogoutRequest zpět všem účastníkům relace s výjimkou účastníka, který odeslal počáteční LogoutRequest. Pokud se odhlásí jiný účastník současně, bude existovat závod, který LogoutRequest nejprve dosáhne platformy Microsoft Identity Platform. Proto by aplikace měla být vždy připravena na zpracování LogoutRequest.

Issuer

Prvek Issuer v objektu LogoutRequest musí přesně odpovídat jedné z servicePrincipalNames v cloudové službě v Microsoft Entra ID. Obvykle se nastaví na identifikátor URI ID aplikace, který je zadaný během registrace aplikace.

NameID

Hodnota elementu NameID se musí přesně shodovat NameID s odhlášenou uživatelem.

Poznámka:

Během požadavku NameID na odhlášení SAML se hodnota nepovažuje za ID Microsoft Entra.
Pokud je aktivní jedna uživatelská relace, microsoft Entra ID automaticky vybere tuto relaci a protokol SAML bude pokračovat.
Pokud je aktivních více uživatelských relací, vyčíslí id Microsoft Entra aktivní relace pro výběr uživatele. Po výběru uživatele bude pokračovat odhlášení SAML.

LogoutResponse

Microsoft Entra ID odešle LogoutResponse v reakci na LogoutRequest prvek. Následující výňatek ukazuje ukázku 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 nastaví IDVersion a IssueInstant hodnoty v elementuLogoutResponse. Také nastaví InResponseTo prvek na hodnotu ID atributu LogoutRequest , který vyvolal odpověď.

Issuer

ID Microsoft Entra nastaví tuto hodnotu na místo, kde https://login.microsoftonline.com/<TenantIdGUID>/<TenantIdGUID> je ID tenanta Microsoft Entra.

Chcete-li správně identifikovat prvek vystavitele, použijte hodnotu https://login.microsoftonline.com/<TenantIdGUID>/ , jak je znázorněno v ukázkové LogoutResponse. Tento formát adresy URL identifikuje tenanta Microsoft Entra jako vystavitele, který představuje autoritu odpovědnou za vystavení odpovědi.

Stav

Microsoft Entra ID používá StatusCode prvek v elementu Status k označení úspěchu nebo selhání odhlášení. Když se pokus o odhlášení nezdaří, StatusCode může element obsahovat také vlastní chybové zprávy.