SSO 设置
SSO 设置
本指南面向负责将企业身份提供商(IdP)连接到 InterMIND 的 IT 管理员。设置完成后,成员可从常规登录页面登录:Sign in with SSO → 工作邮箱 → 您的 IdP → 返回 InterMIND。
适用计划: Business 和 Enterprise 配置者: 团队所有者或管理员 协议: OpenID Connect (OIDC)。SAML 2.0 登录正在开发中——SAML 配置可保存但尚不能用于登录。
前置条件
- 一个已验证的域名——首先通过 DNS TXT 记录验证您的邮箱域名(请参阅 Domain Management)。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) |
| Scopes | 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 | 来自您注册的应用 |
客户端密钥经静态加密存储,保存后不会再返回给浏览器。
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 账户登录,即可自动加入您的团队。(如果您希望使用显式的客户端凭据,也可以将 Google 作为通用 OIDC 提供商连接,issuer 为 https://accounts.google.com。)
测试连接
- 在私密/无痕窗口中打开登录页面
- 点击 Sign in with 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 | 已存储的配置为 SAML——SAML 登录尚不可用 |
SSO IdP discovery failed | Issuer URL 错误或未提供 /.well-known/openid-configuration |
| "login session expired, start again" | 从开始登录到 IdP 回调之间超过 5 分钟 |
| IdP 重定向返回后登录被拒 | IdP 返回的邮箱不在您已验证的域名内,或完全未返回 email claim(Entra:添加可选的 email claim) |
安全特性
用于安全问卷:SSO 流程为带 PKCE (S256)、state 和 nonce 的 Authorization Code;ID token 的签名通过 IdP 的 JWKS 进行验证,同时校验 issuer 和 audience;IdP 仅对通过 DNS 验证的域名具有权威性——针对其他任何邮箱的断言都不会生成会话;OIDC 客户端密钥静态加密存储;每一次 SSO 登录都会进入团队审计日志。计划、域名和配置门槛在登录开始和回调两端均由服务端强制校验。