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)。