Skip to main content
本页介绍 LangSmith 中的用户管理功能,包括访问控制、身份验证和自动化用户配置:
  • 设置访问控制:配置基于角色的访问控制(RBAC)以管理工作区内的用户权限,包括创建自定义角色并将其分配给用户。
  • SAML SSO(企业计划):为企业客户设置使用 SAML 2.0 的单点登录身份验证,包括针对流行身份提供商的配置。
  • SCIM 用户配置(企业计划):使用 SCIM 在您的身份提供商和 LangSmith 之间自动化用户配置和取消配置。

设置访问控制

基于角色的访问控制(RBAC)是一项仅对企业客户开放的功能。如果您对此功能感兴趣,请联系我们的销售团队。其他计划默认为所有用户使用 Admin 角色
在设置访问控制之前,阅读管理概览页面可能会有所帮助。
LangSmith 依赖 RBAC 来管理工作区内的用户权限。这使您可以控制谁可以访问您的 LangSmith 工作区以及他们在其中可以做什么。拥有 workspaces:manage 权限的用户可以管理工作区设置,拥有 workspaces:manage-members 权限的用户可以添加、移除和更新工作区成员。内置的 Workspace Admin 角色包含这两种权限。 有关工作区角色及其权限的完整参考,请参阅基于角色的访问控制指南。有关每个角色可以执行的具体操作,请参阅组织和工作区操作参考

创建角色

默认情况下,LangSmith 附带一组系统角色:
  • Admin:对工作区内的所有资源拥有完全访问权限。
  • Viewer:对工作区内的所有资源拥有只读访问权限。
  • Editor:拥有除工作区管理(添加/移除用户、更改角色、配置服务密钥)之外的所有权限。
如果这些不符合您的访问模型,组织管理员可以创建自定义角色以满足您的需求。 要创建角色,请导航到组织设置页面Members and roles 部分中的 Roles 选项卡。请注意,您创建的新角色将在您组织内的所有工作区中可用。 点击 Create Role 按钮以创建新角色。将打开一个 Create role 表单。 创建角色 为您想要控制访问权限的不同 LangSmith 资源分配权限。

将角色分配给用户

设置好角色后,您可以将它们分配给用户。要将角色分配给用户,请导航到组织设置页面Workspaces 部分中的 Workspace members 选项卡。 每个用户都有一个 Role 下拉菜单,您可以使用它为他们分配角色。 分配角色 您也可以邀请具有给定角色的新用户。 邀请用户

为您的组织设置 SAML SSO

单点登录(SSO)功能适用于企业云客户,允许通过单一身份验证源访问 LangSmith。这使管理员可以集中管理团队访问,并使信息更加安全。 LangSmith 的 SSO 配置基于 SAML(安全断言标记语言)2.0 标准构建。SAML 2.0 允许将身份提供商(IdP)连接到您的组织,以实现更轻松、更安全的登录体验。 SSO 服务允许用户使用一组凭据(例如,姓名或电子邮件地址和密码)访问多个应用程序。该服务仅为用户有权访问的所有应用程序对最终用户进行一次身份验证,并在用户在同一会话期间切换应用程序时消除进一步的提示。SSO 的好处包括:
  • 为组织所有者简化跨系统的用户管理。
  • 使组织能够强制执行其自身的安全策略(例如,MFA)。
  • 消除最终用户记住和管理多个密码的需要。通过允许在单一访问点跨多个应用程序登录,简化最终用户体验。

即时(JIT)配置

LangSmith 在使用 SAML SSO 时支持即时配置。这允许通过 SAML SSO 登录的人自动作为成员加入组织和选定的工作区。有关管理 JIT 配置和用户邀请的详细信息,请参阅在 SSO 组织中管理用户访问
JIT 配置仅适用于新用户,即尚未通过其他登录方法使用相同电子邮件地址访问该组织的用户。

登录方法和访问

为组织完成 SAML SSO 配置后,用户除了可以通过其他登录方法(如用户名/密码或 Google 身份验证)登录外,还可以通过 SAML SSO 登录:
  • 通过 SAML SSO 登录时,用户只能访问配置了 SAML SSO 的相应组织。
  • 仅将 SAML SSO 作为其唯一登录方法的用户没有个人组织
  • 通过任何其他方法登录时,用户可以访问配置了 SAML SSO 的组织以及他们所属的任何其他组织。

强制仅使用 SAML SSO

在强制仅使用 SAML SSO 的组织中不支持用户邀请。初始工作区成员身份和角色由 JIT 配置确定,之后的更改可以在 UI 中管理。 为了在自动化用户管理方面提供更大的灵活性,LangSmith 支持 SCIM。
为确保用户只能在使用 SAML SSO 登录时访问组织,而不能使用其他方法,请选中 Login via SSO only 复选框并点击 Save。一旦执行此操作,通过非 SSO 登录方法登录的访问组织的用户将需要使用 SAML SSO 重新登录。可以通过取消选中复选框并点击 Save 将此设置切换回允许所有登录方法。
您必须通过 SAML SSO 登录才能将此设置更新为 Only SAML SSO。这是为了确保 SAML 设置有效并避免将用户锁定在组织之外。
有关故障排除,请参阅 SAML SSO 常见问题。如果您在设置 SAML SSO 时遇到问题,请通过 support.langchain.com 联系 LangChain 支持团队。

先决条件

SAML SSO 适用于企业计划上的组织。请联系销售以了解更多信息。
  • 您的组织必须在企业计划上。
  • 您的身份提供商(IdP)必须支持 SAML 2.0 标准。
  • 只有 组织管理员可以配置 SAML SSO。
有关使用 SCIM 与 SAML 进行用户配置和取消配置的说明,请参阅 SCIM 设置

初始配置

有关特定 IdP 的配置步骤,请参阅以下之一:
  1. 在您的 IdP 中:配置一个 SAML 应用程序,包含以下详细信息,然后复制元数据 URL 或 XML 用于步骤 3。
    以下 URL 取决于您的组织位于美国(GCP)、欧盟(GCP)还是美国(AWS)云区域。请确保选择正确的链接。
    1. 单点登录 URL(或 ACS URL):
    2. 受众 URI(或 SP 实体 ID):
    3. Name ID 格式:电子邮件地址。
    4. 应用程序用户名:电子邮件地址。
    5. 必需的声明:subemail
  2. 在 LangSmith 中:转到 Settings -> Members and roles -> SSO Configuration。填写所需信息并提交以激活 SSO 登录:
    1. 填写 SAML metadata URLSAML metadata XML
    2. 选择 Default workspace roleDefault workspaces。通过 SSO 登录的新用户将被添加到指定的工作区,并具有所选角色。
      • Default workspace roleDefault workspaces 是可编辑的。更新后的设置仅适用于新用户,不适用于现有用户。
      • (即将推出)SAML metadata URLSAML metadata XML 是可编辑的。这通常仅在加密密钥轮换/过期或元数据 URL 已更改但仍使用相同 IdP 时才需要。

Supabase 属性映射

Supabase 属性映射是一项仅限云的功能。自托管部署直接与 IdP 配置 SAML/OIDC 属性——请参阅使用 OAuth2.0 和 OIDC 设置 SSO
LangSmith 云使用 Supabase 作为 SAML SSO 后端。Supabase 自动将一小部分标准 SAML 属性(如 emailsub)传递到用户的 JWT。您的 IdP 发出的任何额外的、非标准的 SAML 属性(例如,用于 SSO 组同步groups)必须通过 Supabase 显式转发,LangSmith 才能读取它。 属性流(1:1):
  1. IdP:发出具有配置名称的 SAML 属性(例如,groups)。
  2. Supabase:仅当属性名称出现在 SSO 提供商的 Supabase 属性映射表中时,才将属性转发到用户的 JWT。标准属性会自动转发;非标准属性除非明确列出,否则会被丢弃。
  3. LangSmith:按名称读取 JWT 声明(例如,SSO 组同步Groups claim field 的值)。
属性名称端到端保留:IdP 属性名称、Supabase 属性映射条目和下游 LangSmith 设置都使用相同的字符串。

配置

SettingsMembers and rolesSSO Configuration 中,滚动到 Supabase Attribute Mapping 部分,并为要转发的每个非标准属性添加一行:
描述
Attribute name您的 IdP 发出的 SAML 属性名称。必须与 LangSmith 下游期望的 JWT 声明名称匹配(对于 SSO 组同步,这与 Groups claim field 值匹配)。
Array如果属性是多值的(字符串列表),请选中此项。对于标量(单值)属性,请取消选中。示例:为 groups 选中此项;为 full_name 取消选中。
点击 Add row 添加每个额外属性,然后点击 Save。空的映射表意味着没有非标准属性流向 JWT。

Entra ID (Azure)

更多信息,请参阅 Microsoft 的文档
步骤 1:创建新的 Entra ID 应用程序集成
  1. 使用特权角色(例如,Global Administrator)登录到 Azure 门户。在左侧导航窗格中,选择 Entra ID 服务。
  2. 导航到 Enterprise Applications,然后选择 All Applications
  3. 点击 Create your own application
  4. Create your own application 窗口中:
    1. 为您的应用程序输入一个名称(例如,LangSmith)。
    2. 选择 Integrate any other application you don’t find in the gallery (Non-gallery)
  5. 点击 Create
步骤 2:配置 Entra ID 应用程序并获取 SAML 元数据
  1. 打开您创建的企业应用程序。
  2. 在左侧导航中,选择 Manage > Single sign-on
  3. 在 Single sign-on 页面上,点击 SAML
  4. 更新 Basic SAML Configuration
    1. Identifier (Entity ID)
    2. Reply URL (Assertion Consumer Service URL)
    3. Relay StateLogout UrlSign on URL 留空。
    4. 点击 Save
  5. 确保必需的声明存在,Namespace 为:http://schemas.xmlsoap.org/ws/2005/05/identity/claims
    1. subuser.objectid
    2. emailaddressuser.userprincipalnameuser.mail(如果使用后者,请确保所有用户在 Contact Information 下的 Email 字段已填写)。
    3. (可选)对于 SCIM,请参阅设置文档以获取有关 Unique User Identifier (Name ID) 的具体说明。
  6. 在 SAML-based Sign-on 页面上,在 SAML Certificates 下,复制 App Federation Metadata URL
步骤 3:设置 LangSmith SSO 配置 按照初始配置Fill in required information 步骤下的说明操作,使用上一步中的元数据 URL。 步骤 4:验证 SSO 设置
  1. 在 Entra ID 中将应用程序分配给用户/组:
    1. 选择 Manage > Users and groups
    2. 点击 Add user/group
    3. Add Assignment 窗口中:
      1. Users 下,点击 None Selected
      2. 搜索您想要分配给企业应用程序的用户,然后点击 Select
      3. 验证用户已被选中,然后点击 Assign
  2. 让用户通过 SSO Configuration 页面上的唯一登录 URL 登录,或转到 Manage > Single sign-on 并选择 Test single sign-on with (application name)

Google

更多信息,请参阅 Google 的文档 步骤 1:创建并配置 Google Workspace SAML 应用程序
  1. 确保您使用具有适当权限的管理员帐户登录。
  2. 在管理控制台中,转到 Menu -> Apps -> Web and mobile apps
  3. 点击 Add App,然后点击 Add custom SAML app
  4. 输入应用程序名称,并可选择上传图标。点击 Continue
  5. 在 Google Identity Provider 详细信息页面上,下载 IDP metadata 并将其保存用于步骤 2。点击 Continue
  6. Service Provider Details 窗口中,输入:
    1. ACS URL
    2. Entity ID
    3. Start URLSigned response 框留空。
    4. Name ID 格式设置为 EMAIL,并将 Name ID 保留为默认值(Basic Information > Primary email)。
    5. 点击 Continue
  7. 使用 Add mapping 确保必需的声明存在:
    1. Basic Information > Primary email -> email
步骤 2:设置 LangSmith SSO 配置 按照初始配置Fill in required information 步骤下的说明操作,使用上一步中的 IDP metadata 作为元数据 XML。 步骤 3:在 Google 中启用 SAML 应用程序
  1. Menu -> Apps -> Web and mobile apps 下选择 SAML 应用程序
  2. 点击 User access
  3. 启用服务:
    1. 要为组织中的所有人启用服务,请点击 On for everyone,然后点击 Save
    2. 要为组织单位启用服务:
      1. 在左侧,选择组织单位,然后点击 On
      2. 如果服务状态设置为 Inherited 并且您希望保留更新后的设置(即使父设置更改),请点击 Override
      3. 如果服务状态设置为 Overridden,请点击 Inherit 以恢复为与其父级相同的设置,或点击 Save 以保留新设置(即使父设置更改)。
    3. 要为跨组织单位或组织单位内的一组用户启用服务,请选择一个访问组。详情请访问使用组自定义服务访问权限
  4. 确保用户用于登录 LangSmith 的电子邮件地址与其用于登录 Google 域的电子邮件地址匹配。
步骤 4:验证 SSO 设置 让有访问权限的用户通过 SSO Configuration 页面上的唯一登录 URL 登录,或转到 Google 中的 SAML 应用程序页面并点击 TEST SAML LOGIN

Okta

支持的功能

  • IdP 发起的 SSO(单点登录)
  • SP 发起的 SSO
  • 即时配置
  • 强制仅使用 SSO

配置步骤

更多信息,请参阅 Okta 的文档 步骤 1:创建并配置 Okta SAML 应用程序
通过 Okta 集成网络(推荐)
  1. 登录 Okta
  2. 在右上角,选择 Admin。该按钮在管理区域中不可见。
  3. 选择 Browse App Integration Catalog
  4. 找到并选择 LangSmith 应用程序。
  5. 在应用程序概述页面上,选择 Add Integration。
  6. ApiUrlBase 留空。
  7. 填写 AuthHost
    • 美国(GCP):auth.langchain.com
    • 欧盟(GCP):eu.auth.langchain.com
    • 美国(AWS):aws.auth.langchain.com
  8. (可选,如果计划同时使用 SCIM)填写 LangSmithUrl
    • 美国(GCP):api.smith.langchain.com
    • 欧盟(GCP):eu.api.smith.langchain.com
    • 美国(AWS):aws.api.smith.langchain.com
  9. 在 Application Visibility 下,保持复选框未选中。
  10. 选择 Next。
  11. 选择 SAML 2.0
  12. 填写 Sign-On Options
    • Application username formatEmail
    • Update application username onCreate and update
    • Allow users to securely see their password:保持未选中
  13. Sign On Options 页面复制 Metadata URL 以在下一步中使用。
通过自定义应用程序集成
SCIM 与此配置方法不兼容。请参阅 通过 Okta 集成网络
  1. 以管理员身份登录 Okta,并转到 Okta Admin console
  2. Applications > Applications 下,点击 Create App Integration
  3. 选择 SAML 2.0
  4. 输入 App name(例如,LangSmith)并可选择输入 App logo,然后点击 Next
  5. Configure SAML 页面中输入以下信息:
    1. Single sign-on URLACS URL)。保持 Use this for Recipient URL and Destination URL 选中:
    2. Audience URI (SP Entity ID)
    3. Name ID formatPersistent
    4. Application usernameemail
    5. 将其余字段留空或设置为默认值。
    6. 点击 Next
  6. 点击 Finish
  7. Sign On 页面复制 Metadata URL 以在下一步中使用。
步骤 2:设置 LangSmith SSO 配置 按照初始配置Fill in required information 步骤下的说明操作,使用上一步中的元数据 URL。 步骤 3:在 Okta 中将用户分配给 LangSmith
  1. Applications > Applications 下,选择步骤 1 中创建的 SAML 应用程序。
  2. Assignments 选项卡下,点击 Assign,然后选择 Assign to PeopleAssign to Groups
  3. 进行所需的选择,然后点击 AssignDone
步骤 4:验证 SSO 设置 让有访问权限的用户通过 SSO Configuration 页面上的唯一登录 URL 登录,或让用户从其 Okta 仪表板中选择应用程序。

SP 发起的 SSO

配置服务提供商发起的 SSO 后,用户可以使用唯一的登录 URL 登录。您可以在 LangSmith UI 的 Organization members and roles 下的 SSO configuration 中找到此 URL。

为您的组织设置 SCIM

正在寻找比 SCIM 更轻量级的替代方案,无需 IdP 管理员参与即可推送组?请参阅下面的 SSO 组同步——它在登录时直接从 SSO 令牌读取组成员身份,并重用相同的命名约定。
跨域身份管理系统(SCIM)是一种开放标准,允许自动化用户配置。使用 SCIM,您可以自动配置和取消配置 LangSmith 组织和工作区中的用户,使用户访问与组织的身份提供商保持同步。
SCIM 适用于企业计划上的组织。联系销售以了解更多信息。SCIM 在 Helm chart 版本 0.10.41(应用程序版本 0.10.108)及更高版本上可用。SCIM 支持仅限 API(请参阅下面的说明)。
SCIM 消除了手动用户管理的需要,并确保用户访问始终与组织的身份系统保持最新。这允许:
  • 自动化用户管理:根据用户在 IdP 中的状态,自动将用户添加、更新和移除出 LangSmith。
  • 减少管理开销:无需跨多个系统手动管理用户访问。
  • 提高安全性:离开组织的用户会自动从 LangSmith 取消配置。
  • 一致的访问控制:用户属性和组成员身份在系统之间同步。
  • 扩展团队访问控制:高效管理拥有多个工作区和自定义角色的大型团队。
  • 角色分配:为用户组选择特定的组织角色工作区角色

要求

先决条件

  • 您的组织必须在企业计划上。
  • 您的身份提供商(IdP)必须支持 SCIM 2.0。
  • 只有组织管理员可以配置 SCIM。
  • 对于云客户:您的组织必须可配置 SAML SSO
  • 对于自托管客户:必须启用 OAuth with Client Secret 身份验证模式。
  • 对于自托管客户,必须允许从身份提供商到 LangSmith 的网络流量:
    • Microsoft Entra ID 支持 IP 范围允许列表或基于代理的解决方案以提供连接性。 (详情)。
    • Okta 支持 IP 或域名允许列表 (详情) 或基于代理的解决方案 (详情) 以提供连接性。
SCIM 连接通常需要 HTTP/1.1 或更高版本。如果您的客户端使用 HTTP/1.0,您可能会遇到 426 Upgrade Required 错误。

角色优先级

当用户属于同一工作区的多个组时,适用以下优先级:
  1. 组织管理员组具有最高优先级。这些组中的用户将在所有工作区中成为 Admin
  2. 最近创建的特定于工作区的组优先于其他工作区组。
当组被删除或用户从组中移除时,他们的访问权限将根据其剩余的组成员身份进行更新,并遵循优先级规则。SCIM 组成员身份会覆盖手动分配的角色或通过即时(JIT)配置分配的角色。我们建议禁用 JIT 配置以避免冲突。有关更多详细信息,请参阅在 SSO 组织中管理用户访问

电子邮件验证

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

属性和映射

组命名约定

不支持通过 SCIM 重命名组。组名是持久的,因为它们必须与 LangSmith 中的角色名称和/或工作区名称匹配。
组成员身份映射到 LangSmith 工作区成员身份和工作区角色,并遵循特定的命名约定。默认情况下,组件之间的分隔符是冒号(:),但您可以为您的组织配置自定义分隔符 组织管理员组 格式:<optional_prefix>Organization Admin<optional_prefix>Organization Admins 示例:
  • LS:Organization Admins
  • Groups-Organization Admins
  • Organization Admin
特定于工作区的组 格式:<optional_prefix><org_role_name><separator><workspace_name><separator><workspace_role_name> 分隔符默认为 :(冒号)。支持的分隔符有::(冒号)、-(连字符)、_(下划线)、 (空格)、&(与号)。 使用默认冒号分隔符的示例:
  • LS:Organization User:Production:Annotators
  • Groups-Organization User:Engineering:Developers
  • Organization User:Marketing:Viewers
使用连字符分隔符的示例:
  • LS-Organization User-Production-Annotators
  • Organization User-Engineering-Developers
如果您的工作区名称包含分隔符字符(例如,分隔符为 - 的工作区 my-team),LangSmith 将自动尝试所有可能的拆分以找到有效的工作区和角色组合。

配置自定义分隔符

要更改组织的 SCIM 组名分隔符,请使用 PATCH /api/v1/orgs/current/info 端点(欧盟(GCP):eu.api.smith.langchain.com 上的相同路径;美国(AWS):aws.api.smith.langchain.com 上的相同路径):
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": "-"}'
分隔符必须是单个字符,并且是以下之一::(冒号)、-(连字符)、_(下划线)、 (空格)或 &(与号)。默认为 :(冒号)。
更改分隔符不会重命名现有的 SCIM 组。如果您更改分隔符,还必须在身份提供商中更新组名以使用新的分隔符。

映射

虽然特定于身份提供商的说明可能有所不同,但这些映射显示了 LangSmith SCIM 集成支持的内容:

用户属性

LangSmith 应用属性身份提供商属性匹配优先级
userName1电子邮件地址
active!deactivated
emails[type eq "work"].value电子邮件地址2
name.formatteddisplayNamegivenName + familyName3
givenNamegivenName
familyNamefamilyName
externalIdsub41
  1. userName 不是 LangSmith 所必需的
  2. 电子邮件地址是必需的
  3. 如果您的 displayName 不符合 Firstname Lastname 的格式,请使用计算表达式
  4. 为避免不一致,对于云客户,这应与 SAML NameID 断言匹配,对于自托管客户,则与 sub OAuth2.0 声明匹配。

组属性

LangSmith 应用属性身份提供商属性匹配优先级
displayNamedisplayName11
externalIdobjectId
membersmembers
  1. 组必须遵循组命名约定部分描述的命名约定。 如果您的公司有组命名策略,您应该改为从 description 身份提供商属性进行映射,并根据组命名约定部分设置描述。

步骤 1 - 配置 SAML SSO(仅限云)

SAML SSO 配置有两种场景:
  1. 如果您的组织已经配置了 SAML SSO,您应该跳过初始添加应用程序的步骤(从 Okta 集成网络添加应用程序创建新的 Entra ID 应用程序集成),因为您已经配置了应用程序,只需要启用配置。
  2. 如果您是首次与 SCIM 一起配置 SAML SSO,请先按照说明设置 SAML SSO,_然后_按照此处的说明启用 SCIM。

NameID 格式

LangSmith 使用 SAML NameID 来标识用户。NameID 是 SAML 响应中的必填字段,不区分大小写。 NameID 必须:
  1. 对每个用户唯一。
  2. 是一个永不更改的持久值,例如随机生成的唯一用户 ID。
  3. 在每次登录尝试时完全匹配。它不应依赖于用户输入。
NameID 不应是电子邮件地址或用户名,因为电子邮件地址和用户名更有可能随时间变化,并且可能区分大小写。 NameID 格式必须是 Persistent,除非您使用的是需要不同格式的字段,例如电子邮件。

步骤 2 - 禁用 JIT 配置

在启用 SCIM 之前,请禁用即时(JIT)配置以防止自动和手动用户配置之间的冲突。

为云禁用 JIT

使用 PATCH /orgs/current/info 端点(欧盟(GCP)和美国(AWS):eu.api.smith.langchain.comaws.api.smith.langchain.com 上的相同路径):
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 配置。要禁用,请设置以下值:
commonEnv:
  - name: SELF_HOSTED_JIT_PROVISIONING_ENABLED
    value: "false"

步骤 3 - 生成 SCIM 令牌

在自托管环境中,下面的完整 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(有子域名)——有关更多详细信息,请参阅 ingress 文档
为您的组织生成 SCIM 令牌。此令牌将由您的 IdP 用于对 SCIM API 请求进行身份验证。确保环境变量设置正确,例如:
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 令牌值在此请求的响应之外不可用。存在以下附加端点:
  • 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 - 配置您的身份提供商

如果您使用 Azure Entra ID(以前称为 Azure AD)或 Okta,则有特定的身份提供商设置说明(请参阅 Azure Entra IDOkta)。上述要求和步骤适用于所有身份提供商。

Azure Entra ID 配置步骤

更多信息,请参阅 Microsoft 的文档
在自托管安装中,oid JWT 声明用作 sub。 有关更多详细信息,请参阅 Microsoft Learn 链接相关配置说明
步骤 1:在您的企业应用程序中配置 SCIM
  1. 使用特权角色(例如,Global Administrator)登录到 Azure 门户
  2. 导航到您现有的 LangSmith 企业应用程序。
  3. 在左侧导航中,选择 Manage > Provisioning
  4. 点击 Get started
步骤 2:配置管理员凭据
  1. Admin Credentials 下:
    • Tenant URL
      • 美国(GCP):https://api.smith.langchain.com/scim/v2
      • 欧盟(GCP):https://eu.api.smith.langchain.com/scim/v2
      • 美国(AWS):https://aws.api.smith.langchain.com/scim/v2
      • 自托管:<langsmith_url>/scim/v2
    • Secret Token:输入步骤 3 中生成的 SCIM 令牌。
  2. 点击 Test Connection 以验证配置。
  3. 点击 Save
步骤 3:配置属性映射 Mappings 下配置以下属性映射: 用户属性 Target Object Actions 设置为 CreateUpdate(为安全起见,开始时禁用 Delete):
LangSmith 应用属性Microsoft Entra ID 属性匹配优先级
userNameuserPrincipalName
activeNot([IsSoftDeleted])
emails[type eq "work"].valuemail1
name.formatteddisplayNameJoin(" ", [givenName], [surname])2
externalIdobjectId31
  1. 用户的电子邮件地址必须存在于 Entra ID 中。
  2. 如果您的 displayName 不符合 Firstname Lastname 的格式,请使用 Join 表达式。
  3. 为避免不一致,这应与 SAML NameID 断言和 sub OAuth2.0 声明匹配。对于云中的 SAML SSO,必需的声明 Unique User Identifier (Name ID) 应为 user.objectIDName identifier format 应为 persistent
组属性 Target Object Actions 仅设置为 CreateUpdate(为安全起见,开始时禁用 Delete):
LangSmith 应用属性Microsoft Entra ID 属性匹配优先级
displayNamedisplayName11
externalIdobjectId
membersmembers
  1. 组必须遵循组命名约定部分描述的命名约定。 如果您的公司有组命名策略,您应该改为从 description Microsoft Entra ID 属性进行映射,并根据组命名约定部分设置描述。
步骤 4:分配用户和组
  1. Applications > Applications 下,选择您的 LangSmith 企业应用程序。
  2. Assignments 选项卡下,点击 Assign,然后选择 Assign to PeopleAssign to Groups
  3. 进行所需的选择,然后点击 AssignDone
步骤 5:启用配置
  1. Provisioning 下将 Provisioning Status 设置为 On
  2. 监控初始同步以确保用户和组被正确配置。
  3. 验证后,为用户和组映射启用 Delete 操作。
有关故障排除,请参阅 SAML SSO 常见问题。如果您在设置 SCIM 时遇到问题,请通过 support.langchain.com 联系 LangChain 支持团队。

Okta 配置步骤

您必须使用 Okta Lifecycle Management 产品。此产品层级是在 Okta 上使用 SCIM 所必需的。
支持的功能
  • 创建用户
  • 更新用户属性
  • 停用用户
  • 组推送(不支持组重命名
  • 导入用户
  • 导入组
步骤 1:从 Okta 集成网络添加应用程序
如果您已经通过 SAML(云)或 OAuth2.0 与 OIDC(自托管)配置了 SSO 登录,请跳过此步骤。
有关云,请参阅 SAML SSO 设置;有关自托管,请参阅 OAuth2.0 设置 步骤 2:配置 API 集成
  1. 在 General 选项卡中,确保 LangSmithUrl 根据步骤 1的说明填写
  2. 在 Provisioning 选项卡中,选择 Integration
  3. 选择 Edit,然后选择 Enable API integration
  4. 对于 API 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. 在 Assignments 选项卡中分配用户和/或组。分配的用户将在您的 LangSmith 组中创建和管理。
步骤 3:配置用户配置设置
  1. 配置配置:在 Provisioning > To App > Provisioning to App 下,点击 Edit,然后选中 Create UsersUpdate User AttributesDeactivate Users
  2. <application_name> Attribute Mappings 下,按如下所示设置用户属性映射,并删除其余部分:
SCIM Okta 用户属性映射 步骤 4:推送组
Okta 不支持除组名本身之外的组属性,因此组名_必须_遵循组命名约定部分描述的命名约定。
按照 Okta 的启用组推送说明配置要按名称或按规则推送的组。

其他身份提供商

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

SSO 组同步(替代方案)

SSO 组同步适用于配置了 SAML SSO(云)或 OIDC(自托管)的企业计划上的组织。联系销售以了解更多信息。
SSO 组同步是 SCIM 的更简单替代方案,适用于无法或不愿配置 SCIM 组推送的组织。LangSmith 不是在单独的同步间隔从 IdP 向 LangSmith 推送组,而是在登录时直接从 SSO 令牌中的可配置声明读取组成员身份,并使用与 SCIM 相同的命名约定应用组织级和工作区级角色分配。 这是 GitLab(SAML 组链接)、Grafana(团队同步)、HashiCorp Vault(groups_claim)和 Atlassian(JIT 组分配)使用的成熟模式。

何时使用 SSO 组同步与 SCIM

SSO 组同步和 SCIM 在技术上可以共存(每个仅管理标记为其自身配置方法的身份),但我们建议每个组织选择一种机制,而不是两者都选,以避免混淆优先级行为。
SSO 组同步SCIM
同步触发器在每次 SSO 登录时从 IdP 主动推送(约 1 小时间隔)
IdP 管理员参与最小化,只需在 SSO 令牌中包含组必需,配置 SCIM 配置应用程序
取消配置滞后直到下次登录通过 IdP 推送近实时
命名约定重用 SCIM 约定SCIM 约定
自定义分隔符重用组织级 scim_group_name_separatorscim_group_name_separator
当 IdP 管理员参与最小化且响应式(登录时)同步可接受时,选择 SSO 组同步。当需要主动配置/取消配置和近实时组成员身份更新时,选择 SCIM

配置

  1. 在您的 IdP 中:将用户的组成员身份添加到 SSO 令牌声明(默认声明名称:groups)。组名必须遵循 SCIM 命名约定
  2. 在 LangSmith 中:转到 SettingsMembers and rolesSSO ConfigurationSSO Groups Sync 并配置以下内容:
    设置描述
    Enable SSO Groups Sync根据 SSO 令牌中的组成员身份自动分配工作区角色。
    Groups claim field(默认 groupsSSO 令牌中包含组成员身份的声明名称。
    Sync workspace/role assignments在每次 SSO 登录时根据组名更新工作区成员身份和角色。
    Require matching group to sign in如果 SSO 令牌中没有匹配命名约定的组,则阻止登录。
您也可以通过向 SSO 设置端点发送 PATCH 来通过 API 配置这些设置:
curl -X PATCH $LANGCHAIN_ENDPOINT/api/v1/orgs/current/sso-settings/$SSO_PROVIDER_ID \
  -H "X-Api-Key: $LANGCHAIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sso_groups_enabled": true,
    "sso_groups_claim_field": "groups",
    "sso_groups_role_sync_enabled": true,
    "sso_groups_required": false
  }'
禁用 SSO 组同步不会移除现有访问权限。由 SSO 组配置的用户将保留其当前访问权限,直到下次登录。

配置您的 IdP 以发出组 SAML 属性(云)

本节仅适用于企业云。自托管客户在其 OIDC IdP 中直接配置组,请参阅自托管上的 SSO 组同步
要使用户的组成员身份在登录时对 LangSmith 可见,您需要做两件事:
  1. 配置您的 IdP 的 SAML 应用程序以发出多值组属性。
  2. 添加一个匹配的条目到 Supabase 属性映射,以便该属性流向 JWT(选中 Array)。
要求:
  • IdP 属性名称(例如,groups)必须与 Supabase 属性映射条目和 Groups claim field 值(默认 groups)都匹配。
  • 该属性必须是多值的(字符串列表),而不是单个分隔字符串。如果您的 IdP 仅支持单值属性,您需要为每个组发出一个属性语句。
  • 每个值必须是遵循 SCIM 命名约定的组名。
  • 只有名称匹配约定的组才会被处理。LangSmith 会忽略不符合其命名约定的组,例如组织范围的目录组或应用程序分配组。您不需要在 IdP 端过滤这些——发出所有组,LangSmith 会跳过不相关的组。
每个 IdP 的设置:
在 LangSmith SAML 应用程序中:
  1. DirectoryProfile Editor → 选择 LangSmith 应用程序的用户配置文件。
  2. 添加一个名为 groups 的自定义属性,Typestring array
  3. Sign On → 编辑 SAML 设置并添加属性语句:
    • Namegroups
    • Name formatUnspecified(或 Basic
    • FilterMatches regex,使用 .* 发送所有组,或使用更严格的正则表达式(例如,^LS:.*)限制为 LangSmith 前缀的组。

组命名示例

组名遵循 SCIM 命名约定<workspace_role> 部分接受内置角色和按名称指定的自定义工作区角色
意图示例组名
组织管理员(在所有工作区授予工作区管理员)LS:Organization Admins
Production 中的工作区管理员LS:Organization User:Production:Admin
Engineering 中的工作区编辑者LS:Organization User:Engineering:Editor
Marketing 中的工作区查看者LS:Organization User:Marketing:Viewer
Production 中的自定义角色 AnnotatorsLS:Organization User:Production:Annotators

行为

  • 命名约定:组名遵循与 SCIM 相同的格式(例如,LS:Organization Admins 表示组织管理员,LS:Organization User:Production:Editor 表示工作区范围)。完整格式请参阅组命名约定。分隔符通过 scim_group_name_separator 按组织配置,并与 SCIM 共享。
  • 格式错误的组名:不符合约定的组名会被静默跳过(记录日志),并且不会阻止有效组的登录。
  • 登录门控:当启用 Require matching group to sign in 且 SSO 令牌包含零个匹配组时,登录将被阻止。
  • 优先级:SSO 组同步不会修改 SCIM 来源的、手动分配的或 JIT 配置的成员身份。它对其自身的分配具有完全权威性,并在每次登录时根据令牌的组成员身份替换它们。
  • 组织管理员传播:如果用户从其组中获得组织管理员角色,他们将在所有工作区中被授予工作区管理员(与 SCIM 行为相同)。

注意事项

  • 取消配置延迟:与 SCIM(主动推送)不同,SSO 组同步仅在登录时更新。从 IdP 中移除组的用户将保留其现有的工作区访问权限,直到下次 LangSmith 登录。Require matching group to sign in 门控通过在下次登录时完全阻止用户来缓解此问题。
  • 无回溯同步:更改角色映射或启用该功能不会更新现有用户,直到他们再次登录。
  • 需要命名约定:客户必须按照 SCIM 约定命名其 IdP 组。如果您的 IdP 组遵循不同的命名策略,使用基于 description 映射的 SCIM(请参阅组属性)可能更合适。