目录

一、核心组件

二、登录场景对比

三、技术架构图解

四、门户统一登录(正向流程)技术解

五、业务系统直达技术解析


一、核心组件

  • 门户服务:统一入口和会话管理中心
  • 门户登录/用户服务:负责身份认证和用户信息管理
  • 门户SSO:生成和验证令牌的核心安全层
  • 业务系统:最终提供具体功能的应用系统

二、登录场景对比

场景一:门户统一登录(正向流程)

  • 适用情况:供应商从门户首页开始工作旅程
  • 用户路径:门户首页 → 登录 → 选择业务系统
  • 技术特点:集中式认证,一次登录多系统通行

场景二:业务系统直达

  • 适用情况:供应商通过书签/邮件链接直接访问具体业务系统
  • 用户路径:业务系统URL → 跳转认证 → 返回业务系统
  • 技术特点:分布式认证,按需验证身份

三、技术架构图解

四、门户统一登录(正向流程)技术解

阶段一:门户认证

用户凭证提交:供应商在门户首页输入账号密码

安全验证:门户登录服务进行多因素认证

主令牌签发:SSO服务生成包含基础声明的JWT,并将token存储在Cookie中

阶段二:业务系统入口

1. 用户在门户主页点击业务系统入口

  • 不直接携带令牌
  • 访问业务系统前端主页URL(如/index

2. 回调SSO机制

  • 业务系统前端重定向到SSO认证接口,并携带认证信息参数:
/sso/authorize?client_id=xxx&redirect_uri=/callback
  • 302重定向到SSO认证中心

阶段三:SSO验证

1. SSO认证接口获取cookie中token信息,与clientId组合成新字符串,并生成加密code

2. SSO认证接口重定向到redirect_uri参数中回调地址并携带加密code

callback?code=xxx

3. 302重定向到业务系统回调地址

阶段四:业务系统回调接口获取用户信息

1. 携带code,clientId,clientSecret调用门户SSO获取accessToken接口

/sso/accessToken?code=xxx&clientid=xxx&clientSecrect=xxx

2. 门户校验clientId和clientSecret匹配,并对code进行解密获取登录用户账号缓存存储,生成加密acessToken

3. 应用系统携带accessToken调用门户用户信息接口

/sso/profile?accessToken=xx

4. 门户通过accessToken获取缓存中用户信息,返回业务系统

5. 业务系统令牌签发,建立本地会话

五、业务系统直达技术解析

当供应商直接访问业务系统时,系统会触发以下认证步骤:

关键步骤分解

1.初次拦截

  • 业务系统检测无有效会话
  • 生成包含client_idredirect_uri的认证请求
  • 302重定向至SSO认证中心

2.认证环节

  • SSO呈现统一登录页(与门户同源)
  • 用户输入凭证后,SSO验证并生成授权码(code)
  • 携带code重定向回业务系统指定回调地址

3.令牌交换

  • 业务系统用code向SSO换取access_token
  • 可选获取refresh_token(长期有效需谨慎)
  • 通过access_token获取用户基本信息

4.会话建立

  • 业务系统创建本地会话
  • 关联用户权限上下文
  • 返回请求的原始资源

Logo

惟楚有才,于斯为盛。欢迎来到长沙!!! 茶颜悦色、臭豆腐、CSDN和你一个都不能少~

更多推荐