JWT, OAuth2, SSO这三个不重合 不冲突的概念的综合应用。
一般来说 随着公司业务的壮大,我们肯定是需要SSO和OAuth的功能的,即单点登录和第三方授权登录功能。
即我们可以用google account来登录 如果系统内有多个服务的话,那么我们可以只登陆一次就能自动登录上其他服务。
针对微服务架构下的authen and authorization 分为两种:内部服务之间的 和 第三方服务的认证和授权。
在设计层面 我们可以参考下面这篇文章:
微服务架构下的统一身份认证和授权
如果想要代码层面,可以参考下面这篇文章:
微服务架构实战:商家管理后台与sso设计:SSO设计
SSO如何做?
首先是配置:
<dependency>
<group Id>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
//包含spring data security and OAuth2
//security提供了访问控制功能,OAuth提供了第三方应用授权认证服务
and we need to enable sso in our main method :
@EnableOAuth2Sso
Spring Security OAuth2 JWT SSO 整合项目
总结一下:
OAuth2用在我们试图登录的时候(用可信的第三方提供的授权)。
SSO用在我们已经登录 需要登录其他服务的时候(可以是自己系统内的服务 也可以是第三方服务)。
JWT和两者不一样 他是真正的授权的实现方法。另外两者跟他比较起来 只能算是一种思想。
如果想更详细的了解前生今世,请参见下面的文章
什么是OAuth?
