单点登陆
相同二级域名下子系统间相互SSO
有2个应用,域名分别为:
- tv.home.com
- game.home.com
它们的cookies可以写在域名home.com
下,登陆服务部署在sso.home.com
下。访问任何一个服务时都去home.com
下读取cookies检查用户是否登陆,如果没有登陆,则跳转到sso.home.com
,进行登陆,如果登陆就正常访问,注意:这些应用使用同一个sessionid,后端它们的session也要做成共享的,例如Spring Session 可以做共享session服务。
不同域之间的SSO
上个方案要求子系统必须在同一个域名下,使用CAS Server可以解决不同域之间的登陆,思路:
服务未登陆时候跳转到CAS中,CAS登陆完后把认证信息带上再跳回去,子系统要有能验证CAS系统认证信息的能力。
这种方法不要求在同一个域名下,也不要求子系统使用同一个sessionid,但是要求子系统能校验CAS提供的认证口令。