Choerodon 认证体系

身份验证的目的是增强微服务和保证微服务之间的通信安全。

主要负责如下功能:

  • 提供给网关一个统一的认证入口。
  • 提供微服务通信的统一的用户 session 保证。
  • 提供 token 管理系统,用来生成 token 、存储 token 以及撤销 token 。

架构

下图介绍了Choerodon 认证体系的架构。

架构

组成

认证服务器

认证服务器,即专门用来处理认证的服务器。

资源服务器

资源服务器,即存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

在 Choerodon 中,资源服务器主要指系统中的一个个微服务。

工作流

认证流程包含三个阶段, 授权阶段,鉴权阶段和使用阶段。

授权阶段

  • 资源拥有者根据用户名和密码,调用授权服务器。
  • 授权服务器校验用户名和密码,生成对应的 token 返回给客户端,并将 token 存储下来,用于之后的鉴权。
  • 客户端将 token 存储在本地,用于之后每次请求的鉴权。

鉴权阶段

  • 客户端根据本地的 token 请求资源。
  • 网关将根据 token 去授权服务器鉴权。
  • 授权服务器将网关传来的 token 和存储的 token 进行对比,来确定本次操作是否是合法的。

使用阶段

  • 鉴权通过,网关将 token 转化成包含用户信息的 JWT token,并将 JWT token 传给资源服务器。
  • 资源服务器根据 JWT token 解析成用户信息,执行资源操作。