# 单点登录

# 一、集成场景

# 典型应用场景

  1. 业务系统发起流程
    • 从业务系统直接打开流程表单
  2. 统一待办审批
    • 从门户打开待办任务表单

# 二、配置步骤

# 2.1 核心文件定位

  1. 启动配置

文件位置:安装包/SourceCode/Web/Program.cs ,168行/190行注册SSO处理器,去掉注释。

  1. 处理器实现

文件位置:安装包/SourceCode/Web/BPM/sso/SSOAuthHandler.cs ,38行核心逻辑,这里就是单点登录的实现。

# 2.2 关键代码修改

其中49行,是根据传入的ssotoken转换为BPM账号。

//将单点登录令牌转换为登录账户
//根据实际需求修改
 var account = ssotoken;

▲ 我现在是直接用的,实际使用时不能直接用,要改这行代码

# 2.3 测试验证

  1. 无令牌访问

格式:https://bpm.example.com/workflow/process/{processId}/post

示例:https://localhost:5001/workflow/process/3a196db9-5e5e-c06e-0869-34721069ff81/post?ssotoken=99199

预期:应显示登录界面

  1. 带令牌访问

格式:https://bpm.example.com/workflow/process/{processId}/post?ssotoken={validToken}

示例:https://localhost:5001/workflow/process/3a196db9-5e5e-c06e-0869-34721069ff81/post?ssotoken=99199

预期:应直接进入表单

# 三、注意事项

  1. 必须自定义令牌验证逻辑

    • 禁止直接使用演示代码中的硬编码账号转换方式
    • 需实现完整的 ssotoken 验证机制
  2. 必须创建自定义处理器

    • 禁止直接修改原生 SSOAuthHandler.cs
    • 应新建继承类并重写验证逻辑,避免系统升级覆盖