配置单点登录(SAML 与 OIDC)
CalendarBridge 让组织管理员能够启用单点登录,使你的用户用他们已经在其他一切场景中使用的同一身份提供商登录 CalendarBridge。本指南涵盖两种受支持的协议、需要提供给身份提供商的确切服务提供商值、属性映射、测试和疑难解答。
单点登录概览
单点登录(SSO)让你的团队通过你组织的身份提供商(IdP)向 CalendarBridge 进行身份验证,而不是使用单独的 CalendarBridge 密码。强制启用 SSO 后,你已验证域上的每个用户都会被重定向到你的 IdP 进行登录,并且可以集中授予或撤销访问权限。
- 支持的协议:SAML 2.0(SP 发起)和 OpenID Connect(OIDC)/ OAuth 2.0 授权码流程。
- CalendarBridge 版本:SSO 和 SCIM 在 CalendarBridge 群组(组织)套餐上提供。它们由组织管理员在“管理组织”门户中配置。请参见群组账户许可证类型和下面的许可。
- 架构:CalendarBridge 是一个多租户 SaaS 应用程序。SSO 按已验证的域进行配置,因此每个客户拥有并控制自己的身份提供商连接。CalendarBridge 仅获取并信任你为你的域提供的 IdP 元数据/证书。
受支持的身份提供商
CalendarBridge 可与任何符合标准的 SAML 2.0 或 OIDC 身份提供商配合使用。“管理组织”门户包含针对以下提供商的内置分步设置指南:
| 身份提供商 | SAML 2.0 | OpenID Connect | 提供商文档 |
|---|---|---|---|
| Microsoft Entra ID(Azure AD) | 是 | 是 | 在 Entra ID 中配置 SSO |
| Okta | 是 | 是 | 在 Okta 中创建 SAML/OIDC 应用 |
| Google Workspace | 是 | — | 设置自定义 SAML 应用 |
| JumpCloud | 是 | — | 使用自定义 SAML 应用的 SSO |
| 任何其他 SAML 2.0 / OIDC IdP | 是 | 是 | 使用本文中的通用值。 |
许可
SSO 和 SCIM 预配包含在 CalendarBridge 群组(组织)订阅中。CalendarBridge 不对启用 SSO 收取单独的附加费用。请注意,某些身份提供商会将其预配/SCIM 功能限定在特定版本中——例如,Google Workspace 自动预配需要 Enterprise Standard、Enterprise Plus 或 Education Plus。Microsoft Entra ID 自动用户预配需要你租户中的 Microsoft Entra ID P1 或 P2 许可证。
谁可以配置 SSO(基于角色的访问)
只有 CalendarBridge 组织管理员才能查看或更改 SSO 和 SCIM 设置。普通成员永远看不到这些控件。要管理 SSO,你必须:
打开单点登录标签页
-
打开“管理组织”门户
在你的 CalendarBridge 仪表板上,点击管理你的组织,或直接前往 calendarbridge.com/dashboard/organization。
-
选择单点登录标签页
选择单点登录标签页。如果你尚未配置 SSO,你会看到一个配置 SSO按钮。
-
点击“配置 SSO”
选择你的协议(SAML 或 OIDC),指定此配置适用的已验证域,并选择你的身份提供商以显示一个内嵌的、针对该提供商的设置指南。
配置 SAML 2.0
SAML 设置是一次双向交换:你将 CalendarBridge 的服务提供商(SP)值提供给你的 IdP,作为回报,你将 IdP 的元数据提供给 CalendarBridge。
需要在 IdP 中输入的服务提供商值
这些是你在创建 CalendarBridge 应用程序时粘贴到身份提供商中的值。适用于你账户的确切的、可直接复制的值会在单点登录标签页中通过复制按钮显示——请始终从门户复制它们,而不是手动键入。
| 字段(标签因 IdP 而异) | 值 |
|---|---|
| Entity ID / Audience URI / SP Entity ID | urn:amazon:cognito:sp:<your-pool-id>——从 SSO 标签页复制确切的值。 |
| ACS URL / Reply URL / Single sign-on URL | https://<your-CalendarBridge-auth-domain>/saml2/idpresponse——从 SSO 标签页复制确切的值。 |
| Name ID format | EmailAddress(持久电子邮件) |
| Binding | 断言使用 HTTP-POST;请求使用 HTTP-Redirect。 |
必需的属性映射
在你的 IdP 中映射这些声明。完全按照所示输入 App attribute 名称——这些在门户中也通过复制按钮列出。
| App attribute(完全照此输入) | 映射自(在你的 IdP 中) |
|---|---|
email | 主电子邮件 / Email / user.mail |
name | 名字 / 名 / user.givenname |
Microsoft Entra ID(Azure AD)——SAML
-
创建应用程序
在 Microsoft Entra 管理中心,前往 Enterprise applications → New application → Create your own application → “Integrate any other application you don't find in the gallery.”
-
打开 Single sign-on → SAML
在 Basic SAML Configuration 中,输入:
- Identifier(Entity ID):来自 CalendarBridge SSO 标签页的 Entity ID。
- Reply URL(ACS):来自 CalendarBridge SSO 标签页的 ACS URL。
-
配置属性与声明
从上面的属性映射中添加
email和name声明,并将 Name ID 设置为用户的电子邮件。 -
复制应用联合元数据 URL
在 SAML Signing Certificate 下,复制应用联合元数据 URL(它以
/federationmetadata/2007-06/federationmetadata.xml结尾)。使用该 URL——而不是上传静态 XML 文件——可让 CalendarBridge 自动获取证书轮换。 -
分配用户,然后在 CalendarBridge 中完成
分配应当拥有访问权限的用户或群组,然后返回 CalendarBridge SSO 标签页,粘贴元数据 URL 并保存。
Okta、Google Workspace、JumpCloud 及其他——SAML
每个 IdP 的流程都是一样的:创建一个自定义 SAML 应用,粘贴服务提供商值,添加属性映射,然后将 IdP 元数据提供给 CalendarBridge。当你选择该提供商时,门户会显示 Okta、Google Workspace 和 JumpCloud 的精确菜单路径。你可以在 CalendarBridge SSO 标签页中通过两种方式提供 IdP 元数据:
- 元数据 URL(推荐)——粘贴 IdP 的联合元数据 URL;CalendarBridge 会重新获取它,因此证书轮换会被自动获取。
- 元数据 XML——如果你的提供商不发布 URL,则上传 IdP 元数据
.xml文件。
配置 OpenID Connect(OIDC)
对于你更愿意通过 OIDC/OAuth 2.0 连接的 IdP,CalendarBridge 使用授权码流程。你将在 IdP 中创建一个 Web 应用程序,并向 CalendarBridge 提供三个值。
需要在 IdP 中输入的重定向 URI
| 字段 | 值 |
|---|---|
| Redirect URI / Sign-in redirect URI(平台:Web) | https://<your-CalendarBridge-auth-domain>/oauth2/idpresponse——从 SSO 标签页复制确切的值。 |
需要在 CalendarBridge 中输入的值
| CalendarBridge 字段 | 在你的 IdP 中何处查找 |
|---|---|
| Discovery URL | 你的 IdP 的 OpenID 配置文档,例如 https://<your-idp>/.well-known/openid-configuration。 |
| Client ID | 来自你创建的应用注册。 |
| Client Secret | 你在应用注册中生成的密钥。 |
请求的权限(作用域)及原因
CalendarBridge 仅请求识别登录用户所需的最小、标准的 OIDC 作用域。它不会通过 SSO 连接请求访问邮件、文件或日历数据。
| 作用域 | 请求它的原因(业务理由) |
|---|---|
openid | 执行 OpenID Connect 身份验证并接收 ID 令牌所必需。 |
email | 用作用户的唯一标识符,将其匹配到你的 CalendarBridge 组织和已验证的域。 |
profile | 读取基本资料(名字),以在首次登录时填充用户的显示名称。 |
Microsoft Entra ID——OIDC
-
注册应用程序
在 Microsoft Entra 管理中心,前往 App registrations → New registration。
-
添加重定向 URI
添加一个 Web 平台重定向 URI,设置为 SSO 标签页中显示的 CalendarBridge OIDC 重定向 URI。
-
创建客户端密钥
在 Certificates & secrets → New client secret 下,创建一个密钥并立即复制其值。
-
复制发现(元数据)URL
从 Overview → Endpoints 复制 OpenID Connect metadata document URL。将发现 URL、客户端 ID 和客户端密钥粘贴到 CalendarBridge SSO 标签页并保存。
为你的域强制启用 SSO
默认情况下,启用 SSO 会使其对该域上的用户可用。在设置表单中勾选强制 SSO以要求使用它:那么该已验证域上的每个用户都必须通过你的 IdP 登录,并且对他们禁用直接密码登录。
使用试点用户进行测试
-
确认配置为“活跃”
保存后,配置卡片会显示一个状态徽章。等待它显示为 Active。Pending 徽章表示 CalendarBridge 尚未验证 IdP 元数据;Error 徽章会内嵌显示原因。
-
在你的 IdP 中分配一名试点用户
在你的 IdP 中将一两名测试用户分配给 CalendarBridge 应用,但暂时不要开启强制。
-
通过 SSO 登录
让试点用户使用你组织的电子邮件/域登录 CalendarBridge。他们应当被重定向到你的 IdP,然后以已登录状态返回 CalendarBridge。确认他们的姓名和电子邮件已正确填充。
-
推广
一旦试点成功,分配其余用户,并在需要时开启强制 SSO。
疑难解答
如果配置卡片显示 Error 状态,卡片上显示的消息会解释具体的故障。常见情况:
| 症状 / 消息 | 可能原因与解决方法 |
|---|---|
| 状态停留在 Pending 或“无法获取元数据” | 元数据 URL 无法访问或返回了非 XML 内容。验证该 URL 能在浏览器中加载,或改为上传元数据 XML 文件。 |
| “Invalid signature” / “certificate”错误 | IdP 的签名证书已轮换,而存储的元数据已过时。使用 IdP 元数据 URL(推荐)重新保存,以便自动获取轮换,或重新上传当前的 XML。 |
| “Audience” / “Issuer”不匹配 | 你 IdP 中的 Entity ID / Audience URI 与 SSO 标签页中的值不完全匹配。从门户重新复制它。 |
| 用户已登录,但姓名/电子邮件为空或被拒绝 | email 和 name 属性映射缺失或命名有误。重新检查必需的属性映射——名称区分大小写。 |
| “AADSTS50105” / 用户未分配(Entra ID) | 该用户未被分配给 Entra ID 中的 CalendarBridge 企业应用。分配该用户或其群组。 |
| 重定向/回复 URL 不匹配 | 你 IdP 中的 ACS URL(SAML)或 Redirect URI(OIDC)与 SSO 标签页中的值不匹配。重新复制确切的值。 |
获取帮助
如果在检查配置卡片上的错误消息以及上面的疑难解答表后仍然受阻,请联系 CalendarBridge 支持。请附上你组织的域、协议(SAML/OIDC)、你的身份提供商以及卡片上显示的确切状态消息。
- 联系 CalendarBridge 支持
- 配置 SCIM 目录同步(预配)——在 SSO 激活后自动创建和停用用户。