> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 用户管理

本文档涵盖了 LangSmith 中的用户管理功能，包括访问控制、身份验证和自动用户配置：

* [设置访问控制](#设置访问控制)：配置基于角色的访问控制（RBAC）以管理工作区内的用户权限，包括创建自定义角色并将其分配给用户。
* [SAML 单点登录（企业版）](#为您的组织设置-saml-单点登录)：为使用 SAML 2.0 的企业客户设置单点登录认证，包括主流身份提供商的配置。
* [SCIM 用户配置（企业版）](#为您的组织设置-scim)：使用 SCIM 在您的身份提供商和 LangSmith 之间自动进行用户配置和取消配置。

## 设置访问控制

<Note>
  RBAC（基于角色的访问控制）是仅面向企业客户的功能。如果您对此功能感兴趣，[请联系我们的销售团队](https://www.langchain.com/contact-sales)。其他计划默认所有用户均使用 [`管理员` 角色](/langsmith/administration-overview)。
</Note>

<Check>
  在设置访问控制之前，阅读[管理概述](/langsmith/administration-overview)页面可能会对您有所帮助。
</Check>

LangSmith 依赖 RBAC 来管理[工作区](/langsmith/administration-overview#workspaces)内的用户权限。这使您可以控制谁能访问您的 LangSmith 工作区以及他们可以在其中执行哪些操作。拥有 `workspaces:manage` 权限的用户可以管理工作区设置，拥有 `workspaces:manage-members` 权限的用户可以添加、移除和更新工作区成员。内置的工作区管理员角色同时包含这两种权限。

有关工作区角色及其权限的完整参考，请参阅[基于角色的访问控制](/langsmith/rbac#workspace-roles)指南。关于每个角色可执行的具体操作，请参阅[组织和工单操作参考](/langsmith/organization-workspace-operations)。

### 创建角色

默认情况下，LangSmith 自带一组系统角色：

* `管理员`：拥有工作区内所有资源的完全访问权限。
* `查看者`：拥有工作区内所有资源的只读访问权限。
* `编辑者`：拥有除工作区管理（添加/移除用户、更改角色、配置服务密钥）之外的所有权限。

如果这些角色不符合您的访问模型，`组织管理员`可以创建自定义角色以满足您的需求。

要创建角色，请导航至[组织设置页面](https://smith.langchain.com/settings)中**成员和角色**部分的**角色**选项卡。请注意，您创建的新角色将在您组织内的所有工作区中可用。

点击**创建角色**按钮来创建一个新角色。将会打开一个**创建角色**表单。

<img src="https://mintcdn.com/hhh-8c10bf0c/lw0BeSKlKZkqgDHv/langsmith/images/create-role.png?fit=max&auto=format&n=lw0BeSKlKZkqgDHv&q=85&s=ae5e467dfd0c726ff88cb9c33d4da8b4" alt="创建角色" width="3078" height="1932" data-path="langsmith/images/create-role.png" />

为您想要控制访问权限的不同 LangSmith 资源分配权限。

### 为用户分配角色

设置好角色后，您可以将其分配给用户。要为用户分配角色，请导航至[组织设置页面](https://smith.langchain.com/settings)的**工作区**部分中的**工作区成员**选项卡。

每个用户都有一个**角色**下拉菜单，您可以使用它来为他们分配角色。

<img src="https://mintcdn.com/hhh-8c10bf0c/dGi5Qyx6ZNfUuqyP/langsmith/images/assign-role.png?fit=max&auto=format&n=dGi5Qyx6ZNfUuqyP&q=85&s=bc8bde5d3064610b9283cc7d6f1f01d0" alt="分配角色" width="1888" height="574" data-path="langsmith/images/assign-role.png" />

您也可以邀请具有特定角色的新用户。

<img src="https://mintcdn.com/hhh-8c10bf0c/lQoj_T05pUgIcyPg/langsmith/images/invite-user.png?fit=max&auto=format&n=lQoj_T05pUgIcyPg&q=85&s=cb0a7a019ff08e7eb54e2b38b2d3fb87" alt="邀请用户" width="1204" height="886" data-path="langsmith/images/invite-user.png" />

## 为您的组织设置 SAML 单点登录

单点登录 (SSO) 功能**适用于企业云客户**，允许用户通过单一认证源访问 LangSmith。这使管理员能够集中管理团队访问权限，并提高信息安全性。

LangSmith 的 SSO 配置是使用 SAML（安全断言标记语言）2.0 标准构建的。SAML 2.0 能够将身份提供商 (IdP) 连接到您的组织，从而实现更简单、更安全的登录体验。

SSO 服务允许用户使用一组凭据（例如，用户名或电子邮件地址和密码）访问多个应用程序。该服务仅对用户已获得授权的所有应用程序进行一次最终用户身份验证，并在同一会话期间用户切换应用程序时消除进一步提示。SSO 的好处包括：

* 为组织所有者简化跨系统的用户管理。
* 使组织能够强制执行自己的安全策略（例如，MFA）。
* 消除了最终用户记住和管理多个密码的需要。通过允许在多个应用程序的单一访问点登录，简化了最终用户体验。

### 即时 (JIT) 配置

LangSmith 在使用 SAML SSO 时支持即时配置。这允许通过 SAML SSO 登录的人员自动成为组织及选定工作区的成员。有关管理 JIT 配置和用户邀请的详细信息，请参阅[管理 SSO 组织中的用户访问](/langsmith/jit-invite-sso)。

<Note>
  JIT 配置仅对新用户运行，即尚未通过[不同的登录方法](/langsmith/authentication-methods#cloud)使用相同电子邮件地址访问组织的用户。
</Note>

### 登录方法和访问权限

为您的组织完成 SAML SSO 配置后，用户将能够通过 SAML SSO 以及[其他登录方法](/langsmith/authentication-methods#cloud)（例如用户名/密码或 Google 认证）进行登录：

* 通过 SAML SSO 登录时，用户只能访问已配置 SAML SSO 的对应组织。
* 仅将 SAML SSO 作为唯一登录方法的用户没有[个人组织](/langsmith/administration-overview#organizations)。
* 通过任何其他方法登录时，用户可以访问已配置 SAML SSO 的组织以及他们所属的任何其他组织。

### 仅强制执行 SAML SSO

<Note>
  在强制执行仅 SAML SSO 的组织中不支持用户邀请。初始工作区成员身份和角色由 [JIT 配置](/langsmith/jit-invite-sso#jit-provisioning)决定，后续更改可在 UI 中管理。
  为了在自动化用户管理中获得更大的灵活性，LangSmith 支持 SCIM。
</Note>

为确保用户只能在使用 SAML SSO 登录时访问组织，而不能通过其他方法访问，请勾选**仅通过 SSO 登录**复选框，然后点击**保存**。此后，通过非 SSO 登录方法登录并尝试访问组织的用户将被要求使用 SAML SSO 重新登录。通过取消选中该复选框并点击**保存**，可以将此设置切换回允许所有登录方法。

<Note>
  您必须通过 SAML SSO 登录才能将此设置更新为“仅 SAML SSO”。这是为了确保 SAML 设置有效，并避免将用户锁定在组织之外。
</Note>

有关故障排除，请参阅 [SAML SSO 常见问题解答](/langsmith/faq#saml-sso-faqs)。如果您在设置 SAML SSO 时遇到问题，请通过 [support.langchain.com](https://support.langchain.com) 联系 LangChain 支持团队。

### 先决条件

<Note>
  SAML SSO 适用于 [企业版](https://www.langchain.com/pricing-langsmith) 计划的组织。请[联系销售](https://www.langchain.com/contact-sales)以了解更多信息。
</Note>

* 您的组织必须使用企业版计划。
* 您的身份提供商 (IdP) 必须支持 SAML 2.0 标准。
* 只有 [`组织管理员`](/langsmith/organization-workspace-operations#sso-and-authentication) 可以配置 SAML SSO。

有关将 SCIM 与 SAML 结合使用以进行用户配置和取消配置的说明，请参阅 [SCIM 设置](#为您的组织设置-scim)。

### 初始配置

<Note>
  针对特定 IdP 的配置步骤，请参考以下内容：

  * [Entra ID](#entra-id-azure)
  * [Google](#google)
  * [Okta](#okta)
</Note>

1. 在您的 IdP 中：使用以下详细信息配置一个 SAML 应用程序，然后复制元数据 URL 或 XML 以供步骤 3 使用。

   <Note>
     以下 URL 在美国和欧盟地区有所不同。请确保选择正确的链接。
   </Note>

   1. 单点登录 URL（或 ACS URL）：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/acs](https://auth.langchain.com/auth/v1/sso/saml/acs)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/acs](https://eu.auth.langchain.com/auth/v1/sso/saml/acs)
   2. 受众 URI（或 SP 实体 ID）：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/metadata](https://auth.langchain.com/auth/v1/sso/saml/metadata)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/metadata](https://eu.auth.langchain.com/auth/v1/sso/saml/metadata)
   3. NameID 格式：电子邮件地址。
   4. 应用程序用户名：电子邮件地址。
   5. 必需的声明：`sub` 和 `email`。

2. 在 LangSmith 中：转到 **设置** -> **成员和角色** -> **SSO 配置**。填写所需信息并提交以激活 SSO 登录：

   1. 填写 `SAML 元数据 URL` 或 `SAML 元数据 XML`。
   2. 选择 `默认工作区角色` 和 `默认工作区`。通过 SSO 登录的新用户将被添加到指定的工作区，并具有所选角色。

      * `默认工作区角色` 和 `默认工作区` 是可编辑的。更新后的设置将仅适用于新用户，不适用于现有用户。
      * （即将推出）`SAML 元数据 URL` 和 `SAML 元数据 XML` 是可编辑的。这通常仅在加密密钥轮换/过期或元数据 URL 更改但仍使用相同 IdP 时才需要。

### Entra ID (Azure)

有关更多信息，请参阅 Microsoft 的[文档](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/add-application-portal-setup-sso)。

<div id="create-application-entra-id" />

**步骤 1：创建新的 Entra ID 应用程序集成**

1. 使用特权角色（例如，`全局管理员`）登录 [Azure 门户](https://portal.azure.com/#home)。在左侧导航窗格中，选择 `Entra ID` 服务。

2. 导航到 **企业应用程序**，然后选择 **所有应用程序**。

3. 单击 **创建您自己的应用程序**。

4. 在 **创建您自己的应用程序** 窗口中：

   1. 为您的应用程序输入一个名称（例如，`LangSmith`）。
   2. 选择 **集成您在库中找不到的任何其他应用程序（非库）**。

5. 单击 **创建**。

**步骤 2：配置 Entra ID 应用程序并获取 SAML 元数据**

1. 打开您创建的企业应用程序。

2. 在左侧导航中，选择 **管理** > **单一登录**。

3. 在单一登录页面上，单击 **SAML**。

4. 更新 **基本 SAML 配置**：

   1. `标识符（实体 ID）`：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/metadata](https://auth.langchain.com/auth/v1/sso/saml/metadata)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/metadata](https://eu.auth.langchain.com/auth/v1/sso/saml/metadata)
   2. `回复 URL（断言消费者服务 URL）`：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/acs](https://auth.langchain.com/auth/v1/sso/saml/acs)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/acs](https://eu.auth.langchain.com/auth/v1/sso/saml/acs)
   3. 将 `中继状态`、`注销 URL` 和 `登录 URL` 留空。
   4. 单击 **保存**。

5. 确保所需的声明存在，并带有 **命名空间**：`http://schemas.xmlsoap.org/ws/2005/05/identity/claims`：

   1. `sub`：`user.objectid`。
   2. `emailaddress`：`user.userprincipalname` 或 `user.mail`（如果使用后者，请确保所有用户在 `联系信息` 下填写了 `电子邮件` 字段）。
   3. （可选）对于 SCIM，请参阅[设置文档](/langsmith/user-management)以获取有关 `唯一用户标识符（Name ID）` 的具体说明。

6. 在基于 SAML 的登录页面上的 **SAML 证书** 下，复制 **应用程序联合元数据 URL**。

**步骤 3：设置 LangSmith SSO 配置**

按照[初始配置](#初始配置)中“填写所需信息”步骤的说明，使用上一步中的元数据 URL。

**步骤 4：验证 SSO 设置**

1. 在 Entra ID 中将应用程序分配给用户/组：

   1. 选择 **管理** > **用户和组**。

   2. 单击 **添加用户/组**。

   3. 在 **添加分配** 窗口中：

      1. 在 **用户** 下，单击 **未选择任何用户**。
      2. 搜索要分配给企业应用程序的用户，然后单击 **选择**。
      3. 确认用户已被选中，然后单击 **分配**。

2. 让用户通过 **SSO 配置** 页面中的唯一登录 URL 登录，或者转到 **管理** > **单一登录** 并选择 **测试 (应用程序名称) 的单一登录**。

### Google

有关更多信息，请参阅 Google 的[文档](https://support.google.com/a/answer/6087519)。

**步骤 1：创建并配置 Google Workspace SAML 应用程序**

1. 确保您已使用具有适当权限的管理员帐户登录。

2. 在管理控制台中，转到 **菜单** -> **应用** -> **Web 和移动应用**。

3. 单击 **添加应用**，然后单击 **添加自定义 SAML 应用**。

4. 输入应用名称，并可选地上传图标。单击 **继续**。

5. 在 Google 身份提供商详细信息页面上，下载 **IDP 元数据** 并保存以供步骤 2 使用。单击 **继续**。

6. 在 `服务提供商详细信息` 窗口中，输入：

   1. `ACS URL`：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/acs](https://auth.langchain.com/auth/v1/sso/saml/acs)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/acs](https://eu.auth.langchain.com/auth/v1/sso/saml/acs)
   2. `实体 ID`：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/metadata](https://auth.langchain.com/auth/v1/sso/saml/metadata)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/metadata](https://eu.auth.langchain.com/auth/v1/sso/saml/metadata)
   3. 将 `起始 URL` 和 `已签名响应` 框留空。
   4. 将 `Name ID 格式` 设置为 `EMAIL`，并将 `Name ID` 保留为默认值（`基本信息 > 主要电子邮件`）。
   5. 单击 `继续`。

7. 使用 `添加映射` 确保所需的声明存在：
   1. `基本信息 > 主要电子邮件` -> `email`

**步骤 2：设置 LangSmith SSO 配置**

按照[初始配置](#初始配置)中“填写所需信息”步骤的说明，使用上一步中的 `IDP 元数据` 作为元数据 XML。

**步骤 3：在 Google 中开启 SAML 应用**

1. 在 `菜单 -> 应用 -> Web 和移动应用` 下选择 SAML 应用。

2. 单击 `用户访问权限`。

3. 开启服务：

   1. 要为组织中的每个人开启服务，请单击 `为所有人开启`，然后单击 `保存`。

   2. 要为组织单位开启服务：

      1. 在左侧，选择组织单位，然后选择 `开启`。
      2. 如果服务状态设置为 `继承`，并且您希望即使在父级设置更改时也保留更新的设置，请单击 `覆盖`。
      3. 如果服务状态设置为 `已覆盖`，请单击 `继承` 以恢复为其父级相同的设置，或者单击 `保存` 以保留新设置，即使父级设置更改。

   3. 要为组织单位内或跨组织单位的一组用户开启服务，请选择一个访问群组。有关详细信息，请参阅[使用群组自定义服务访问权限](https://support.google.com/a/answer/9050643)。

4. 确保用户用于登录 LangSmith 的电子邮件地址与其用于登录 Google 域的电子邮件地址匹配。

**步骤 4：验证 SSO 设置**

让具有访问权限的用户通过 **SSO 配置** 页面中的唯一登录 URL 登录，或者转到 Google 中的 SAML 应用程序页面并单击 **测试 SAML 登录**。

### Okta

#### 支持的功能

* IdP 发起的 SSO（单点登录）
* SP 发起的 SSO
* 即时 (JIT) 配置
* 仅强制执行 SSO

#### 配置步骤

有关更多信息，请参阅 Okta 的[文档](https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_saml.htm)。

**步骤 1：创建并配置 Okta SAML 应用程序**

<div id="via-okta-integration-network">
  <b>通过 Okta 集成网络（推荐）</b>
</div>

1. 登录 [Okta](https://login.okta.com/)。
2. 在右上角，选择 Admin（管理员）。该按钮在 Admin 区域不可见。
3. 选择 `浏览应用集成目录`。
4. 找到并选择 LangSmith 应用程序。
5. 在应用程序概览页面上，选择添加集成。
6. 将 `ApiUrlBase` 留空。
7. 填写 `AuthHost`：
   * 美国：`auth.langchain.com`
   * 欧盟：`eu.auth.langchain.com`
8. （可选，如果也计划使用 [SCIM](#为您的组织设置-scim)）填写 `LangSmithUrl`：
   * 美国：`api.smith.langchain.com`
   * 欧盟：`eu.api.smith.langchain.com`
9. 在应用程序可见性下，保持框未选中。
10. 选择下一步。
11. 选择 `SAML 2.0`。
12. 填写 `登录选项`：
    * `应用程序用户名格式`：`电子邮件`
    * `更新应用程序用户名的时间`：`创建和更新时`
    * `允许用户安全查看其密码`：保持 **未选中**。
13. 复制 **登录选项** 页面中的 **元数据 URL** 以供下一步使用。

**通过自定义应用集成**

<Warning>
  SCIM 不兼容此配置方法。请参考[**通过 Okta 集成网络**](#via-okta-integration-network)。
</Warning>

1. 以管理员身份登录 Okta，然后转到 **Okta 管理员控制台**。

2. 在 **应用程序** > **应用程序** 下，单击 **创建应用集成**。

3. 选择 **SAML 2.0**。

4. 输入 `应用名称`（例如，`LangSmith`）并可选择输入 **应用徽标**，然后单击 **下一步**。

5. 在 **配置 SAML** 页面中输入以下信息：

   1. `单点登录 URL`（`ACS URL`）。保持选中 `用于收件人 URL 和目的地 URL`：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/acs](https://auth.langchain.com/auth/v1/sso/saml/acs)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/acs](https://eu.auth.langchain.com/auth/v1/sso/saml/acs)
   2. `受众 URI（SP 实体 ID）`：
      * 美国：[https://auth.langchain.com/auth/v1/sso/saml/metadata](https://auth.langchain.com/auth/v1/sso/saml/metadata)
      * 欧盟：[https://eu.auth.langchain.com/auth/v1/sso/saml/metadata](https://eu.auth.langchain.com/auth/v1/sso/saml/metadata)
   3. `NameID 格式`：**持久**。
   4. `应用程序用户名`：`email`。
   5. 将其余字段留空或保留默认设置。
   6. 单击 **下一步**。

6. 单击 **完成**。

7. 从 **登录** 页面复制 **元数据 URL** 以供下一步使用。

**步骤 2：设置 LangSmith SSO 配置**

按照[初始配置](#初始配置)中“填写所需信息”步骤的说明，使用上一步中的元数据 URL。

**步骤 3：在 Okta 中将用户分配给 LangSmith**

1. 在 **应用程序** > **应用程序** 下，选择在步骤 1 中创建的 SAML 应用程序。
2. 在 **分配** 选项卡下，单击 **分配**，然后选择 **分配给人员** 或 **分配给组**。
3. 进行所需的选择，然后依次单击 **分配** 和 **完成**。

**步骤 4：验证 SSO 设置**

让具有访问权限的用户通过 `SSO 配置` 页面中的唯一登录 URL 登录，或者让用户从其 Okta 仪表板中选择该应用程序。

#### SP 发起的 SSO

配置服务提供商发起的 SSO 后，用户可以使用唯一的登录 URL 登录。您可以在 LangSmith UI 的 **组织成员和角色** 然后 **SSO 配置** 下找到此 URL。

## 为您的组织设置 SCIM

跨域身份管理系统 (SCIM) 是一个开放标准，允许自动化用户配置。使用 SCIM，您可以在 LangSmith [组织和工作区](/langsmith/administration-overview)中自动配置和取消配置用户，使您的组织身份提供商的用户访问保持同步。

<Note>
  SCIM 适用于 [企业版](https://www.langchain.com/pricing) 计划的组织。[联系销售](https://www.langchain.com/contact-sales)以了解更多信息。

  SCIM 适用于 Helm chart 版本 0.10.41（应用程序版本 0.10.108）及更高版本。

  SCIM 支持仅限于 API（参见下面的说明）。
</Note>

SCIM 消除了手动用户管理的需要，并确保用户访问始终与您组织的身份系统保持同步。这可以实现：

* **自动化用户管理**：根据用户在 IdP 中的状态，自动在 LangSmith 中添加、更新和移除用户。
* **减少管理开销**：无需跨多个系统手动管理用户访问。
* **提高安全性**：离开您组织的用户会自动从 LangSmith 中取消配置。
* **一致的访问控制**：用户属性和组成员身份在系统之间同步。
* **扩展团队访问控制**：有效管理具有许多工作区和自定义角色的大型团队。
* **角色分配**：为用户组选择特定的[组织角色](/langsmith/rbac#organization-roles)和[工作区角色](/langsmith/rbac#workspace-roles)。

### 要求

#### 先决条件

* 您的组织必须使用企业版计划。
* 您的身份提供商 (IdP) 必须支持 SCIM 2.0。
* 只有 [组织管理员](/langsmith/administration-overview#organization-roles) 可以配置 SCIM。
* 对于云客户：必须能够为您的组织配置 [SAML SSO](#为您的组织设置-saml-单点登录)。
* 对于自托管客户：必须启用 [OAuth with Client Secret](/langsmith/self-host-sso#with-client-secret-recommended) 身份验证模式。
* 对于自托管客户，必须允许从身份提供商到 LangSmith 的网络流量：
  * Microsoft Entra ID 支持将 IP 范围或基于代理的解决方案加入允许列表以提供连接。
    （[详细信息](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/use-scim-to-provision-users-and-groups#ip-ranges)）。
  * Okta 支持将 IP 或域加入允许列表（[详细信息](https://help.okta.com/en-us/content/topics/security/ip-address-allow-listing.htm)）
    或基于代理的解决方案（[详细信息](https://help.okta.com/en-us/content/topics/provisioning/opp/opp-main.htm)）以提供连接。

<Note>
  SCIM 连接通常需要 HTTP/1.1 或更高版本。如果您的客户端使用 HTTP/1.0，可能会遇到 `426 Upgrade Required` 错误。
</Note>

#### 角色优先级

当用户属于同一工作区的多个组时，适用以下优先级：

1. **组织管理员组**具有最高优先级。这些组中的用户将在所有工作区中成为 `管理员`。
2. **最近创建的特定于工作区的组**优先于其他工作区组。

<Note>
  当组被删除或用户从组中移除时，他们的访问权限将根据其剩余的组成员身份，并遵循优先级规则进行更新。

  SCIM 组成员身份会覆盖手动分配的角色或通过即时 (JIT) 配置分配的角色。我们建议禁用 JIT 配置以避免冲突。有关更多详细信息，请参阅[管理 SSO 组织中的用户访问](/langsmith/jit-invite-sso#scim-integration)。
</Note>

#### 电子邮件验证

仅在云版本中，通过 SCIM 创建新用户会向该用户触发一封电子邮件。
他们必须通过单击此电子邮件中的链接来验证其电子邮件地址。
该链接在 24 小时后过期，如果需要，可以通过 SCIM 移除并重新添加用户来重新发送。

### 属性和映射

#### 组命名约定

<Warning>
  **不**支持通过 SCIM 重命名组。组名称是持久性的，因为它们必须与 LangSmith 中的角色名称和/或工作区名称匹配。
</Warning>

组成员身份使用特定的命名约定映射到 LangSmith 工作区成员身份和工作区角色。默认情况下，组件之间的分隔符是冒号 (`:`)，但您可以为组织[配置自定义分隔符](#配置自定义分隔符)。

**组织管理员组**

格式：`<可选前缀>Organization Admin` 或 `<可选前缀>Organization Admins`

示例：

* `LS:Organization Admins`
* `Groups-Organization Admins`
* `Organization Admin`

**特定于工作区的组**

格式：`<可选前缀><组织角色名称><分隔符><工作区名称><分隔符><工作区角色名称>`

分隔符默认为 `:`（冒号）。支持的分隔符有：`:`（冒号）、`-`（连字符）、`_`（下划线）、` `（空格）、`&`（和号）。

使用默认冒号分隔符的示例：

* `LS:Organization User:Production:Annotators`
* `Groups-Organization User:Engineering:Developers`
* `Organization User:Marketing:Viewers`

使用连字符分隔符的示例：

* `LS-Organization User-Production-Annotators`
* `Organization User-Engineering-Developers`

<Note>
  如果您的工作区名称包含分隔符（例如，工作区 `my-team` 使用分隔符 `-`），LangSmith 将自动尝试所有可能的分割以找到有效的工作区和角色组合。
</Note>

#### 配置自定义分隔符

要更改组织的 SCIM 组名称分隔符，请使用 `PATCH /api/v1/orgs/current/info` [端点](https://api.smith.langchain.com/redoc#tag/orgs/operation/update_current_organization_info_api_v1_orgs_current_info_patch)：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X PATCH $LANGCHAIN_ENDPOINT/api/v1/orgs/current/info \
  -H "X-Api-Key: $LANGCHAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scim_group_name_separator": "-"}'
```

分隔符必须是单个字符，并且是以下之一：`:`（冒号）、`-`（连字符）、`_`（下划线）、` `（空格）或 `&`（和号）。默认为 `:`（冒号）。

<Note>
  更改分隔符不会重命名现有的 SCIM 组。如果您更改了分隔符，则还必须更新身份提供商中的组名称以使用新的分隔符。
</Note>

### 映射

尽管具体说明可能因身份提供商而异，但这些映射显示了 LangSmith SCIM 集成支持的内容：

#### 用户属性

| **LangSmith 应用属性**             | **身份提供商属性**                                           | **匹配优先级** |
| ------------------------------ | ----------------------------------------------------- | --------- |
| `userName`<sup>1</sup>         | 电子邮件地址                                                |           |
| `active`                       | `!deactivated`                                        |           |
| `emails[type eq "work"].value` | 电子邮件地址<sup>2</sup>                                    |           |
| `name.formatted`               | `displayName` OR `givenName + familyName`<sup>3</sup> |           |
| `givenName`                    | `givenName`                                           |           |
| `familyName`                   | `familyName`                                          |           |
| `externalId`                   | `sub`<sup>4</sup>                                     | 1         |

1. LangSmith 不需要 `userName`
2. 电子邮件地址是必需的
3. 如果您的 `displayName` 不符合 `名字 姓氏` 的格式，请使用计算出的表达式
4. 为避免不一致，对于云客户，这应与 SAML `NameID` 断言匹配；对于自托管客户，应与 OAuth2.0 `sub` 声明匹配。

#### 组属性

| **LangSmith 应用属性** | **身份提供商属性**               | **匹配优先级** |
| ------------------ | ------------------------- | --------- |
| `displayName`      | `displayName`<sup>1</sup> | 1         |
| `externalId`       | `objectId`                |           |
| `members`          | `members`                 |           |

1. 组必须遵循[组命名约定](#组命名约定)部分中描述的命名约定。
   如果您的公司有组命名策略，您应该改为从身份提供商属性 `description` 进行映射，并根据[组命名约定](#组命名约定)部分设置描述。

### 步骤 1 - 配置 SAML SSO（仅限云）

[SAML SSO](#为您的组织设置-saml-单点登录) 配置有两种情况：

1. 如果您的组织已配置 SAML SSO，您应跳过最初添加应用程序的步骤（[从 Okta 集成网络添加应用程序](#add-application-okta-oin) 或 [创建新的 Entra ID 应用程序集成](#create-application-entra-id)），因为您已配置了一个应用程序，只需启用配置即可。
2. 如果您是首次将 SAML SSO 与 SCIM 一起配置，请先按照说明[设置 SAML SSO](#为您的组织设置-saml-单点登录)，\_然后\_按照此处的说明启用 SCIM。

#### NameID 格式

LangSmith 使用 SAML NameID 来标识用户。NameID 是 SAML 响应中的必需字段，且不区分大小写。

NameID 必须：

1. 对每个用户唯一。
2. 是一个永不更改的持久值，例如随机生成的唯一用户 ID。
3. 在每次登录尝试时精确匹配。不应依赖用户输入。

NameID 不应该是电子邮件地址或用户名，因为电子邮件地址和用户名更可能随时间变化，并且可能区分大小写。

NameID 格式必须为 `Persistent`，除非您使用的是需要不同格式的字段（例如电子邮件）。

### 步骤 2 - 禁用 JIT 配置

在启用 SCIM 之前，请禁用[即时 (JIT) 配置](/langsmith/jit-invite-sso#jit-provisioning)，以防止自动和手动用户配置之间发生冲突。

#### 为云版本禁用 JIT

使用 `PATCH /orgs/current/info` [端点](https://api.smith.langchain.com/redoc#tag/orgs/operation/update_current_organization_info_api_v1_orgs_current_info_patch)：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X PATCH $LANGCHAIN_ENDPOINT/orgs/current/info \
  -H "X-Api-Key: $LANGCHAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jit_provisioning_enabled": false}'
```

#### 为自托管版本禁用 JIT

从 LangSmith chart 版本 **0.11.14** 开始，您可以为使用 SSO 的自托管组织禁用 JIT 配置。要禁用，请设置以下值：

```yaml theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
commonEnv:
  - name: SELF_HOSTED_JIT_PROVISIONING_ENABLED
    value: "false"
```

### 步骤 3 - 生成 SCIM Bearer 令牌

<Note>
  在自托管环境中，下面的完整 URL 可能看起来像 `https://langsmith.yourdomain.com/api/v1/platform/orgs/current/scim/tokens`（没有子域，注意 `/api/v1` 路径前缀）或 `https://langsmith.yourdomain.com/subdomain/api/v1/platform/orgs/current/scim/tokens`（有子域）- 有关更多详细信息，请参阅[入口文档](/langsmith/self-host-ingress)。
</Note>

为您的组织生成一个 SCIM Bearer 令牌。您的 IdP 将使用此令牌来验证 SCIM API 请求。确保适当设置了环境变量，例如：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X POST $LANGCHAIN_ENDPOINT/v1/platform/orgs/current/scim/tokens \
  -H "X-Api-Key: $LANGCHAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "Your description here"}'
```

请注意，SCIM Bearer 令牌的值在此请求的响应之外不可用。还存在以下附加端点：

* `GET /v1/platform/orgs/current/scim/tokens`
* `GET /v1/platform/orgs/current/scim/tokens/{scim_token_id}`
* `PATCH /v1/platform/orgs/current/scim/tokens/{scim_token_id}`（仅支持 `description` 字段）
* `DELETE /v1/platform/orgs/current/scim/tokens/{scim_token_id}`

### 步骤 4 - 配置您的身份提供商

<Note>
  如果您使用 Azure Entra ID（以前称为 Azure AD）或 Okta，则有针对身份提供商设置的具体说明（请参阅 [Azure Entra ID](#azure-entra-id-configuration-steps)、[Okta](#okta)）。上述要求和步骤适用于所有身份提供商。
</Note>

#### Azure Entra ID 配置步骤

有关更多信息，请参阅微软的[文档](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/user-provisioning)。

<Note>
  在自托管安装中，`oid` JWT 声明将用作 `sub`。
  有关更多详细信息，请参阅[此 Microsoft Learn 链接](https://learn.microsoft.com/en-us/answers/questions/5546297/how-to-link-oidc-users-with-scim)
  以及[相关配置说明](/langsmith/self-host-sso#override-sub-claim)。
</Note>

**步骤 1：在企业应用程序中配置 SCIM**

1. 使用特权角色（例如 `Global Administrator`）登录 [Azure 门户](https://portal.azure.com/#home)。
2. 导航到您现有的 LangSmith 企业应用程序。
3. 在左侧导航栏中，选择 **管理** > **预配**。
4. 点击 **开始使用**。

**步骤 2：配置管理员凭据**

1. 在 **管理员凭据** 下：

   * **租户 URL**：

     * 美国：`https://api.smith.langchain.com/scim/v2`
     * 欧盟：`https://eu.api.smith.langchain.com/scim/v2`
     * 自托管：`<langsmith_url>/scim/v2`

   * **密钥令牌**：输入在步骤 3 中生成的 SCIM Bearer Token。

2. 点击 **测试连接** 以验证配置。

3. 点击 **保存**。

**步骤 3：配置属性映射**

在 `Mappings` 下配置以下属性映射：

**用户属性**

将 **目标对象操作** 设置为 `Create` 和 `Update`（为安全起见，初始禁用 `Delete`）：

|       **LangSmith 应用属性**       |               **Microsoft Entra ID 属性**              | **匹配优先级** |
| :----------------------------: | :--------------------------------------------------: | :-------: |
|           `userName`           |                  `userPrincipalName`                 |           |
|            `active`            |                `Not([IsSoftDeleted])`                |           |
| `emails[type eq "work"].value` |                        `mail`1                       |           |
|        `name.formatted`        | `displayName` 或 `Join(" ", [givenName], [surname])`2 |           |
|          `externalId`          |                      `objectId`3                     |     1     |

1. 用户的电子邮件地址必须在 Entra ID 中存在。
2. 如果您的 `displayName` 不符合 `名 姓` 的格式，请使用 `Join` 表达式。
3. 为避免不一致，该值应与 SAML NameID 断言和 `sub` OAuth2.0 声明匹配。对于云端的 SAML SSO，`Unique User Identifier (Name ID)` 必需声明应为 `user.objectID`，且 `Name identifier format` 应为 `persistent`。

**组属性**

仅将 **目标对象操作** 设置为 `Create` 和 `Update`（为安全起见，初始禁用 `Delete`）：

| **LangSmith 应用属性** | **Microsoft Entra ID 属性** | **匹配优先级** |
| :----------------: | :-----------------------: | :-------: |
|    `displayName`   |       `displayName`1      |     1     |
|    `externalId`    |         `objectId`        |           |
|      `members`     |         `members`         |           |

1. 组必须遵循[组命名约定](#group-naming-convention)一节中描述的命名规则。
   如果贵公司有组命名策略，则应改为从 `description` Microsoft Entra ID 属性映射，
   并根据[组命名约定](#group-naming-convention)一节设置描述。

**步骤 4：分配用户和组**

1. 在 **应用程序** > **应用程序** 下，选择您的 LangSmith 企业应用程序。
2. 在 **分配** 选项卡下，点击 **分配**，然后选择 **分配给人员** 或 **分配给组**。
3. 进行所需选择，然后点击 **分配** 和 **完成**。

**步骤 5：启用预配**

1. 在 **预配** 下，将 **预配状态** 设置为 `On`。
2. 监控初始同步，确保用户和组被正确预配。
3. 验证后，为用户和组映射启用 `Delete` 操作。

有关故障排除，请参阅 [SAML SSO 常见问题解答](/langsmith/faq#saml-sso-faqs)。如果在设置 SCIM 时遇到问题，请通过 [support.langchain.com](https://support.langchain.com) 联系 LangChain 支持团队。

#### Okta 配置步骤

<Note>
  您必须使用 [Okta Lifecycle Management](https://www.okta.com/products/lifecycle-management/) 产品。要使用 Okta 上的 SCIM，必须使用该产品层级。
</Note>

<div id="supported-features">
  <b>支持的功能</b>
</div>

* 创建用户
* 更新用户属性
* 停用用户
* 组推送（**不支持组重命名**）
* 导入用户
* 导入组

<div id="add-application-okta-oin">
  <b>步骤 1：从 Okta 集成网络添加应用程序</b>
</div>

<Note>
  如果您已通过 SAML（云端）或 OIDC 的 OAuth2.0（自托管）配置了 SSO 登录，请跳过此步骤。
</Note>

有关云端配置，请参阅 [SAML SSO 设置](#okta)；有关自托管配置，请参阅 [OAuth2.0 设置](/langsmith/self-host-sso#okta-idp-setup)。

**步骤 2：配置 API 集成**

1. 在“常规”选项卡中，确保根据[步骤 1](#add-application-okta-oin) 中的说明填写 `LangSmithUrl`。
2. 在“预配”选项卡中，选择 `Integration`。
3. 选择 `Edit`，然后选择 `Enable API integration`。
4. 对于 API Token，粘贴您[在上面生成的](#step-3-generate-scim-bearer-token) SCIM 令牌。
5. 保持选中 `Import Groups`。
6. 要验证配置，请选择 Test API Credentials。
7. 选择 Save。
8. 保存 API 集成详细信息后，左侧会出现新的设置选项卡。选择 `To App`。
9. 选择 Edit。
10. 选中 Create Users、Update Users 和 Deactivate Users 的 Enable 复选框。
11. 选择 Save。
12. 在“分配”选项卡中分配用户和/或组。已分配的用户将在您的 LangSmith 组中被创建和管理。

**步骤 3：配置用户预配设置**

1. 配置预配：在 `Provisioning > To App > Provisioning to App` 下，点击 `Edit`，然后勾选 `Create Users`、`Update User Attributes` 和 `Deactivate Users`。
2. 在 `<application_name> Attribute Mappings` 下，按下图设置用户属性映射，并删除其余映射：

<img src="https://mintcdn.com/hhh-8c10bf0c/BCyPqRNhtAjzdCmk/langsmith/images/scim_okta_user_attributes.png?fit=max&auto=format&n=BCyPqRNhtAjzdCmk&q=85&s=1b50ddb0d7acdc4f8cf64f863a427a01" alt="SCIM Okta 用户属性映射" width="748" height="467" data-path="langsmith/images/scim_okta_user_attributes.png" />

**步骤 4：推送组**

<Note>
  Okta 不支持除组名称本身以外的组属性，因此组名称<em>必须</em>遵循[组命名约定](#group-naming-convention)一节中描述的命名规则。
</Note>

按照 Okta 的 [Enable Group Push](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-enable-group-push.htm) 说明，配置按名称或按规则推送的组。

#### 其他身份提供商

其他身份提供商尚未经过测试，但可能根据其 SCIM 实现而正常工作。

***

<div className="source-links">
  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/i18n\zh-CN\langsmith\user-management.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>

  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>
</div>
