全部產品
Search
文件中心

Identity as a Service:進階:單點登出SLO

更新時間:Sep 19, 2024

SLO(Single Logout)指由應用發起的全域登入退出。當您經過IDaaS SSO登入應用後,希望退出登入時,可以在應用側發起全域退出,將IDaaS主登入工作階段同步終止。IDaaS通過OIDC SLO標準實現這一流程,當前僅限自研應用和OIDC協議應用可用。

說明

SLO是身份聯邦的會話管理體系。若您的應用僅希望忽略主會話,每次登入均需您進行認證,可簡單地通過授權端點中的prompt參數實現。

調用SLO端點

當發起退出時,您需要在完成了應用側會話登出後,向IDaaS提供的應用退出端點發起跳轉請求。

管理員可以從應用詳情 > 登入訪問 > 單點登入標籤下方的應用配置資訊中擷取退出端點。

image.png

直接跳轉到這一端點,即可發起SLO退出請求。由於此時IDaaS無法判斷請求來源有效性,所以需要請您確認退出行為。​

說明

這一手動退出過程可以跳過,請參考後面的說明。

若當前有IDaaS已登入工作階段,IDaaS會提示您當前退出登入並確認,如下圖。

image.png

若上一步中您點擊確認,或當前本就沒有IDaaS登入工作階段,會提示已退出,如下圖。

image.png

退出後自動回調

若在SLO完成後,您不希望顯示IDaaS的已退出介面,而是直接回跳到應用中去,那麼可通過配置登出回調地址(即 post_logout_redirect_uris)實現。​

請管理員前往應用 > 管理 > 登入訪問 > 單點登入配置,找到登出回調地址並填寫完整的回調應用地址。

登出回調地址是白名單,可填寫最多5個。退出時傳入SLO端點的post_logout_redirect_uris需在此白名單範圍內,才能完成回調。

image.png

配置儲存後,即可以通過SLO端點中傳入post_logout_redirect_uris參數來實現退出後回跳了。

自動結束

若在進行退出時,您希望跳過手動確認的步驟,直接完成退出和回跳,以實現最佳的體驗,那麼在上述登出回調地址配置的基礎上,您還需要在SLO端點傳入額外參數:id_token_hint

SLO退出端點支援的參數如下:

參數

必填

描述

id_token_hint

希望實現自動結束時必填,用於驗證退出請求合理性。

直接傳入SSO時由IDaaS簽發的、仍在有效期間內的id_token值。

說明

id_token無效,則必須您手動確認。

post_logout_redirect_uris

當希望實現退出後自動回調時必填。

傳入希望SLO退出後的HTTPS回調地址,該地址需在IDaaS應用管理中提前進行配置。

state

隨機字串,傳遞給IDaaS後,若配置了自動回調,則作為回調參數返回給應用。

用於安全驗證。

SLO端點請求樣本如下:

GET https://example.aliyunidaas.com/login/app/<application_id>/oauth2/logout
	?id_token_hint=${id_token}
	&post_logout_redirect_uri=${post_logout_redirect_uri}
	&state=${state} 

SLO參考流程圖

image

說明

IDaaS當前SLO功能存在以下限制:

  • 只實現OIDC的SLO,暫未支援SAML SLO。

  • 只實現SP-init SLO,OIDC SLO的其他模式暫未支援。

  • 只實現IDaaS主登入態的登出,其他已登入應用不受影響(即未實現Global SLO)。

參考標準