# BPM网站单点登录实现指南
# 一. 概述
本文档介绍如何在BPM网站中实现单点登录(SSO)功能,包括配置统一登录页面和使用身份验证提供程序。
# 二. 配置统一登录页面
# 2.1 修改配置文件
- 文件位置:BPM网站项目的
WEB根目录下的appsettings.json - 找到Cookie配置节:
"Cookie": { "LoginPath": "单点登录页面URL", "LogoutPath": "单点登录登出URL" } - 将
LoginPath和LogoutPath替换为公司的单点登录系统地址。
# 2.2 效果验证
- 访问BPM网站时将自动跳转到指定SSO登录页
- 登出操作也将重定向到SSO系统的登出页面
# 三. 自定义身份验证程序
# 3.1 准备工作
- 打开BPM网站项目(建议使用VisualStudio)
- 打开根目录下的
Program.cs文件 - 查找与单点登录相关的代码(可搜索"单点登录"关键词)
- 找到168行代码,把它放出来
- 找到190行代码,也把它放出来
# 3.2 修改处理程序
我们看到单点登录程序叫:SSOAuthHandler,现在我们去修改它。
- 展开BPM子目录,再展开
sso子目录 - 找到
SSOAuthHandler.cs文件并打开 - 转到38行,这里就是单点登录的实现
- 重点关注根据
ssotoken转换为BPM账号的逻辑(示例中为49行)
重要提示:示例中的转换逻辑为直接使用,实际应用时需根据实际业务需求修改此部分代码,确保
ssotoken能正确转换为有效的BPM账号。
# 3.3 测试流程
不带令牌访问 → 应跳转登录页
- 关闭当前浏览器,重新打开
- 输入网址,如
https://localhost:5001/index,由于未携带单点登录信息,系统会要求登录
带令牌访问 → 应直接进入系统
- 关闭当前浏览器,重新打开
- 输入网址,如
https://localhost:5001/index?ssotoken=99199,BPM网站打开了且未出现登录界面
# 四. 使用现有身份验证提供程序
# 4.1 微软官方支持的提供程序
- 参考文档:ASP.NET Core 外部身份验证提供程序 (opens new window)
- 支持的提供程序:Google、Facebook、Microsoft、Twitter等
- 配置示例:
services.AddAuthentication() .AddMicrosoftAccount(microsoftOptions => { ... }) .AddGoogle(googleOptions => { ... }) .AddTwitter(twitterOptions => { ... }) .AddFacebook(facebookOptions => { ... });
# 4.2 查找更多提供程序
通过NuGet包管理器,可找到更多官方和第三方提供的身份验证程序包,操作步骤:
- 在VisualStudio中打开BPM网站项目
- 右键点击WEB目录下的"依赖项"
- 选择"管理NuGet程序包"
- 在"浏览"页签,使用关键字(如
Microsoft.AspNetCore.Authentication)搜索。
# 五. 注意事项
自定义验证程序
- 不要直接修改原始文件,应创建副本进行修改
- 避免升级时自定义代码被覆盖
安全考虑
ssotoken到账号的转换逻辑需要严格实现- 生产环境中令牌应有有效期和验证机制
部署前检查
- 全面测试单点登录流程
- 验证令牌失效时的处理逻辑
- 确保错误页面友好且不泄露敏感信息
通过以上步骤,即可实现BPM网站的单点登录功能,既可以使用自定义验证程序,也可以集成现有的身份验证提供程序。