共用方式為


單一登出 SAML 通訊協定

Microsoft Entra ID 支援 SAML 2.0 網頁瀏覽器單一登出配置檔。 若要讓單一註銷正常運作, 應用程式之LogoutURL 必須在應用程式註冊期間明確地向 Microsoft Entra ID 註冊。

如果應用程式 已新增至 Azure App Gallery ,則此值預設可以設定。 否則,值必須由將應用程式新增至其 Microsoft Entra 租使用者的人員來決定和設定。 Microsoft Entra ID 會 使用LogoutURL 在用戶登出之後重新導向使用者。Microsoft Entra ID 支援重新導向系結 (HTTP GET),而不是 HTTP POST 系結。

下圖顯示 Microsoft Entra 單一登出程式的工作流程。

Screenshot of the Microsoft Entra Single Sign Out Workflow.

LogoutRequest

雲端服務會將 LogoutRequest 訊息傳送至 Microsoft Entra ID,以指出會話已終止。 下列摘錄顯示範例 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 不應以數字開頭。 一般做法是將標識符附加至 GUID 的字串表示。
  • Version - 將這個專案的值設定為 2.0。 數值是必要項。
  • IssueInstant - 這是具有 DateTime 座標通用時間 (UTC) 值和 來回格式 (“o”) 的字串。 Microsoft Entra ID 預期有此類型的值,但不會強制執行。

根據 SAML 2.0 核心規格的第 3.7 節,除了您的應用程式之外,會話中可能會有多個參與者(其他應用程式)。 如果其中一個其他參與者傳送 LogoutRequest 至 Microsoft 身分識別平台 (會話授權單位),則會LogoutRequest將傳回給所有會話參與者,但傳送初始LogoutRequest的參與者除外。 如果另一個參與者同時起始註銷,就會有一個比賽,以查看哪些LogoutRequest到達 Microsoft 身分識別平台 第一。 因此,應用程式應該一律準備好處理 LogoutRequest

Issuer

Issuer中的 LogoutRequest 元素必須完全符合 Microsoft Entra ID 中雲端服務中的其中一個 ServicePrincipalNames。 一般而言,這會設定為 應用程式註冊期間指定的應用程式標識碼 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.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 會ID設定 元素中的 LogoutResponseVersionIssueInstant 值。 它也會將 InResponseTo 項目設定為 ID 引出回應之 LogoutRequest 的屬性值。

Issuer

Microsoft Entra ID 會將此值設定為 https://login.microsoftonline.com/<TenantIdGUID>/<TenantIdGUID> 是 Microsoft Entra 租使用者的租使用者識別碼。

若要正確識別簽發者元素,請使用如LogoutResponse範例所示的值 https://login.microsoftonline.com/<TenantIdGUID>/ 。 此 URL 格式會將 Microsoft Entra 租用戶識別為簽發者,代表負責發出回應的授權單位。

狀態

Microsoft Entra ID 會 StatusCode 使用 元素中的 Status 元素來指出註銷成功或失敗。註銷嘗試失敗時, StatusCode 元素也可以包含自定義錯誤訊息。