OpenAI

为 API 平台配置单点登录 (SSO)

本文档将指导您完成为 API 平台组织及其用户配置单点登录的流程。

更新于:yesterday

本文档将取代此处现有的 Platform SSO 文档。

先决条件

要设置 SSO,你必须:

  1. 拥有一个采用自定义/企业计费方案的 API 平台组织

  2. 是该组织的所有者

  3. 至少拥有一个已验证的域名

在继续操作之前,请查看我们的 SSO 概述用户管理文档页面,以确保你熟悉我们的 SSO 架构。

如果你最近购买了 ChatGPT Enterprise 许可,并希望在 ChatGPT 工作空间配置 SSO,请按照此处的说明操作。

如果你此前已在 ChatGPT Enterprise 工作空间配置过 SSO,那么你的 SSO 设置应当已迁移并很可能处于启用状态。这种情况下,你会看到 API 平台身份页面中看到已预填相关字段,只需确保为组织开启“单点登录”开关。

⚠️ 如果 SSO 配置不正确,你和所有用户都将被锁定!

配置错误会导致你和所有用户被锁定。我们建议你,作为工作空间的所有者,保持两个独立的登录窗口处于打开状态:

  1. 一个用于通过隐身窗口登录

  2. 另一个用于通过常用浏览器登录

这样,你可以在一个窗口测试登录流程与 SSO/域验证设置,并在需要时通过第二个窗口恢复更改。

测试 SSO

如果你想测试设置流程,而不影响 Enterprise 组织,可通过此处的应用程序进行操作。

在此测试应用中成功完成连接后,它不会关联到您的生产组织,也不会保存该连接(因此您准备就绪后可在 Enterprise 组织中复用相同参数)。这意味着您可以安全地将其用作沙盒或演练环境,以熟悉要求并解决任何缺失的前提条件。

启用 SSO

首先,请访问你的组织设置下的“身份”页面。

如果此链接无法访问,可能意味着您的组织尚未正确配置,或您的用户账户没有相应权限。如果你认为不应出现这种情况,请联系支持团队获取帮助。

域验证

要启用 SSO,需要先验证至少一个域。

重要提示:启用 SSO 后,请务必评估域名验证可能会对使用该域名的用户造成的后续影响

点击“+ Add Domain”按钮并输入你的 DNS 以开始操作:

Verify a new domain dialog with example.com entered and Submit available

提交后,我们会提供一个密钥,供你验证该域的所有权。前往你的 DNS 提供商处,添加包含提供值的 TXT 记录:

Manage Domain dialog with a TXT record value to add in DNS and a Check button to verify ownership

你的 TXT 记录必须能够通过 DNS 查询进行访问,验证检查才能成功。

在你的 DNS 提供商处完成此操作后,返回设置页面并点击“Check”按钮。如果域的所有权验证成功,你会看到状态更新为“Verified”。

Domain management entry with company.abc marked Verified

每个 organization-id 最多可添加 99 个已验证的域,你将有 7 天时间完成验证检查;如果超时未完成,则该域会被标记为过期。

默认情况下,域名仅针对单个组织进行验证。不过,在支持多组织域名验证的配置中(例如,启用了多组织/多域支持时),同一域名可跨多个组织完成验证。如果你不确定你的配置是否支持此功能,请联系支持团队。

配置应用

成功验证域后,你可以通过配置 IdP 应用继续进行 SSO 设置。

要开始,请点击“管理单点登录”按钮:

OpenAI admin security settings with a verified domain and Single Sign On not configured

选择身份提供商 (IdP)

你可以从原生支持 SAML 集成的热门 IdP 列表中进行选择。如果列表中没有你的 IdP,或者你想使用 OIDC 连接,可以选择底部显示的相应自定义连接按钮:

Image

创建/连接应用

你现在可以按照分步配置向导,创建你的 IdP 应用并与我们建立连接。根据你使用的 IdP,操作说明可能略有不同,但总体设置流程一致:

Image

请注意,创建步骤中提供的 URL 由你的组织独有:

Configure SAML step with Single sign-on URL and Audience URI values to copy into Okta

重要提示:如果您选择重置一个正常的 SSO 连接,这些 URL 值会发生更改。再次设置 SSO 时,您需确保在您的应用中相应更新它们。

完成 URL 设置后,你可以继续为通过该应用认证的用户定义属性映射。

属性映射

您在应用中定义的属性映射,最终会决定用户在 API 平台中的创建方式和显示形式。我们当前的用户模型支持以下三个属性:

  1. 电子邮件地址(在 SAML 响应中必填)

  2. 名字(可选,但建议填写)

  3. 姓氏(可选,但建议填写)

注意:我们支持解密 SAML 响应。请确保你未加密响应或断言,以便我们正确识别属性。

根据你使用的 IdP,具体的属性映射会有所不同。我们建议你遵循设置向导中为你的 IdP 展示的精确映射,例如:Okta 的设置如下:

Okta SAML attribute statements mapping id, email, firstName, and lastName to user profile fields

如果你发现新用户的电子邮件地址被设为其显示名称,请检查你的属性映射,并确认你没有对响应进行加密。

另外,如果新用户被要求输入姓名和生日,这可能意味着我们无法从你的属性响应中识别出正确的姓名值。

电子邮件地址更改

有时,用户的电子邮件地址可能会在你的 IdP 中更新,例如:

  • 婚后法律姓名更改

  • 其所在公司被收购,因此获得了新域名

  • 等等

这最终会导致创建一个与新电子邮件地址绑定的新 OpenAI 用户。在某些情况下,之前的身份验证配置文件可能会残留,导致新用户无法成功登录。若遇此情况,请联系支持团队寻求帮助。

主电子邮件地址

在某些情况下,你可能会遇到拥有多个不同电子邮件地址的用户。这种情况在拥有分布式邮件系统的大公司,或是拥有多所学校的 Edu 客户中很常见,例如:

这种情况下,我们建议你确保 SAML 响应的属性中仅包含一个电子邮件地址,因为包含多个地址可能会在我们尝试将其与新用户或现有用户关联时造成混淆。

此外,如果用户有固定的电子邮件地址(例如 UPN),我们建议你在属性映射中使用该地址,以确保他们拥有稳定的 OpenAI 用户帐户,即使其他电子邮件地址发生更改也不会受到影响。

配置 IdP 应用访问权限

一旦你成功创建属性映射,向导将引导你通过指定群组为对应用户预配访问权限。

请查看我们关于用户管理的建议,以获取最佳实践方案。

设置 IdP 元数据

在此设置阶段,你有两种方式定义 IdP 的元数据:动态配置和手动配置。

动态配置

这是推荐使用的最简便方式。使用动态配置时,你只需提供与应用关联的元数据 URL(已由你之前配置的 SSO URL 和实体 ID 填充)。设置向导会提示你如何在 IdP 中找到该信息:

Okta SAML app Sign On tab with Metadata URL and Copy action for uploading identity provider metadata

手动配置

顾名思义,手动配置需要多做一些操作。根据你的 IdP,你需要输入对应的 SSO URL、IdP 颁发者,以及 x.509 证书:

Step 5 SSO setup with Manual configuration selected for identity provider metadata

IdP 发起的登录

如果你希望用户能点击面板上的图块并自动完成身份验证,可以在设置流程中为应用配置 IdP 发起的身份验证。具体流程会因 IdP 而有所不同,但通常会使用如下格式的指定 URL:

例如,Okta 会引导你创建新的书签应用并使用此 URL:

Okta Create Bookmark App step with Application label set to Platform and URL set to the OpenAI login link

而 Entra ID 允许你在对应表单中输入指定的“Sign on URL”:

Microsoft Entra Basic SAML Configuration with Identifier and Reply URL fields populated for an enterprise app

重要提示:如果你选择重置一个正常的 SSO 连接,这些 URL 值将会更改。

这意味着,当配置新连接时,你需要相应地更新登录 URL,否则用户无法通过图块完成验证。

完成设置

配置好 IdP 的元数据后,你可以点击“Continue”来设置可选的书签应用。最后一个必填配置步骤需在“Test Single Sign-On”页面完成:

OpenAI Configure Single Sign-On step 8 with Continue to sign-in button to test Okta SSO

点击“继续登录”后,向导会尝试测试您的新连接。如果测试成功,您即为您的 API 平台组织有效启用了 SSO。您现在应在配置页面看到相应更改:

SSO connection activated for Okta on the Platform app with valid metadata and an authorized test session

您 IdP 群组中的用户,只要在 Enterprise 工作空间中有相应账户或已收到邀请,现在就可以通过 SSO 进行登录:

  • 他们只需访问 platform.openai.com 并输入邮箱,系统会自动跳转到相应 IdP 完成认证

  • 他们可以使用你在设置流程中(可选)配置的书签图块 URL

如果发现用户无法成功验证身份,且恢复更改时遇到问题,请立即联系支持团队获取协助。

请注意,在 API 平台启用 SSO 会使域名验证对该域名的所有用户生效。这意味着,即使用户不属于您的企业组织,他们仍需是您 IdP 群组的成员,才能访问其个人组织。

登录问题排查

如果在启用 SSO 后遇到登录问题,可查看我们的常见问题解答和故障排查页面,协助识别常见错误。如果你在其中未找到满意答案,请随时联系支持团队。

这篇文章对你有帮助吗?