Spring Cloud 相关文章

Web系统之微服务中的单点登录方式

2018-06-12  本文已影响1397人  文竹小二

1、概述

在前一篇文章(https://www.jianshu.com/p/2cb32d9cc11c)中阐述了几种常用的单点登录协议。这一篇将结合前后端分离和微服务中API Gateway来讲解单点登录模块,并给出不同场景中的一个方案。

2、多站点域名相同方案(根据URL路径区分不同站点)

image.png

说明:由于域名统一,不同站点可以通过Cookie来共享身份认证标志。这时可以直接集成认证授权服务到API Gateway中。后端服务无需再进行分别验证。

优点:好实现;认证授权可以放在网关,后端可以做到无侵入。
缺点:网关负载变大;对域名限制要求严,只能用一个域名。

3、多站点主域相同、子域不同

image.png

说明:由于子域名统一(比如:系统A的域名为A.example.com,系统B的域名为B.example.com),不同站点可以通过Cookie来共享身份认证标志。这时可以直接集成认证授权服务到API Gateway中。后端服务无需再进行分别验证。

优点:好实现;认证授权可以放在网关,后端可以做到无侵入。
缺点:网关负载变大;对域名限制要求较严,域名后缀要求相同。

4、多站点域名不同

多站点域名不同较前两者解决起来较复杂,因为域名不同就意味着不能通过共享Cookie方式来标志身份认证。一般的解决方案是采用第三个域名(即统一认证中心的域名),加上HTTP的重定向来解决(具体流程可以参考前一章节https://www.jianshu.com/p/2cb32d9cc11c)。

4.1、CAS方案

image.png
优点:网关负载较前面两者低;对域名使用无限制;
缺点:后端不能做到无侵入;认证授权服务无法集成在网关中;

4.2、Spring security OAuth2 SSO方案

image.png

优点:网关负载较前面两者低;对域名使用无限制;。
缺点:后端不能做到无侵入;认证授权服务无法集成在网关中。

4.3、Kisso方案

image.png
优点:网关负载较前面两者低;对域名使用无限制;对Cookie做了加密;由于使用了公钥私钥,安全性较高;
缺点:后端不能做到无侵入;认证授权服务无法集成在网关中;

4.4 自定义方案

image.png

说明:此方案意图把统一认证中心放在API Gateway上,且做到后端真正的无侵入。

优点:后端无侵入
缺点:API网关负载大,不易维护(例如重定向配置等)。

5、 总结

可以看出重定向是实现单点登录的重要手段。每种方案都有优缺点,需要结合实际需求来决定选取哪种单点登录方案。

上一篇下一篇

猜你喜欢

热点阅读