跳到主要内容

单点登录

单点登录连接让成员通过企业自己的身份提供方登录 Soln,而不使用 Soln 密码。

打开 账户中心,进入 单点登录。

新建的连接保存后即为启用状态。

钉钉、飞书和企业微信插件安装时会创建对应的单点登录连接,无需再手工创建一条重复连接。按插件展示的回调与入口配置平台,步骤见企业身份插件使用指南及钉钉、飞书、企业微信配置指南。企业微信授权登录还可补充缺失的插件成员绑定。

开始之前​

  • 需要一个身份提供方管理员账号,用于创建应用、读取 Metadata、登记 Soln 的服务提供方参数
  • 需要成员使用的企业邮箱地址;邮箱 Claim 或属性要能匹配到当前空间里的成员
  • 在身份提供方登记参数时请保持 Soln 的连接弹窗打开,因为授权回调地址和服务提供方参数都在弹窗里展示

接入 OpenID Connect 连接​

  1. 先在身份提供方注册一个 Web 类型应用,记录它的颁发者地址、Client ID 和 Client Secret
  2. 回到 Soln,点击左侧菜单 单点登录 右侧的 + 新建连接,先保持弹窗打开
  3. 把 Soln 弹窗里的 授权回调地址 填到身份提供方对应的 Redirect URI
  4. 在 Soln 填写连接名称、连接代码(小写字母、数字、_、-)、颁发者地址、Client ID 和 Client Secret;连接代码和身份协议保存后不可修改
  5. Token 认证方式按身份提供方注册的客户端类型选择:Client Secret Basic、Client Secret Post 或公共客户端(无 Secret)
  6. 权限范围保留 openid、profile、email,再把 Claim 映射改成身份提供方实际返回的名称(默认是 sub、email、email_verified、name)
  7. 邮箱信任策略二选一:要求邮箱已验证 Claim 为 true,或直接信任身份提供方返回的邮箱;只有选前者时才会读取已验证 Claim
  8. 保存连接后,用连接列表里的 工作台启动地址 发起一次工作台登录,确认能正常登录并落到正确的成员账号

OpenID Connect 默认值​

字段默认值其他可选
颁发者地址–身份提供方的 issuer 地址,例如 https://identity.example.com
Token 认证方式Client Secret BasicClient Secret Post,或公共客户端(无 Secret)
权限范围openid、profile、email同样这三个范围
Claim 映射sub、email、email_verified、name身份提供方实际返回的任意 Claim 名称
邮箱信任策略要求邮箱已验证 Claim 为 true直接信任身份提供方返回的邮箱
授权回调地址Soln 只读展示把它登记为身份提供方的 Redirect URI

接入 SAML 2.0 连接​

  1. 先在身份提供方创建一个 SAML 应用;因为需要第 3 步的 SP 参数,建议先在 Soln 建好连接
  2. 在 Soln 点击 单点登录 右侧的 + 新建连接,身份协议选择 SAML 2.0,并填入身份提供方 Metadata(URL 或 XML)
  3. 在身份提供方按 Soln 弹窗里"服务提供方配置"展示的值登记:SP Entity ID、ACS URL、SLO URL 和 SP 证书
  4. 在 Soln 配置认证请求绑定、签名与摘要算法、NameID 格式、签名与加密要求、是否允许 IdP 发起登录、认证上下文与比较方式、允许时钟偏差、断言最大有效时间
  5. 把 SAML 属性映射填成身份提供方实际返回的属性和名称(用户标识、邮箱、姓名)
  6. 保存连接后,用 工作台启动地址 验证能否正常登录
  7. 证书到期或需要更换时,按下面的 SP 证书轮换步骤处理

SAML 2.0 默认值​

字段默认值说明
Metadata 来源URL可选 Metadata URL 或 Metadata XML
认证请求绑定HTTP-Redirect可选 HTTP-POST
签名算法sha256可选 sha512
摘要算法sha256可选 sha512
要求断言签名开启只有身份提供方无法签名断言时才关闭
要求响应签名开启只有身份提供方无法签名响应时才关闭
要求断言加密关闭身份提供方需要加密断言时开启,同时需要把 SP 证书给它
允许 IdP 发起登录开启关闭后只接受从 Soln 发起的登录
每次强制重新认证关闭开启后每次登录都要求身份提供方重新认证
NameID 格式urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress身份提供方支持的其他 NameID 格式
认证上下文urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport勾选"不发送认证上下文要求"时该项不生效
认证上下文比较方式exact可选 minimum、maximum、better
允许时钟偏差120 秒身份提供方时钟漂移时调大
断言最大有效时间5 分钟超过该时长的断言会被拒绝
属性映射nameID、email、displayName必须与身份提供方实际发送的属性一致

需要在身份提供方登记的值​

Soln 侧的值身份提供方的对应字段
SP Entity IDAudience URI / SP Entity ID
ACS URLACS URL / Reply URL / Assertion Consumer Service URL
SLO URL单点登出地址(Single Logout URL)
SP 证书指纹服务提供方的签名或加密证书
授权回调地址(仅 OpenID Connect)Redirect URI / Callback URL

各身份提供方的字段命名不同,按同样含义把 Soln 弹窗里的值登记过去即可。

验证连接​

  1. 打开连接列表里的 工作台启动地址,或把 .../auth/start?sso=enterprise&provider=<连接代码>(也可用 &launch=<启动地址>)发给需要使用该连接的成员
  2. 用真实的企业账号登录,确认登录落到对应成员账号,而不是新建一个成员
  3. 回到 用户登录情况 查看:这次会话会出现在列表里,并带登录方式、IP 和 设备信息

常见问题​

现象检查方向
断言签名校验失败身份提供方 Metadata 与证书、签名与摘要算法、是否要求断言或响应签名
身份提供方登录成功,但 Soln 侧拒绝属性映射和 NameID 格式是否与身份提供方实际发送的一致
提示邮箱未验证邮箱信任策略与已验证 Claim:默认策略要求该 Claim 在 ID Token 中为 true
登录报时间相关错误身份提供方与 Soln 的时钟差,适当调大允许时钟偏差
加密断言无法解密证书轮换没走完:先让身份提供方重新读取 SP Metadata,再激活待轮换证书
回调地址被拒绝把 Soln 弹窗里的授权回调地址原样复制到身份提供方的 Redirect URI

连接列表​

列说明
连接连接名称
协议OpenID Connect 或 SAML 2.0
工作台启动地址使用该连接启动工作台登录的地址:运行环境地址 + /auth/start?sso=enterprise&launch=<启动地址>
状态已启用或已停用
更新时间连接最近一次修改时间

搜索会匹配连接名称、连接代码、颁发者地址或 Client ID。行操作包括 编辑 和 更多(包含证书操作与 删除);删除连接会同时删除由它建立的外部身份绑定。

新建或编辑连接​

通用字段:

字段说明
连接名称 / 连接代码连接的显示名称和稳定代码
身份协议OpenID Connect 或 SAML 2.0

OpenID Connect 字段:

字段说明
颁发者地址 / Client ID / Client Secret在身份提供方注册的应用凭据;Client Secret 留空表示保留当前值
Token 认证方式Client Secret Basic(默认)、Client Secret Post,或公共客户端(无 Secret)
权限范围登录时申请的权限范围:openid、profile、email,默认全选
Claim 映射提供用户标识、邮箱和姓名的 Claim
邮箱信任策略要求邮箱已验证 Claim 在 ID Token 中为 true(默认),或直接信任身份提供方返回的邮箱

默认 Claim 映射:用户标识取 sub,另外还有 email、email_verified、name。邮箱已验证 Claim 只在信任策略选择"要求邮箱验证 Claim"时才会读取。

SAML 2.0 字段:

字段说明
IdP Metadata必填;填写合法的 Metadata URL,或直接填写 Metadata XML
认证请求绑定必填;HTTP-Redirect 或 HTTP-POST
签名算法 / 摘要算法必填;请求签名与摘要使用的算法
NameID 格式选填;身份提供方期望的标识格式
签名与加密要求要求断言签名、响应签名或断言加密
允许 IdP 发起登录允许身份提供方发起登录
每次强制重新认证每次登录都要求重新认证
认证上下文未勾选"不发送认证上下文要求"时必填,同时设置比较方式
允许时钟偏差 / 断言最大有效时间必填;可接受的时钟偏差和断言最大有效期
SAML 属性映射必填;提供用户标识、邮箱和姓名的 SAML 属性

服务提供方配置展示 SP Entity ID、ACS URL、SLO URL、当前 SP 证书 SHA-256 指纹和证书到期时间;证书轮换过程中还会显示待激活和上一张证书的指纹。这些值需要提供给身份提供方。

SP 证书轮换​

每一步都会先弹窗二次确认。

  1. 生成待轮换证书:把新 SP 证书预发布到 Metadata,之后需要先让身份提供方重新读取 SP Metadata
  2. 激活待轮换证书:新证书开始用于签名和加密,旧证书保留在过渡验证窗口中;只在身份提供方已同步最新 SP Metadata 后才激活
  3. 停用上一张证书:把上一张证书从 Metadata 移除;确认身份提供方已稳定使用当前证书后再停用,停用后仍用上一张证书加密的断言将无法解密

删除连接会同时删除由它建立的外部身份绑定。