單一登出 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 單一登出程式的工作流程。
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
設定 元素中的 LogoutResponse
、 Version
和 IssueInstant
值。 它也會將 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
元素也可以包含自定義錯誤訊息。