概念 - 18965050/authz GitHub Wiki

概念

为更好的理解medusa统一认证授权系统, 需要先对下面的概念有所了解

server, client, front

  • server: 这里的server指SSO Server,对应ck-medusa-server应用
  • client: 这里的client指各业务Server, 对应不同的业务应用
  • front: 这里front统一指为SPA前端应用. 由于统一认证授权系统(medusa)也采用SPA(前后端分离)的方式, 因此front包括medusa-front(ck-medusa-front)和各个业务应用front(app-front).

一个类似的部署图见下: 部署说明

ct,st, ticket

  • ct(Client Token): Client端到Server端进行认证的一个凭证.其主要字段说明如下:
字段名 说明
appId client应用ID, 用于client端身份标识. 每个client的appId应该唯一
url client的referer url,当client认证成功后的rediect url
requestTime 请求时间, 用于ct校验使用
callbackUrl server端认证成功后, 回调client端的url, 此url用于client执行认证操作
  • st(Server Token): Server端回传给Client端进行认证的一个凭证. 同时, st也以cookie的访问方式存放在session中.当client端获取此凭证后, 说明Server已经认证成功, 可以向Server请求登录用户信息. 其主要字段说明如下:
字段名 说明
loginType 登录方式. 目前支持用户名/密码, LDAP域账户和mickey 三种登录方式
ticket 随机字符串.server生成并传给client, 供client获取用户信息时使用
ticketLife 票据生命周期, 单位:毫秒
responseTime 应答时间, ticketLife从responseTime时间点开始计算
aliveTouchTimeInterval client端对server端进行会话续命操作的时间间隔
  • ticket: 维系一次用户登录过程的凭证, 是一个随机字符串, 且用后即焚. client凭借此ticket获取用户信息.

userInfo

userInfo表示登录用户的信息. 包括userId, name等信息. server和client的userInfo不尽相同. client的userInfo是通过http请求从server中获取的

GSID

GSID是维系server session和client session的一个随机字符串.一般情况下, 一个GSID对应一个server sessionId和多个client sessionId.