Spring Boot微服务之权限认证
1.前言
关于权限认证方案,有如下四种:
(1) 单点登录(SSO)
(2) 分布式 Session 方案
(3) 客户端 Token 方案
(4) 客户端 Token 与 API 网关结合
1.认证鉴权与API权限控制在微服务架构中的设计与实现
2.微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法
3.微服务架构下的安全认证与鉴权 (我觉得这篇总结的不错,针对不同的方案和技术,进行了初步的分析,比如单点登录、分布式Session)
2.通用方案
基本的解决方案,是结合Token和Gateway API(网关)的方式。
(1) 用户登录
- 客户端发送登录请求到API Gateway
- API Gateway将登录请求转发到Security Service
- Security Service验证用户身份,并颁发Token
(2) 用户请求
- 客户端请求发送到API Gateway
- API Gateway调用的Security Service对请求中的Token进行验证,检查用户的身份
- 如果请求中没有Token,Token过期或者Token验证非法,则拒绝用户请求。
- Security Service检查用户是否具有该操作权
- 如果用户具有该操作权限,则把请求发送到后端的Business Service,否则拒绝用户请求
1.微服务架构下的认证和鉴权方案探讨 (这篇文章对认证和授权的方案及其选择讲解的比较多,可以在认证和鉴权时作为参考)
3.权限认证
认证和鉴权是两种不同的操作。认证,就是用户登录,鉴权,就是验证用户的权限。
(1) 用户权限控制
- API Gateway处进行统一的权限控制
- 由各个微服务单独进行权限控制
(2) 第三方应用接入 - API Token
- OAuth