文档

高级:单点登出 SLO

SLO(Single Logout)指由应用发起的全局登录退出。

用户经过 IDaaS SSO 登录应用后,当用户希望退出登录时,可以在应用侧发起全局退出,将 IDaaS 主登录会话同步终止。IDaaS 通过 OIDC SLO 标准实现这一流程,当前仅限“自研应用”和“OIDC 协议应用”可用。

说明

提示:SLO 是身份联邦的会话管理体系。若您的应用仅希望忽略主会话,每次登录均需用户进行认证的话,无需使用 SLO,可简单地通过授权端点中的 prompt 参数实现。

调用 SLO 端点

当用户发起退出时,您应该在完成了应用侧会话注销后,向 IDaaS 提供的应用【退出端点】发起跳转请求。

管理员可以从【应用详情】【登录访问】【单点登录】标签下方的【应用配置信息】中获取退出端点。

image.png

直接跳转到这一端点,即可发起 SLO 退出请求。由于此时 IDaaS 无法判断请求来源有效性,所以需要请用户确认退出行为。(这一手动退出过程可以跳过,请参考后面的说明。)

若当前有 IDaaS 已登录会话,IDaaS 会提示用户当前正在退出,并请用户确认,如下图。

image.png

若上一步中用户点击确认,或当前本就没有 IDaaS 登录会话,会提示“已退出”,如下图。

image.png

退出后自动回调

若在 SLO 完成后,您不希望显示 IDaaS 的“已退出”界面,而是直接回跳到应用中去,您可通过配置【登出回调地址】(即 post_logout_redirect_uri)实现。

请管理员前往【应用】【管理】【登录访问】【单点登录】配置,找到【登出回调地址】并填写完整的回调应用地址。

【登出回调地址】是白名单,可填写最多 5 个。退出时传入 SLO 端点的 post_logout_redirect_uri需在此白名单范围内,才能完成回调。

image.png

配置保存后,您即可以通过 SLO 端点中传入 post_logout_redirect_uri参数来实现退出后回跳了。

自动退出(无需用户手动确认)

若在进行退出时,您希望跳过用户手动确认的步骤,直接完成退出和回跳,以实现最佳的用户体验,那么在上述 【登出回调地址】配置的基础上,您还需要在 SLO 端点传入额外参数:id_token_hint

SLO 退出端点支持的参数如下:

参数

必填

描述

id_token_hint

当希望实现【自动退出】时必填,用于验证退出请求合理性。

直接传入 SSO 时由 IDaaS 签发的、仍在有效期内的 id_token 值。

  • 若 id_token 无效,则必须用户手动确认。

post_logout_redirect_uri

当希望实现【退出后自动回调】时必填。

传入希望 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 当前:

  • 只实现 OIDC 的 SLO,暂未支持 SAML SLO

  • 只实现 SP-init SLO,OIDC SLO 的其他模式暂未支持。

  • 只实现 IDaaS 主登录态的注销,其他已登录应用不受影响(即未实现 Global SLO)

参考标准

  • 本页导读 (0)
文档反馈