什么是分布式项目

分布式,就是将一个大的项目,分为不同的业务,每一个业务都在不同的服务器上面,之前做的集中式的项目,就是在一个服务器上面,现在是在不同的服务器上面,所以通俗点说这就是分布式。

什么是单点登录

因为已经是分布式的项目了,各个业务在不同的服务器上面,我们登录之后,在一个服务器上面保存了当前的用户的session信息,但是要访问其他的服务器上面的业务的时候,我们不能重新登录吧?所以就需要单点登录这个功能,一次登录,多个服务器上面随意的访问,这个就是单点登录。

分布式认证,即我们常说的单点登录,简称SSO,指的是在多应用系统的项目中,用户只需要登录一次,就可以访问所有互相信任的应用系统。

之前各个业务之间可以通过session作为传递

之前的集中式的项目里面,通过session在各个业务里面进行传递登录的信息,都是在一个服务器上面。
我们要明确,在分布式项目中,每台服务器都有各自独立的session,而这些session之间是无法直接共享资
源的,所以,session通常不能被作为单点登录的技术方案。

session通常不能被作为单点登录的技术方案,那么我们可以使用什么呢?

单点登录的实现分两大环节:
用户认证:这一环节主要是用户向认证服务器发起认证请求,认证服务器给用户返回一个成功的令牌token
主要在认证服务器中完成,即图中的A系统,*注意A系统只能有一个
身份校验:这一环节是用户携带token去访问其他服务器时,在其他服务器中要对token的真伪进行检验,主要在资源服务器中完成,即图中的B系统,这里B系统可以有很多个。


这个token令牌是非常的关键,这个不能被伪造,他的安全与否是分布式中至关重要的。