> ## 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.

# SCIM 设置

> 通过 SCIM 2.0 从身份提供商自动预配和取消预配用户及组。

Devin Enterprise 支持通过 SCIM 2.0 自动预配用户和组。借助 SCIM，你的身份提供商 (Okta、Microsoft Entra ID 或任何兼容 SCIM 2.0 的 IdP) 会将变更实时推送至 Devin：用户会在首次登录前创建，已取消预配的用户会立即失去企业成员资格，组成员关系也会保持同步，无需等到下次登录。

SCIM 是对 [SSO](/zh/enterprise/security-access/sso/guide) 的补充。使用 SCIM 无需启用 SSO，但强烈建议启用 SSO。

<Warning>
  启用 SCIM 前，请联系支持团队关闭基于登录的 IdP 组同步。否则，组会在每次登录时重新同步，并与 SCIM 推送的组发生冲突。这仅影响组同步，用户仍会正常预配。
</Warning>

<div id="what-scim-manages">
  ## SCIM 管理的资源
</div>

| 资源     | 支持的操作             |
| :----- | :---------------- |
| **用户** | 创建、读取、列出、更新、停用、删除 |
| **组**  | 创建、读取、列出、更新、删除    |

通过 SCIM 预配的组会在 Devin 中显示为 [IdP 组](/zh/enterprise/security-access/idp-groups)。你可以像处理通过 SSO 登录同步的组一样，将其映射到 Enterprise 角色和组织访问权限。与通过登录同步的组不同，在 IdP 中重命名 SCIM 组后，其在 Devin 中的角色和组织映射仍会保留。

<div id="step-1-get-your-scim-credentials">
  ## 步骤 1：获取你的 SCIM 凭据
</div>

1. 在 Devin 中，前往 **设置 → 企业 → 成员**
2. 滚动至“成员资格”页面底部的 **SCIM 预配** 部分
3. 复制 **SCIM 基础 URL**
4. 点击 **生成令牌**，然后复制 Bearer 令牌

<Warning>
  Bearer 令牌仅显示一次。请妥善保管。你可以随时在同一设置部分轮换或撤销该令牌。
</Warning>

<div id="step-2-configure-your-identity-provider">
  ## 步骤 2：配置你的身份提供商
</div>

<Tabs>
  <Tab title="Okta">
    SCIM 将作为独立于现有 Devin SSO 应用的单独应用进行设置。

    **创建应用**

    1. 在 Okta Admin Console 中，依次前往 **Applications → Applications**，然后点击 **Browse App Catalog**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-browse-app-catalog.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=e97ff741243ce49a196e7224f0d954a8" alt="在 Okta Applications 页面中浏览 App Catalog" width="1051" height="538" data-path="images/enterprise/scim/okta/okta-browse-app-catalog.png" />
           </Frame>

    2. 搜索 **SCIM 2.0 Test App (OAuth Bearer Token)**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-scim-search.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=5517a665185deb368047ccc090ac0ccf" alt="搜索 SCIM 2.0 Test App (OAuth Bearer Token) 集成" width="1042" height="822" data-path="images/enterprise/scim/okta/okta-scim-search.png" />
           </Frame>

    3. 点击 **Add Integration**，并为其命名以便识别 (例如 `Devin (SCIM)`)

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-add-integration.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=cdae7c62c931892f0717a4d153458625" alt="为 SCIM 2.0 Test App (OAuth Bearer Token) 添加集成" width="889" height="454" data-path="images/enterprise/scim/okta/okta-add-integration.png" />
           </Frame>

    **配置应用**

    1. 打开应用 → **Provisioning → Integration**，点击 **Configure API Integration**，然后勾选 **Enable API integration**

       * \*\*SCIM 2.0 Base Url：\*\*Devin 提供的 SCIM 基础 URL
       * \*\*OAuth Bearer Token：\*\*Devin 提供的 Bearer 令牌
       * 点击 **Test API Credentials**，应测试成功，然后点击 **Save**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-configure-api-integration.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=5137517536897cf1cbcb9eb102ec71ac" alt="使用基础 URL 和 Bearer 令牌配置 SCIM API 集成" width="1035" height="855" data-path="images/enterprise/scim/okta/okta-configure-api-integration.png" />
           </Frame>

    2. 打开应用 → **Provisioning → To App**，点击 **Edit**，启用 **Create Users**、**Update User Attributes** 和 **Deactivate Users**，然后点击 **Save**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-provisioning-settings.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=8aa531d3a6967b66fbf6ceb826dad564" alt="启用 Create Users、Update User Attributes 和 Deactivate Users" width="1022" height="979" data-path="images/enterprise/scim/okta/okta-provisioning-settings.png" />
           </Frame>

    3. 打开应用 → **Sign On**，点击 **Edit**，将 **Application username format** 设置为 **Email**，然后点击 **Save**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-username-email.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=b3b814b664de4e1ab60b0f8507b0fb04" alt="在 Sign On 设置中将 Application username format 设置为 Email" width="741" height="988" data-path="images/enterprise/scim/okta/okta-username-email.png" />
           </Frame>

    4. 打开应用 → **Provisioning → To App**，滚动到属性映射部分，然后点击 **Go to Profile Editor**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-attributes.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=4402f13fdad32428c0998b5804b5a0d9" alt="包含 Go to Profile Editor 按钮的属性映射表" width="976" height="781" data-path="images/enterprise/scim/okta/okta-attributes.png" />
           </Frame>

    5. 在 Profile Editor 中，点击 **Mappings**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-mappings-button.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=3ac5849f8b14e8bde3c80548a46de117" alt="Okta Profile Editor 中的 Mappings 按钮" width="1024" height="1129" data-path="images/enterprise/scim/okta/okta-mappings-button.png" />
           </Frame>

       * 在第一个选项卡 (Okta user to app) 中，除 `appuser.givenName → firstName`、`appuser.familyName → lastName` 和 `appuser.email → email` 外，将所有映射设为 **Do not map**，然后点击 **Save Mappings**

             <Frame>
               <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-mappings.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=a5003a25682a21efdc8649f9c354dc47" alt="第一个映射选项卡，其中 givenName、familyName 和 email 已映射" width="978" height="1247" data-path="images/enterprise/scim/okta/okta-mappings.png" />
             </Frame>

       * 在第二个选项卡 (app to Okta user) 中，除 `user.firstName`、`user.lastName` 和 `user.email` 外，将所有映射设为 **Do not map**，然后点击 **Save Mappings**

             <Frame>
               <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/okta/okta-mappings-reverse.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=e2e4ad15903cd9b66e015feb5329aa78" alt="第二个映射选项卡，其中 firstName、lastName 和 email 已映射" width="980" height="1212" data-path="images/enterprise/scim/okta/okta-mappings-reverse.png" />
             </Frame>

    **分配用户和组**

    * 在 **Assignments** 选项卡中分配用户和组
    * 若要将组同步到 Devin，还需在 **Push Groups** 选项卡中推送这些组
  </Tab>

  <Tab title="Entra ID">
    SCIM 将作为独立于现有 Devin SSO 应用程序的应用程序进行设置。

    **创建应用程序**

    1. 在 Entra 管理中心，转到 **企业应用程序**，然后点击 **+ 新建应用程序**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-new-application.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=65c067f98a963eae97dd293ba3b6708b" alt="Entra 企业应用程序中的新建应用程序" width="1380" height="893" data-path="images/enterprise/scim/entra/entra-new-application.png" />
           </Frame>

    2. 点击 **+ 创建自己的应用程序**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-new-application-create.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=6e3a7d4182e1ff2d25762609f003c5d0" alt="在 Entra 应用程序库中创建自己的应用程序" width="1337" height="773" data-path="images/enterprise/scim/entra/entra-new-application-create.png" />
           </Frame>

    3. 为便于识别，为应用程序命名 (例如 `Devin (SCIM)`) ，保留已选中的非库选项，然后点击 **创建**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-new-application-name.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=2f38cec3b557f6f68c52708feeba4ea7" alt="命名应用程序并选择非库选项" width="563" height="451" data-path="images/enterprise/scim/entra/entra-new-application-name.png" />
           </Frame>

    **配置应用程序**

    1. 打开应用程序 → **预配**，然后点击 **连接你的应用程序**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-new-application-connect.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=87a55bf77daf5ee9380c4336b99b5636" alt="在预配概览中连接你的应用程序" width="1375" height="1157" data-path="images/enterprise/scim/entra/entra-new-application-connect.png" />
           </Frame>

       * **租户 URL：** Devin 提供的 SCIM 基础 URL
       * **密钥令牌：** Devin 提供的 Bearer 令牌
       * 点击 **测试连接**，确认连接成功后，点击 **保存**

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-provisioning-config.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=01c2f328b832f857b81cde3154f7a592" alt="使用 Bearer 身份验证输入租户 URL 和密钥令牌" width="727" height="699" data-path="images/enterprise/scim/entra/entra-provisioning-config.png" />
           </Frame>

    2. 打开应用程序 → **预配 → 映射 → 预配 Microsoft Entra ID 用户** (确保已为用户和组启用预配)

           <Frame>
             <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-provisioning-enable.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=f10693bcc4ea390c9d76e61c878c4a5f" alt="预配 Microsoft Entra ID 用户映射" width="1378" height="774" data-path="images/enterprise/scim/entra/entra-provisioning-enable.png" />
           </Frame>

       * 编辑 `userName`，使其与 `emails[type eq "work"].value` 的映射保持一致 (例如，将两者都设置为 Entra 属性 `userPrincipalName`) ，然后点击 **保存**

             <Frame>
               <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-attribute-mapping.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=2bd379e45fd0bdcb26822316c3dc4417" alt="userName 和 emails[type eq work].value 均映射到 userPrincipalName" width="1368" height="1259" data-path="images/enterprise/scim/entra/entra-attribute-mapping.png" />
             </Frame>

       * 删除除 `userName`、`active`、`name.givenName`、`name.familyName`、`emails[type eq "work"].value` 和 `externalId` 之外的所有属性映射

             <Frame>
               <img src="https://mintcdn.com/cognitionai/SyQRU3qbsN5IUTkF/images/enterprise/scim/entra/entra-attribute-mapping-removal.png?fit=max&auto=format&n=SyQRU3qbsN5IUTkF&q=85&s=5de2eba47c034c222e079154542d5ddb" alt="属性映射已精简为受支持的集合" width="1363" height="931" data-path="images/enterprise/scim/entra/entra-attribute-mapping-removal.png" />
             </Frame>

    **分配用户和组**

    1. 打开应用程序 → **用户和组**，然后点击 **+ 添加用户/组**
    2. 打开应用程序 → **预配**，然后点击 **开始预配** (将 **预配状态** 设置为 **开**，Entra 将按其标准周期自动在后台同步，约每 40 分钟一次)
    3. (可选) 如需立即同步特定用户，请使用 **预配 → 按需预配**
  </Tab>

  <Tab title="其他身份提供商">
    任何符合 SCIM 2.0 标准的身份提供商都可以为 Devin 预配用户和组：

    * \*\*基础 URL：\*\*Devin 提供的 SCIM 基础 URL (以 `/scim/v2` 结尾)
    * \*\*身份验证：\*\*HTTP `Authorization: Bearer <token>` 标头
    * **资源：**`/Users` 和 `/Groups`，以及标准自动发现端点 (`/ServiceProviderConfig`、`/ResourceTypes`、`/Schemas`)
    * \*\*支持的属性有限：\*\*其他属性将被忽略。仅支持以下属性：
      * **用户：**`userName`、`active`、`emails`、`name.givenName`、`name.familyName`、`externalId`
      * **组：**`displayName`、`members`、`externalId`
  </Tab>
</Tabs>

<Note>
  用户的 `userName` 必须使用其电子邮件地址。因此，Okta 应用的用户名格式应设为 **Email**，且 Entra 的 `userName` 映射必须与工作电子邮件映射保持一致。
</Note>

<div id="step-3-map-groups-to-roles">
  ## 步骤 3：将组映射到角色
</div>

系统会在用户首次登录前，将其以默认的 Enterprise Member 角色预配到你的 Devin 企业账户中。在 **设置 → Enterprise → 身份提供商组** 中，将已预配的组映射到相应的角色和组织。

<div id="how-provisioning-interacts-with-sso-login">
  ## 预配与 SSO 登录的交互方式
</div>

* 通过 SCIM 预配的用户可立即通过 SSO 登录，无需邀请
* 在 IdP 中停用用户会立即移除其企业成员资格；重新分配后即可恢复
* 通过 SCIM 推送的组成员关系会立即生效，无需等待用户下次登录
* 关闭基于登录的组同步后，SCIM 将成为 IdP 组成员关系的唯一来源
* 此前通过即时预配或手动邀请创建的用户仍可正常使用；请在 IdP 中为其分配，以便由 SCIM 管理
