OpenProject企业版SAML单点登录集成指南
什么是SAML单点登录?
SAML(Security Assertion Markup Language)是一种基于XML的开放标准,用于在身份提供商(IdP)和服务提供商(SP)之间交换认证和授权数据。在OpenProject企业版中,通过SAML集成可以实现:
- 用户使用企业现有身份系统(如Active Directory)一键登录
- 统一管理用户身份认证和权限
- 提高系统安全性,减少密码管理负担
前提条件
在开始配置前,请确保:
- 您使用的是OpenProject企业版(SAML是付费功能)
- 您的身份提供商支持SAML 2.0重定向SSO流程
- 准备以下信息:
- 身份提供商的元数据URL或XML文件
- 用于通信的公钥证书或证书指纹(SHA1)
- 用户属性映射方案(登录名、邮箱、姓名等)
详细配置步骤
1. 访问SAML配置界面
- 使用管理员账号登录OpenProject
- 导航至"管理" → "认证" → "SAML提供商"
2. 创建SAML提供商
第一步:设置显示名称
- 点击"+ SAML身份提供商"按钮
- 输入显示名称(将显示在登录按钮上)
- 点击"继续"
第二步:元数据交换
- 选择提供元数据的方式:
- 元数据URL(推荐)
- 手动上传XML
- 无元数据(手动配置)
- 点击"继续"
第三步:主要配置
- 服务实体ID:通常使用OpenProject实例URL
- 身份提供商实体ID:从元数据自动填充或手动输入
- SSO服务URL:身份提供商的认证端点
- SLO服务URL(可选):单点注销端点
- 验证配置后点击"继续"
第四步:签名和加密
- 配置断言加密(如需):
- 提供PEM格式的证书和私钥
- 配置请求签名(如需):
- 使用相同证书和私钥
- 点击"继续"
第五步:属性映射
- 配置以下必需属性映射:
- 登录名(唯一标识)
- 邮箱地址
- 名和姓
- 用户ID(默认为NameID)
- 可使用多个备选属性(按顺序匹配)
- 点击"继续"
第六步:请求属性
- 配置属性请求格式(通常保持默认)
- 点击"完成设置"
3. 配置身份提供商
完成OpenProject端配置后,需要在身份提供商处配置:
- 服务提供商元数据URL(从OpenProject获取)
- 服务实体ID
- 断言消费者服务URL
环境变量配置(高级)
对于自动化部署场景,可通过环境变量配置SAML:
# 基本配置
OPENPROJECT_SAML_SAML_NAME="saml"
OPENPROJECT_SAML_SAML_DISPLAY__NAME="企业SSO"
OPENPROJECT_SAML_SAML_ISSUER="https://your.openproject.host"
# 证书配置
OPENPROJECT_SAML_SAML_IDP__CERT="-----BEGIN CERTIFICATE-----..."
# 或使用指纹
# OPENPROJECT_SAML_SAML_IDP__CERT__FINGERPRINT="..."
# 端点配置
OPENPROJECT_SAML_SAML_IDP__SSO__SERVICE__URL="https://idp.example.com/sso"
# 属性映射
OPENPROJECT_SAML_SAML_ATTRIBUTE__STATEMENTS_EMAIL="[mail]"
OPENPROJECT_SAML_SAML_ATTRIBUTE__STATEMENTS_LOGIN="[mail]"
OPENPROJECT_SAML_SAML_ATTRIBUTE__STATEMENTS_FIRST__NAME="[givenName]"
OPENPROJECT_SAML_SAML_ATTRIBUTE__STATEMENTS_LAST__NAME="[sn]"
应用配置后执行:
openproject run bundle exec rake db:seed
常见问题排查
-
用户看到注册表单而非直接登录
- 检查属性映射是否正确
- 确认身份提供商发送了所有必需属性
-
认证失败
- 验证证书配置
- 检查时间同步(SAML对时间敏感)
- 查看OpenProject日志获取详细错误
-
单点注销不工作
- 确认SLO服务URL配置正确
- 检查身份提供商是否支持SLO
最佳实践
- 使用稳定的用户标识(如员工ID而非邮箱)
- 生产环境启用请求签名和断言加密
- 定期轮换证书
- 测试环境先验证配置
通过以上步骤,您可以在OpenProject企业版中成功集成SAML单点登录,为企业用户提供无缝的认证体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



