# 单点登录
# 一、集成场景
# 典型应用场景
- 业务系统发起流程
- 从业务系统直接打开流程表单
- 统一待办审批
- 从门户打开待办任务表单
# 二、配置步骤
# 2.1 核心文件定位
- 启动配置
文件位置:安装包/SourceCode/Web/Program.cs ,168行/190行注册SSO处理器,去掉注释。
- 处理器实现
文件位置:安装包/SourceCode/Web/BPM/sso/SSOAuthHandler.cs ,38行核心逻辑,这里就是单点登录的实现。
# 2.2 关键代码修改
其中49行,是根据传入的ssotoken转换为BPM账号。
//将单点登录令牌转换为登录账户
//根据实际需求修改
var account = ssotoken;
▲ 我现在是直接用的,实际使用时不能直接用,要改这行代码
# 2.3 测试验证
- 无令牌访问
格式:https://bpm.example.com/workflow/process/{processId}/post
示例:https://localhost:5001/workflow/process/3a196db9-5e5e-c06e-0869-34721069ff81/post?ssotoken=99199
预期:应显示登录界面
- 带令牌访问
格式:https://bpm.example.com/workflow/process/{processId}/post?ssotoken={validToken}
示例:https://localhost:5001/workflow/process/3a196db9-5e5e-c06e-0869-34721069ff81/post?ssotoken=99199
预期:应直接进入表单
# 三、注意事项
必须自定义令牌验证逻辑
- 禁止直接使用演示代码中的硬编码账号转换方式
- 需实现完整的
ssotoken验证机制
必须创建自定义处理器
- 禁止直接修改原生
SSOAuthHandler.cs - 应新建继承类并重写验证逻辑,避免系统升级覆盖
- 禁止直接修改原生