cas支持单点登出了,那么它的基本机制是什么呢?
当用户经cas认证成功之后,就可以访问集成于cas的所有应用,而无需登录。那么认证是基于cookie的,因为cas在cookie是放了tgt,这样用户就可以无须二次登录,就可以访问另外的应用。但是cas为了安全,会给tgt设置一个过期的期限。当tgt过期之后,则cas会轮训这个tgt所访问的cas client端应用,并向每个cas client端应用发送登出请求。当终端应用能够解析cas服务器所发出的登出请求,则执行session销毁动作,实现了退出。这样一个用户所访问的所有终端都退出了,就实现了单点退出。
关于cas client端的单点退出,请参看: cas client入门之三:单点登出
对于cas服务端向cas client端所发出的登出请求应用的是saml协议,类似如下形式:
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="[RANDOM ID]" Version="2.0"
IssueInstant="
当用户经cas认证成功之后,就可以访问集成于cas的所有应用,而无需登录。那么认证是基于cookie的,因为cas在cookie是放了tgt,这样用户就可以无须二次登录,就可以访问另外的应用。但是cas为了安全,会给tgt设置一个过期的期限。当tgt过期之后,则cas会轮训这个tgt所访问的cas client端应用,并向每个cas client端应用发送登出请求。当终端应用能够解析cas服务器所发出的登出请求,则执行session销毁动作,实现了退出。这样一个用户所访问的所有终端都退出了,就实现了单点退出。
关于cas client端的单点退出,请参看: cas client入门之三:单点登出
对于cas服务端向cas client端所发出的登出请求应用的是saml协议,类似如下形式:
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="[RANDOM ID]" Version="2.0"
IssueInstant="