SLO(Single Logout)指由應用發起的全域登入退出。當您經過IDaaS SSO登入應用後,希望退出登入時,可以在應用側發起全域退出,將IDaaS主登入工作階段同步終止。IDaaS通過OIDC SLO標準實現這一流程,當前僅限自研應用和OIDC協議應用可用。
SLO是身份聯邦的會話管理體系。若您的應用僅希望忽略主會話,每次登入均需您進行認證,可簡單地通過授權端點中的prompt
參數實現。
調用SLO端點
當發起退出時,您需要在完成了應用側會話登出後,向IDaaS提供的應用退出端點發起跳轉請求。
管理員可以從
標籤下方的應用配置資訊中擷取退出端點。直接跳轉到這一端點,即可發起SLO退出請求。由於此時IDaaS無法判斷請求來源有效性,所以需要請您確認退出行為。
這一手動退出過程可以跳過,請參考後面的說明。
若當前有IDaaS已登入工作階段,IDaaS會提示您當前退出登入並確認,如下圖。
若上一步中您點擊確認,或當前本就沒有IDaaS登入工作階段,會提示已退出,如下圖。
退出後自動回調
若在SLO完成後,您不希望顯示IDaaS的已退出介面,而是直接回跳到應用中去,那麼可通過配置登出回調地址(即 post_logout_redirect_uris
)實現。
請管理員前往
配置,找到登出回調地址並填寫完整的回調應用地址。登出回調地址是白名單,可填寫最多5個。退出時傳入SLO端點的post_logout_redirect_uris
需在此白名單範圍內,才能完成回調。
配置儲存後,即可以通過SLO端點中傳入post_logout_redirect_uris
參數來實現退出後回跳了。
自動結束
若在進行退出時,您希望跳過手動確認的步驟,直接完成退出和回跳,以實現最佳的體驗,那麼在上述登出回調地址配置的基礎上,您還需要在SLO端點傳入額外參數:id_token_hint
。
SLO退出端點支援的參數如下:
參數 | 必填 | 描述 |
id_token_hint | 否 | 希望實現自動結束時必填,用於驗證退出請求合理性。 直接傳入SSO時由IDaaS簽發的、仍在有效期間內的 說明 若 |
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參考流程圖
IDaaS當前SLO功能存在以下限制:
只實現OIDC的SLO,暫未支援SAML SLO。
只實現SP-init SLO,OIDC SLO的其他模式暫未支援。
只實現IDaaS主登入態的登出,其他已登入應用不受影響(即未實現Global SLO)。