> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OIDC SSO 设置

> 使用通用 OpenID Connect 身份提供商配置单点登录 (SSO)

如果你的组织使用的是 Microsoft Entra ID 或 Okta 之外的 OpenID Connect (OIDC) 身份提供商 (例如 Ping Identity、OneLogin、Keycloak、Auth0，或其他符合 OIDC 标准的 IdP) ，则可以通过通用 OIDC 连接方式为 Devin Enterprise 配置 SSO。

<Note>
  本指南适用于那些身份提供商**不**受 [Microsoft Entra ID (OIDC)](/zh/enterprise/security-access/sso/azure) 或 [Okta (OIDC)](/zh/enterprise/security-access/sso/okta) 原生集成支持的客户。如果你的 IdP 是 Microsoft Entra ID 或 Okta，建议使用原生集成，因为它能提供更加顺畅的配置体验。
</Note>

<div id="what-youll-need">
  ## 所需准备
</div>

要为 Devin 设置 OIDC SSO，需要准备以下信息。您将在下面的设置步骤中收集这些信息，并在最后一步将它们发送给您的 Cognition 客户团队。

* **Discovery URL** - 您的 IdP 的 OIDC Discovery 端点 (例如：`https://idp.example.com/.well-known/openid-configuration`)
* **Client ID** - 来自您的 IdP 的应用程序 Client ID (客户端 ID)
* **Client Secret** - 来自您的 IdP 的应用程序 Client Secret (客户端密钥)
* **Identity Provider Domains** - 将通过此 IdP 进行身份验证的所有公司电子邮件域名 (例如：`example.com`、`subsidiary.example.com`)
* **Scopes** - 需要请求的 OIDC scopes (通常为 `openid profile email`；如果使用 IdP 组，请添加 `groups`)

<div id="setup-instructions">
  ## 设置指南
</div>

<div id="step-1-register-an-application-in-your-idp">
  ### 步骤 1：在 IdP 中注册应用
</div>

在身份提供商 IdP 的管理控制台中，创建一个新的 OIDC / OAuth 2.0 应用 (有时称为 “Web Application” 或 “Confidential Client”) ，并使用以下设置：

| 设置                                      | 值                                      |
| :-------------------------------------- | :------------------------------------- |
| **Application Type**                    | Web Application / Confidential Client  |
| **Sign-in Redirect URI (Callback URL)** | `https://auth.devin.ai/login/callback` |
| **Sign-out Redirect URI**               | 留空                                     |
| **Grant Type**                          | Authorization Code                     |
| **Token Endpoint Authentication**       | Client Secret (POST)                   |

创建应用后，记录下 IdP 提供的 **Client ID** 和 **Client Secret**。

<div id="step-2-locate-your-discovery-url">
  ### 步骤 2：找到您的 Discovery URL
</div>

大多数符合 OIDC 标准的身份提供商都会发布一个 OpenID Connect 发现 (Discovery) 文档。Devin 可以通过这个 URL 自动获取您的 IdP 的授权、令牌和用户信息端点。

Discovery URL 通常具有以下格式：

```
https://<your-idp-domain>/.well-known/openid-configuration
```

<Note>
  各身份提供商常见的 Discovery URL 格式：

  * **Keycloak**: `https://<host>/realms/<realm>/.well-known/openid-configuration`
  * **Ping Identity**: `https://<host>/<tenant-id>/as/.well-known/openid-configuration`
  * **OneLogin**: `https://<subdomain>.onelogin.com/oidc/2/.well-known/openid-configuration`
  * **Auth0**: `https://<domain>/.well-known/openid-configuration`
  * **Google Workspace**: `https://accounts.google.com/.well-known/openid-configuration`

  您可以在浏览器中打开该 URL 来验证是否正确——它应返回一个 JSON 文档，其中包含 `authorization_endpoint`、`token_endpoint` 和 `issuer` 等字段。
</Note>

<div id="step-3-configure-scopes">
  ### 步骤 3：配置 Scope
</div>

OIDC scope (作用域) 控制 Devin 在认证过程中可以获取哪些用户信息。至少需要请求以下 scope：

| Scope     | Purpose               | Required      |
| :-------- | :-------------------- | :------------ |
| `openid`  | 所有 OIDC 流程都必需         | 是             |
| `profile` | 返回用户的显示名称             | 是             |
| `email`   | 返回用户的电子邮箱地址           | 是             |
| `groups`  | 返回用户的组成员关系 (用于 IdP 组) | 仅在使用 IdP 组时必需 |

你的 scope 字符串应为：`openid profile email` (如果使用 IdP 组，则为 `openid profile email groups`) 。

<Note>
  某些 IdP 对组声明使用的 scope 名称不同 (例如 `roles` 或自定义 scope) 。请查看你的 IdP 文档，确认用于返回组成员信息的正确 scope 名称。
</Note>

<div id="step-4-configure-group-claims-required-for-idp-groups">
  ### 步骤 4：配置组声明 (IdP 组必需配置)
</div>

<Warning>
  如果你希望在 Devin 中使用[IdP 组集成](/zh/enterprise/security-access/idp-groups)来进行基于角色的访问控制，你**必须**将 IdP 配置为在 ID token 或 userinfo 响应中包含组成员信息。否则，用户虽然可以成功完成认证，但 IdP 组将无法同步。
</Warning>

要启用 IdP 组同步：

1. 在你的 IdP 中，确保该应用已启用 `groups` scope
2. 将你的 IdP 配置为在 ID token 或 userinfo 响应中包含 `groups` claim

<Note>
  如果你的 IdP 默认不包含组声明，你可能需要创建一个自定义 scope，或配置声明映射策略。请参考 IdP 文档，了解如何将组声明添加到 OIDC token 中。
</Note>

<div id="step-5-send-configuration-to-cognition">
  ### 步骤 5：将配置信息发送给 Cognition
</div>

将以下内容发送给你的 Cognition 客户团队：

1. **Discovery URL (发现 URL) ** (例如：`https://idp.example.com/.well-known/openid-configuration`)
2. **Client ID (客户端 ID) **
3. **Client Secret (客户端密钥) **
4. **Identity Provider Domains (身份提供商域名) ** (此 IdP 的所有邮箱域名)
5. **Scopes (作用域) ** (例如：`openid profile email groups`)

你的 Cognition 客户团队会为你配置 OIDC 连接，使 IdP 群组在每次用户登录时自动同步。

<div id="verifying-your-setup">
  ## 验证您的设置
</div>

在 Cognition 客户团队确认配置已完成后：

1. 访问您的 Devin Enterprise URL (例如：`https://<your_subdomain>.devinenterprise.com`)
2. 点击 **Sign in with OIDC** (或对应的 SSO 按钮) 以启动登录流程
3. 您应该被重定向到 IdP 的登录页面
4. 完成认证后，您应当进入您的 Devin Enterprise 组织

要验证 IdP 组是否正常工作：

1. 在 Devin 网页应用中前往 **Settings** > **IdP Groups**
2. 在至少有一名组成员登录后，您应当能看到列出的 IdP 组
3. 组会在每次登录时同步，因此在 IdP 中的任何成员变更都会在用户下次登录时生效

<Note>
  IdP 组会在用户登录时获取，因此组成员变更需要用户重新认证。关于基于组的访问控制配置的更多详情，请参见 [IdP Group Integration](/zh/enterprise/security-access/idp-groups)。
</Note>
