高级:单点登出SLO

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功能存在以下限制:

  • 只实现OIDCSLO,暂未支持SAML SLO。

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

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

参考标准