OpenAI

配置单点登录 (SSO)

本文档将分步介绍如何为 ChatGPT 和 API Platform 配置单点登录(SSO)

更新于:6 hours ago

先决条件

要设置 SSO,你必须:

  1. 拥有包含全局管理控制台的 OpenAI 套餐

  2. 具备全局管理员身份

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

如果你之前已为 API 平台组织或 ChatGPT 工作空间配置过 SSO,相关设置通常已在 OpenAI 身份页面中可用,可直接进行配置。如果要启用 SSO 的工作空间或组织显示在全局管理控制台中,请联系 support@openai.com。

⚠️ 如果 SSO 未正确配置,您的用户将被锁定!

配置错误可能导致用户无法访问那些将 SSO 设置为“必需”的组织和工作空间。我们建议您作为全局管理员,在管理门户中将 SSO 保持为“可选”。

在设置过程中,请保持两个独立的登录窗口同时开启:

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

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

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

测试 SSO

如果你想在不影响用户的前提下测试设置流程,可以通过此处的应用进行操作。

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

启用 SSO

开始操作前,请在全局管理控制台中前往 OpenAI 身份页面。你也可以通过以下途径访问该页面:在 ChatGPT 的“管理工作空间”设置下,点击“身份与预配”页面中的链接;或在 API 平台的组织设置中,进入身份选项卡。

下面的部分示例将展示 Okta 中的设置流程,但相同逻辑适用于所有 SAML IdP。

域验证

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

重要提示:请确认域验证可能对使用该域的用户造成的后续影响

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

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

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

Image

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

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

Domain management page with company.abc listed as Verified

每个管理门户最多可添加 99 个已验证域名。我们会提供 7 天时间供您完成验证;在此期限内未完成验证的域名将被标记为过期。同一域名只能在一个管理门户中完成验证。如需在不属于您管理门户的其他组织或工作空间中验证同一域名,请联系支持团队。

配置应用

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

要开始操作,请点击“设置 SSO”按钮:

OpenAI Admin Identity & Access page with Single Sign-On section and Set up SSO button

选择身份提供商 (IdP)

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

Identity provider selection screen for SSO setup with common providers plus Custom SAML and Custom OIDC

创建/连接应用

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

OpenAI Configure Single Sign-On page with Okta selected and step 1 Create a SAML Integration

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

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

重要提示:如果您选择重置正常的 SSO 连接,这些 URL 值会变更。重新设置 SSO 时,需确保在应用中相应地更新这些值。

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

属性映射

您在 SSO 应用中定义的属性映射,最终将决定哪些 OpenAI 账户会通过身份验证,以及用户在 OpenAI 产品中的显示方式。我们当前的用户模型支持以下三个属性:

  1. 电子邮件地址(SAML 响应中必需,用于确定登录到哪个账户)

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

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

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

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

Image

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

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

电子邮件地址更改

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

  • 婚后法律姓名更改

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

  • 等等

如果这导致 SSO 的 SAML Response 中 emailaddress 声明字段的值发生变化,则用户在成功通过 SSO 登录后,将会登录到(若此前不存在则会创建)一个与新邮箱绑定的不同 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 证书:

SSO setup step 5 with Manual configuration selected for entering identity provider metadata

IdP 发起的登录

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

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

Okta Create Bookmark App step with Platform label and an OpenAI enterprise login URL entered

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

Microsoft Entra Basic SAML Configuration with Identifier and Reply URL fields filled for SSO setup

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

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

完成设置

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

OpenAI Configure Single Sign-On Step 8 with Continue to sign-in button for testing Okta SSO

点击“继续登录”后,向导会尝试测试您的新连接。如果一切顺利,即表示您已成功启用 SSO。您现在应在配置页面看到相应更改:

OpenAI Single Sign-On test succeeded confirmation page
Connection activated for ChatGPT with Okta, with test sign-in and valid metadata configuration

您 IdP 群组中拥有对应账户或邀请的用户,现在应能通过 SSO 登录:

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

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

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

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

登录问题排查

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

这篇文章对你有帮助吗?