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

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、 总结

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容