Microsoft Entra ID 支持 SAML 2.0 Web 浏览器单一注销配置文件。 若要正常使用单一注销,必须在应用程序注册期间向 Microsoft Entra ID 显式注册应用程序的 LogoutURL 。
如果应用已添加到 Azure 应用库,则默认情况下可以设置此值。 否则,该值必须由将应用添加到其Microsoft Entra 租户的人员确定和设置。 Microsoft Entra ID 使用 LogoutURL 在用户注销后重定向用户。Microsoft Entra ID 支持重定向绑定(HTTP GET),而不是 HTTP POST 绑定。
下图显示了 Microsoft Entra 单一注销过程的工作流。
LogoutRequest
云服务向 Microsoft Entra ID 发送消息 LogoutRequest ,以指示会话已终止。 以下摘录显示了一个示例 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>
LogoutRequest发送到 Microsoft Entra ID 的元素需要以下属性:
-
ID- 这标识注销请求。ID不应以数字开头的值。 典型做法是将 ID 追加到 GUID 的字符串表示形式。 -
Version- 将此元素的值设置为 2.0。 此值是必需的。 -
IssueInstant- 这是具有DateTime坐标世界时(UTC)值和 往返格式(“o”)的字符串。 Microsoft Entra ID 需要此类型的值,但不强制它。
根据 SAML 2.0 核心规范的第 3.7 节,除了应用程序之外,会话中可以有多个参与者(其他应用程序)。 如果另一个参与者向Microsoft标识平台(会话颁发机构)发送一个LogoutRequest,它将向发送初始LogoutRequest会话的参与者以外的所有会话参与者发送回一个LogoutRequest。 如果另一个参与者同时发起注销,将会有一场比赛来查看哪些 LogoutRequest 到达Microsoft标识平台。 因此,应用程序应始终准备好处理 。LogoutRequest
发行人
元素IssuerLogoutRequest必须与Microsoft Entra ID 中的云服务中的 ServicePrincipalNames 完全匹配。 通常,这设置为在应用程序注册期间指定的 应用 ID URI 。
NameID
元素的值 NameID 必须与正在注销的用户的值完全匹配 NameID 。
注释
在 SAML 注销请求期间, NameID Microsoft Entra ID 不考虑该值。
如果单个用户会话处于活动状态,Microsoft Entra ID 将自动选择该会话,并且 SAML 注销将继续。
如果多个用户会话处于活动状态,Microsoft Entra ID 将枚举用户选择的活动会话。 用户选择后,SAML 注销将继续进行。
LogoutResponse
Microsoft Entra ID 发送 LogoutResponse 响应 LogoutRequest 元素。 以下摘录显示了一个示例 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.partner.microsoftonline.cn/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 设置IDVersion元素中的LogoutResponse值和IssueInstant值。 它还将InResponseTo元素设置为引发响应的属性IDLogoutRequest的值。
发行人
Microsoft Entra ID 将此值https://login.partner.microsoftonline.cn/<TenantIdGUID>/<设置为 TenantIdGUID> 是 Microsoft Entra 租户的租户 ID。
若要正确标识颁发者元素,请使用示例 LogoutResponse 中显示的值 https://login.partner.microsoftonline.cn/<TenantIdGUID>/ 。 此 URL 格式将 Microsoft Entra 租户标识为颁发者,表示负责颁发响应的颁发机构。
状态
Microsoft Entra ID 使用 StatusCode 元素中的 Status 元素来指示注销的成功或失败。注销尝试失败时, StatusCode 元素还可以包含自定义错误消息。