Protocole SAML de déconnexion unique
Microsoft Entra ID prend en charge le profil de déconnexion unique de navigateur web SAML 2.0. Pour que la déconnexion unique fonctionne correctement, l’élément LogoutURL de l’application doit être explicitement inscrit auprès de Microsoft Entra ID pendant l’inscription de l’application.
Si l’application est ajoutée à la galerie d’Azure App, cette valeur peut être définie par défaut. Dans le cas contraire, la valeur doit être déterminée et définie par la personne qui ajoute l’application à son locataire Microsoft Entra. Microsoft Entra ID utilise LogoutURL pour rediriger les utilisateurs après leur déconnexion. Microsoft Entra ID prend en charge la liaison de redirection (HTTP GET) et pas la liaison HTTP POST.
Le diagramme suivant illustre le workflow du processus de déconnexion unique Microsoft Entra.
LogoutRequest
Le service cloud envoie un message LogoutRequest
à Microsoft Entra ID pour indiquer qu’une session a été arrêtée. L’extrait suivant illustre un exemple d’élément 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>
L’élément LogoutRequest
envoyé à Microsoft Entra ID requiert les attributs suivants :
ID
: identifie la demande de déconnexion. La valeurID
ne doit pas commencer par un chiffre. La méthode classique consiste à ajouter id à la représentation sous forme de chaîne d’un GUID.Version
: définissez la valeur de cet élément sur 2.0. Cette valeur est requise.IssueInstant
: chaîneDateTime
associée à une valeur UTC (temps universel coordonné) et au format aller-retour (« o »). Microsoft Entra ID attend une valeur de ce type, mais ne l’applique pas.
Selon la section 3.7 de la spécification principale SAML 2.0, il une session peut comprendre plusieurs participants (autres applications) en plus de votre application. Si l’un des autres participants envoie une LogoutRequest
à la plateforme d’identités Microsoft (l’autorité de la session), celle-ci renvoie une LogoutRequest
à tous les participants de la session, à l’exception du participant qui a envoyé la LogoutRequest
initiale. Si un autre participant initie simultanément la déconnexion, il y aura une course pour voir qui LogoutRequest
atteint Plateforme d'identités Microsoft premier. Par conséquent, une application doit toujours être préparée à gérer une LogoutRequest
.
Émetteur
L’élément Issuer
dans LogoutRequest
doit correspondre exactement à l’un des ServicePrincipalNames du service cloud dans Microsoft Entra ID. En règle générale, il est défini sur l’URI ID d’application spécifié au moment de l’inscription de l’application.
NameID
La valeur de l’élément NameID
doit correspondre exactement à la valeur NameID
de l’utilisateur déconnecté.
Remarque
Pendant la demande de déconnexion SAML, la valeur NameID
n’est pas prise en compte par Microsoft Entra ID.
Si une session utilisateur unique est active, Microsoft Entra ID la sélectionne automatiquement et la déconnexion SAML se poursuit.
Si plusieurs sessions utilisateur sont actives, Microsoft Entra ID énumère les sessions actives pour la sélection de l’utilisateur. Après la sélection de l’utilisateur, la déconnexion SAML se poursuit.
LogoutResponse
Microsoft Entra ID envoie un LogoutResponse
en réponse à un élément LogoutRequest
. L’extrait suivant illustre un exemple d’élément 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 définit les valeurs ID
, Version
et IssueInstant
dans l’élément LogoutResponse
. Il définit également l’élément InResponseTo
sur la valeur de l’attribut ID
de l’élément LogoutRequest
qui a obtenu la réponse.
Émetteur
Microsoft Entra ID définit cette valeur sur https://login.microsoftonline.com/<TenantIdGUID>/
, <où TenantIdGUID> est l’ID du locataire Microsoft Entra.
Pour identifier correctement l’élément émetteur, utilisez la valeur https://login.microsoftonline.com/<TenantIdGUID>/
comme indiqué dans l’exemple LogoutResponse. Ce format d’URL identifie le locataire Microsoft Entra comme émetteur, représentant l’autorité responsable de l’émission de la réponse.
État
Microsoft Entra ID utilise l’élément StatusCode
dans l’élément Status
pour indiquer la réussite ou l’échec de la déconnexion. En cas d’échec de la tentative de déconnexion, l’élément StatusCode
peut également contenir des messages d’erreur personnalisés.