开发者学堂课程【Spring Security知识精讲与实战演示(三):分布式整合之分布式认证流程说明】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/732/detail/13066
分布式整合之分布式认证流程说明
内容介绍:
一、单点登录的介绍
二、存在的问题
一、单点登录的介绍
首先明确分布式整合的概念,就是单点登录sso。大致的意思是:有两台服务器,那么如果你登录了a服务器,按照我们传统的做法,a服器有自己的认证方式,那么登录了a服务器,那么传统的做法就会把登录的这批放到a服务器中,与b服器是没有关系的,但是在企业开发中,一般分部的项目不可能登录a不能访问b的时候还是要登录,那这样是不恰当。
分点登录就是一次登录,比如说登录了a服务器,登录完之后去访问b的时候就不需要再登录了,那这就是单点登录的一个非常通俗的一个解释方式。
首先,我们要明确,在分布式项目中,每台服务器都有各自独立的session,而这些session之间是无法直接共享资
源的,所以,session通常不能被作为单点登录的技术方案。
具体的流程解释图如下:
首先客户端可以向a服务器发起认证请求,那么a服务器会判断当前这个用户名和密码是否合法,如果正确,会给你返回一个通行的一个token,就是一张令牌,今后再访问a之外的所有系统,当然包括a的访问的时候,都必须要携带这个令牌,那么在其他任何的资源服务器中,不需要做任何操作,只需要对令牌进行一个验证检验,这个令牌如果是真的,那就可以直接访问,如果令牌是假的或者已经失效了,那么就不让你访问,这就是单点登录的一个设计方案,基本单点都是大众认为一种设计方案。
单点登录的实现分两大环节:
·用户认证:这一环节主要是用户向认证服务器发起认证请求,认证服务器给用户返回一个成功的令牌token,主要在认证服务器中完成,即图中的A系统,注意A系统只能有一个。
·身份校验:这一环节是用户携带token去访问其他服务器时,在其他服务器中要对token的真伪进行检验,主要在资源服务器中完成,即图中的B系统,这里B系统可以有很多个。
二、存在的问题
会发现一个问题,单点登录全部依靠令牌的合法性,那么此时这个令牌的合法就非常的重要,也就是如果很容易这个令牌就能被伪造出来,那这个单点登录就形同虚设,所以说我们必须找一种技术来解决这个令牌的生成方案,怎么做这个令牌才能安全?