SSO 设置
SSO 设置
本指南面向负责将公司身份提供商 (IdP) 连接到 InterMIND 的 IT 管理员。设置完成后,成员可从常规登录页面登录:使用 SSO 登录 → 工作邮箱 → 您的 IdP → 返回 InterMIND。如需非技术性概述,请参阅单点登录功能页面。
适用套餐: Business 和 Enterprise 套餐 配置者: 团队所有者或管理员 协议: 仅支持 OpenID Connect (OIDC)。不提供 SAML 2.0 —— Okta、Microsoft Entra ID 和 Google Workspace 均支持 OIDC。
前提条件
- 一个已验证的域名 —— 请先通过 DNS TXT 记录验证您的邮箱域名(请参阅域名管理)。SSO 登录仅接受邮箱域名已被您的团队验证的账户;这是租户边界。
- 一个支持带发现功能的 OIDC 的 IdP —— 它必须在 Issuer URL 下提供
/.well-known/openid-configuration。Okta、Microsoft Entra ID 和 Google 均支持此功能。
在您的 IdP 中注册的内容
在您的 IdP 中创建一个 OIDC Web Application,配置如下:
| 设置 | 值 |
|---|---|
| 重定向 URI (回调) | https://intermind.com/api/auth/sso/callback —— 在您选择 OIDC 后,也会显示在 SSO 卡片中 |
| 授权类型 | Authorization Code (PKCE S256 会自动使用) |
| 作用域 | openid email profile |
您的 IdP 签发的 ID token 必须包含用户的 email,且该邮箱的域名必须是您已验证的域名之一 —— 否则将拒绝登录。
然后在集成页面上填写 SSO 卡片:
| 字段 | 需粘贴的内容 |
|---|---|
| 显示名称 | 您的成员能识别的任意标签 |
| Issuer URL | 您的 IdP 的 Issuer —— 提供 /.well-known/openid-configuration 的 URL |
| Authorization URL | 该发现文档中的 authorization_endpoint |
| Client ID / Client Secret | 来自您注册的应用 |
Client secret 会进行静态加密,并在保存后绝不会返回给浏览器。
Okta
- 管理控制台 → Applications → Create App Integration → 登录方法 OIDC,应用类型 Web Application
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - 分配应具有访问权限的用户或群组
- 复制 Client ID 和 Client Secret
- 在 InterMIND 中:Issuer URL = 您的 Okta 组织 URL(例如
https://acme.okta.com,如果使用授权服务器,则为该服务器的 Issuer,如https://acme.okta.com/oauth2/default);Authorization URL =<issuer>/.well-known/openid-configuration中的authorization_endpoint
Microsoft Entra ID (Azure AD)
- Entra 管理中心 → App registrations → New registration
- 平台选择 Web,重定向 URI 为
https://intermind.com/api/auth/sso/callback - Certificates & secrets → New client secret —— 立即复制密钥 Value
- Client ID = 概述页面上的 Application (client) ID
- 确保 ID token 包含用户的邮箱:Token configuration → Add optional claim → ID → email
- 在 InterMIND 中:Issuer URL =
https://login.microsoftonline.com/<tenant-id>/v2.0;Authorization URL =https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
Google Workspace
无需应用注册。在 SSO 卡片中选择 Google Workspace 提供商类型并保存 —— 您已验证域名上的成员将使用其 Google 账户登录并自动加入您的团队。(如果您倾向于使用明确的 client credentials,也可以将 Google 作为通用 OIDC 提供商连接,Issuer 为 https://accounts.google.com。)
测试连接
- 在无痕/隐身窗口中打开登录页面
- 点击 使用 SSO 登录 并输入您已验证域名上的工作邮箱
- 您将被重定向到您的 IdP;完成身份验证后,您将返回 InterMIND 并已登录
- 登录记录将记入团队审计日志(可从 Users 页面导出),记录为
auth.login,方法为sso
故障排除
| 症状 | 原因 |
|---|---|
| 输入邮箱后提示 "SSO is not configured" | 没有已启用的 SSO 配置与该邮箱域名匹配 —— 请检查域名是否已验证以及 SSO 卡片是否已保存 |
SSO login is not available: plan | 团队的套餐不再包含 SSO |
SSO login is not available: domain-not-verified | 域名仍在等待 DNS 验证 |
SSO login is not available: config-incomplete | 缺少 Client ID 或 Client Secret —— 请重新保存 SSO 卡片 |
SSO login is not available: type-unsupported | 存储的提供商类型不是登录流程所实现的类型 —— 请删除 SSO 配置并以 OIDC 或 Google Workspace 重新创建 |
SSO IdP discovery failed | Issuer URL 错误或未提供 /.well-known/openid-configuration |
| "login session expired, start again" | 开始登录与 IdP 回调之间超过了 5 分钟 |
| IdP 重定向回后登录被拒绝 | IdP 返回的邮箱不在您已验证的域名内,或者根本没有 email 声明(Entra:请添加可选的 email 声明) |
安全属性
针对安全问卷:SSO 流程使用带有 PKCE (S256)、state 和 nonce 的 Authorization Code;ID token 的签名会根据 IdP 的 JWKS 进行验证,同时还会验证 Issuer 和受众;IdP 仅对通过 DNS 验证的域名具有权威性 —— 对任何其他邮箱的断言绝不会生成会话;OIDC client secret 会进行静态加密;每次 SSO 登录都会记入团队审计日志。套餐、域名和配置门控均在服务器端的登录开始和回调环节强制执行。