一、说明
单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼。本文主要介绍 同域
和 跨域
两种不同场景单点登录的实现原理,并使用 Spring Security
来实现一个最简单的跨域 SSO客户端
。
二、原理说明
单点登录主流都是基于共享 cookie
来实现的,下面分别介绍 同域
和 跨域
下的两种场景具体怎样实现共享 cookie
的
2.1. 同域单点登录
适用场景:都是企业自己的系统,所有系统都使用同一个一级域名通过不同的二级域名来区分。
举个例子:公司有一个一级域名为 zlt.com
,我们有三个系统分别是:门户系统(sso.zlt.com)、应用1(app1.zlt.com)和应用2(app2.zlt.com),需要实现系统之间的单点登录,实现架构如下: