重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
背景
创新互联专注于青神企业网站建设,自适应网站建设,商城系统网站开发。青神网站建设公司,为青神等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务从传统的单体应用转型Spring Cloud的朋友都在问我,Spring Cloud
下的微服务权限怎么管?怎么设计比较合理?从大层面讲叫服务权限,往小处拆分,分别为三块:用户认证
、用户权限
、服务校验
。
用户认证
传统的单体应用可能习惯了session的存在,而到了Spring cloud的微服务化后,session虽然可以采取分布式会话来解决,但终究不是上上策。开始有人推行Spring Cloud Security结合很好的OAuth3
,后面为了优化OAuth 2中Access Token
的存储问题,提高后端服务的可用性和扩展性,有了更好Token验证方式JWT
(JSON Web Token)。这里要强调一点的是,OAuth3
和JWT
这两个根本没有可比性,是两个完全不同的东西。OAuth3是一种授权框架
,而JWT
是一种认证协议
OAuth3认证框架OAuth3中包含四个角色:
OAuth3包含4种授权模式
其中,OAuth3的运行流程如下图,摘自RFC 6749:
+--------+ +---------------+ | |--(A)- Authorization Request ->| Resource | | | | Owner | | |<-(B)-- Authorization Grant ---| | | | +---------------+ | | | | +---------------+ | |--(C)-- Authorization Grant -->| Authorization | | Client | | Server | | |<-(D)----- Access Token -------| | | | +---------------+ | | | | +---------------+ | |--(E)----- Access Token ------>| Resource | | | | Server | | |<-(F)--- Protected Resource ---| | +--------+ +---------------+