- 设置访问控制:配置基于角色的访问控制(RBAC)以管理工作区内的用户权限,包括创建自定义角色并将其分配给用户。
- SAML SSO(企业计划):为企业客户设置使用 SAML 2.0 的单点登录身份验证,包括针对流行身份提供商的配置。
- SCIM 用户配置(企业计划):使用 SCIM 在您的身份提供商和 LangSmith 之间自动化用户配置和取消配置。
设置访问控制
在设置访问控制之前,阅读管理概览页面可能会有所帮助。
workspaces:manage 权限的用户可以管理工作区设置,拥有 workspaces:manage-members 权限的用户可以添加、移除和更新工作区成员。内置的 Workspace Admin 角色包含这两种权限。
有关工作区角色及其权限的完整参考,请参阅基于角色的访问控制指南。有关每个角色可以执行的具体操作,请参阅组织和工作区操作参考。
创建角色
默认情况下,LangSmith 附带一组系统角色:Admin:对工作区内的所有资源拥有完全访问权限。Viewer:对工作区内的所有资源拥有只读访问权限。Editor:拥有除工作区管理(添加/移除用户、更改角色、配置服务密钥)之外的所有权限。
组织管理员可以创建自定义角色以满足您的需求。
要创建角色,请导航到组织设置页面的 Members and roles 部分中的 Roles 选项卡。请注意,您创建的新角色将在您组织内的所有工作区中可用。
点击 Create Role 按钮以创建新角色。将打开一个 Create role 表单。

将角色分配给用户
设置好角色后,您可以将它们分配给用户。要将角色分配给用户,请导航到组织设置页面的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 登录才能将此设置更新为
Only SAML SSO。这是为了确保 SAML 设置有效并避免将用户锁定在组织之外。先决条件
- 您的组织必须在企业计划上。
- 您的身份提供商(IdP)必须支持 SAML 2.0 标准。
- 只有
组织管理员可以配置 SAML SSO。
初始配置
-
在您的 IdP 中:配置一个 SAML 应用程序,包含以下详细信息,然后复制元数据 URL 或 XML 用于步骤 3。
以下 URL 取决于您的组织位于美国(GCP)、欧盟(GCP)还是美国(AWS)云区域。请确保选择正确的链接。
- 单点登录 URL(或 ACS URL):
- 受众 URI(或 SP 实体 ID):
- Name ID 格式:电子邮件地址。
- 应用程序用户名:电子邮件地址。
- 必需的声明:
sub和email。
-
在 LangSmith 中:转到 Settings -> Members and roles -> SSO Configuration。填写所需信息并提交以激活 SSO 登录:
-
填写
SAML metadata URL或SAML metadata XML。 -
选择
Default workspace role和Default workspaces。通过 SSO 登录的新用户将被添加到指定的工作区,并具有所选角色。Default workspace role和Default workspaces是可编辑的。更新后的设置仅适用于新用户,不适用于现有用户。- (即将推出)
SAML metadata URL和SAML metadata XML是可编辑的。这通常仅在加密密钥轮换/过期或元数据 URL 已更改但仍使用相同 IdP 时才需要。
-
填写
Supabase 属性映射
Supabase 属性映射是一项仅限云的功能。自托管部署直接与 IdP 配置 SAML/OIDC 属性——请参阅使用 OAuth2.0 和 OIDC 设置 SSO。
email 和 sub)传递到用户的 JWT。您的 IdP 发出的任何额外的、非标准的 SAML 属性(例如,用于 SSO 组同步的 groups)必须通过 Supabase 显式转发,LangSmith 才能读取它。
属性流(1:1):
- IdP:发出具有配置名称的 SAML 属性(例如,
groups)。 - Supabase:仅当属性名称出现在 SSO 提供商的 Supabase 属性映射表中时,才将属性转发到用户的 JWT。标准属性会自动转发;非标准属性除非明确列出,否则会被丢弃。
- LangSmith:按名称读取 JWT 声明(例如,SSO 组同步的 Groups claim field 的值)。
配置
在 Settings → Members and roles → SSO Configuration 中,滚动到 Supabase Attribute Mapping 部分,并为要转发的每个非标准属性添加一行:| 列 | 描述 |
|---|---|
| Attribute name | 您的 IdP 发出的 SAML 属性名称。必须与 LangSmith 下游期望的 JWT 声明名称匹配(对于 SSO 组同步,这与 Groups claim field 值匹配)。 |
| Array | 如果属性是多值的(字符串列表),请选中此项。对于标量(单值)属性,请取消选中。示例:为 groups 选中此项;为 full_name 取消选中。 |
Entra ID (Azure)
更多信息,请参阅 Microsoft 的文档。 步骤 1:创建新的 Entra ID 应用程序集成-
使用特权角色(例如,
Global Administrator)登录到 Azure 门户。在左侧导航窗格中,选择Entra ID服务。 - 导航到 Enterprise Applications,然后选择 All Applications。
- 点击 Create your own application。
-
在 Create your own application 窗口中:
- 为您的应用程序输入一个名称(例如,
LangSmith)。 - 选择 Integrate any other application you don’t find in the gallery (Non-gallery)。
- 为您的应用程序输入一个名称(例如,
- 点击 Create。
- 打开您创建的企业应用程序。
- 在左侧导航中,选择 Manage > Single sign-on。
- 在 Single sign-on 页面上,点击 SAML。
-
更新 Basic SAML Configuration:
Identifier (Entity ID):Reply URL (Assertion Consumer Service URL):- 将
Relay State、Logout Url和Sign on URL留空。 - 点击 Save。
-
确保必需的声明存在,Namespace 为:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims:sub:user.objectid。emailaddress:user.userprincipalname或user.mail(如果使用后者,请确保所有用户在Contact Information下的Email字段已填写)。- (可选)对于 SCIM,请参阅设置文档以获取有关
Unique User Identifier (Name ID)的具体说明。
- 在 SAML-based Sign-on 页面上,在 SAML Certificates 下,复制 App Federation Metadata URL。
Fill in required information 步骤下的说明操作,使用上一步中的元数据 URL。
步骤 4:验证 SSO 设置
-
在 Entra ID 中将应用程序分配给用户/组:
- 选择 Manage > Users and groups。
- 点击 Add user/group。
-
在 Add Assignment 窗口中:
- 在 Users 下,点击 None Selected。
- 搜索您想要分配给企业应用程序的用户,然后点击 Select。
- 验证用户已被选中,然后点击 Assign。
- 让用户通过 SSO Configuration 页面上的唯一登录 URL 登录,或转到 Manage > Single sign-on 并选择 Test single sign-on with (application name)。
- 确保您使用具有适当权限的管理员帐户登录。
- 在管理控制台中,转到 Menu -> Apps -> Web and mobile apps。
- 点击 Add App,然后点击 Add custom SAML app。
- 输入应用程序名称,并可选择上传图标。点击 Continue。
- 在 Google Identity Provider 详细信息页面上,下载 IDP metadata 并将其保存用于步骤 2。点击 Continue。
-
在
Service Provider Details窗口中,输入:ACS URL:Entity ID:- 将
Start URL和Signed response框留空。 - 将
Name ID格式设置为EMAIL,并将Name ID保留为默认值(Basic Information > Primary email)。 - 点击
Continue。
-
使用
Add mapping确保必需的声明存在:Basic Information > Primary email->email
Fill in required information 步骤下的说明操作,使用上一步中的 IDP metadata 作为元数据 XML。
步骤 3:在 Google 中启用 SAML 应用程序
-
在
Menu -> Apps -> Web and mobile apps下选择 SAML 应用程序 -
点击
User access。 -
启用服务:
-
要为组织中的所有人启用服务,请点击
On for everyone,然后点击Save。 -
要为组织单位启用服务:
- 在左侧,选择组织单位,然后点击
On。 - 如果服务状态设置为
Inherited并且您希望保留更新后的设置(即使父设置更改),请点击Override。 - 如果服务状态设置为
Overridden,请点击Inherit以恢复为与其父级相同的设置,或点击Save以保留新设置(即使父设置更改)。
- 在左侧,选择组织单位,然后点击
- 要为跨组织单位或组织单位内的一组用户启用服务,请选择一个访问组。详情请访问使用组自定义服务访问权限。
-
要为组织中的所有人启用服务,请点击
- 确保用户用于登录 LangSmith 的电子邮件地址与其用于登录 Google 域的电子邮件地址匹配。
Okta
支持的功能
- IdP 发起的 SSO(单点登录)
- SP 发起的 SSO
- 即时配置
- 强制仅使用 SSO
配置步骤
更多信息,请参阅 Okta 的文档。 步骤 1:创建并配置 Okta SAML 应用程序通过 Okta 集成网络(推荐)
- 登录 Okta。
- 在右上角,选择 Admin。该按钮在管理区域中不可见。
- 选择
Browse App Integration Catalog。 - 找到并选择 LangSmith 应用程序。
- 在应用程序概述页面上,选择 Add Integration。
- 将
ApiUrlBase留空。 - 填写
AuthHost:- 美国(GCP):
auth.langchain.com - 欧盟(GCP):
eu.auth.langchain.com - 美国(AWS):
aws.auth.langchain.com
- 美国(GCP):
- (可选,如果计划同时使用 SCIM)填写
LangSmithUrl:- 美国(GCP):
api.smith.langchain.com - 欧盟(GCP):
eu.api.smith.langchain.com - 美国(AWS):
aws.api.smith.langchain.com
- 美国(GCP):
- 在 Application Visibility 下,保持复选框未选中。
- 选择 Next。
- 选择
SAML 2.0。 - 填写
Sign-On Options:Application username format:EmailUpdate application username on:Create and updateAllow users to securely see their password:保持未选中。
- 从 Sign On Options 页面复制 Metadata URL 以在下一步中使用。
- 以管理员身份登录 Okta,并转到 Okta Admin console。
- 在 Applications > Applications 下,点击 Create App Integration。
- 选择 SAML 2.0。
-
输入
App name(例如,LangSmith)并可选择输入 App logo,然后点击 Next。 -
在 Configure SAML 页面中输入以下信息:
Single sign-on URL(ACS URL)。保持Use this for Recipient URL and Destination URL选中:Audience URI (SP Entity ID):Name ID format:Persistent。Application username:email。- 将其余字段留空或设置为默认值。
- 点击 Next。
- 点击 Finish。
- 从 Sign On 页面复制 Metadata URL 以在下一步中使用。
- 在 Applications > Applications 下,选择步骤 1 中创建的 SAML 应用程序。
- 在 Assignments 选项卡下,点击 Assign,然后选择 Assign to People 或 Assign to Groups。
- 进行所需的选择,然后点击 Assign 和 Done。
SSO Configuration 页面上的唯一登录 URL 登录,或让用户从其 Okta 仪表板中选择应用程序。
SP 发起的 SSO
配置服务提供商发起的 SSO 后,用户可以使用唯一的登录 URL 登录。您可以在 LangSmith UI 的 Organization members and roles 下的 SSO configuration 中找到此 URL。为您的组织设置 SCIM
正在寻找比 SCIM 更轻量级的替代方案,无需 IdP 管理员参与即可推送组?请参阅下面的 SSO 组同步——它在登录时直接从 SSO 令牌读取组成员身份,并重用相同的命名约定。
SCIM 消除了手动用户管理的需要,并确保用户访问始终与组织的身份系统保持最新。这允许:
- 自动化用户管理:根据用户在 IdP 中的状态,自动将用户添加、更新和移除出 LangSmith。
- 减少管理开销:无需跨多个系统手动管理用户访问。
- 提高安全性:离开组织的用户会自动从 LangSmith 取消配置。
- 一致的访问控制:用户属性和组成员身份在系统之间同步。
- 扩展团队访问控制:高效管理拥有多个工作区和自定义角色的大型团队。
- 角色分配:为用户组选择特定的组织角色和工作区角色。
要求
先决条件
- 您的组织必须在企业计划上。
- 您的身份提供商(IdP)必须支持 SCIM 2.0。
- 只有组织管理员可以配置 SCIM。
- 对于云客户:您的组织必须可配置 SAML SSO。
- 对于自托管客户:必须启用 OAuth with Client Secret 身份验证模式。
- 对于自托管客户,必须允许从身份提供商到 LangSmith 的网络流量:
SCIM 连接通常需要 HTTP/1.1 或更高版本。如果您的客户端使用 HTTP/1.0,您可能会遇到
426 Upgrade Required 错误。角色优先级
当用户属于同一工作区的多个组时,适用以下优先级:- 组织管理员组具有最高优先级。这些组中的用户将在所有工作区中成为
Admin。 - 最近创建的特定于工作区的组优先于其他工作区组。
当组被删除或用户从组中移除时,他们的访问权限将根据其剩余的组成员身份进行更新,并遵循优先级规则。SCIM 组成员身份会覆盖手动分配的角色或通过即时(JIT)配置分配的角色。我们建议禁用 JIT 配置以避免冲突。有关更多详细信息,请参阅在 SSO 组织中管理用户访问。
电子邮件验证
仅在云中,使用 SCIM 创建新用户会向用户发送一封电子邮件。 他们必须通过点击此电子邮件中的链接来验证其电子邮件地址。 链接在 24 小时后过期,如果需要,可以通过通过 SCIM 移除并重新添加用户来重新发送。属性和映射
组命名约定
组成员身份映射到 LangSmith 工作区成员身份和工作区角色,并遵循特定的命名约定。默认情况下,组件之间的分隔符是冒号(:),但您可以为您的组织配置自定义分隔符。
组织管理员组
格式:<optional_prefix>Organization Admin 或 <optional_prefix>Organization Admins
示例:
LS:Organization AdminsGroups-Organization AdminsOrganization Admin
<optional_prefix><org_role_name><separator><workspace_name><separator><workspace_role_name>
分隔符默认为 :(冒号)。支持的分隔符有::(冒号)、-(连字符)、_(下划线)、 (空格)、&(与号)。
使用默认冒号分隔符的示例:
LS:Organization User:Production:AnnotatorsGroups-Organization User:Engineering:DevelopersOrganization User:Marketing:Viewers
LS-Organization User-Production-AnnotatorsOrganization 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 上的相同路径):
:(冒号)、-(连字符)、_(下划线)、 (空格)或 &(与号)。默认为 :(冒号)。
更改分隔符不会重命名现有的 SCIM 组。如果您更改分隔符,还必须在身份提供商中更新组名以使用新的分隔符。
映射
虽然特定于身份提供商的说明可能有所不同,但这些映射显示了 LangSmith SCIM 集成支持的内容:用户属性
| LangSmith 应用属性 | 身份提供商属性 | 匹配优先级 |
|---|---|---|
userName1 | 电子邮件地址 | |
active | !deactivated | |
emails[type eq "work"].value | 电子邮件地址2 | |
name.formatted | displayName 或 givenName + familyName3 | |
givenName | givenName | |
familyName | familyName | |
externalId | sub4 | 1 |
userName不是 LangSmith 所必需的- 电子邮件地址是必需的
- 如果您的
displayName不符合Firstname Lastname的格式,请使用计算表达式 - 为避免不一致,对于云客户,这应与 SAML
NameID断言匹配,对于自托管客户,则与subOAuth2.0 声明匹配。
组属性
| LangSmith 应用属性 | 身份提供商属性 | 匹配优先级 |
|---|---|---|
displayName | displayName1 | 1 |
externalId | objectId | |
members | members |
步骤 1 - 配置 SAML SSO(仅限云)
SAML SSO 配置有两种场景:- 如果您的组织已经配置了 SAML SSO,您应该跳过初始添加应用程序的步骤(从 Okta 集成网络添加应用程序或创建新的 Entra ID 应用程序集成),因为您已经配置了应用程序,只需要启用配置。
- 如果您是首次与 SCIM 一起配置 SAML SSO,请先按照说明设置 SAML SSO,_然后_按照此处的说明启用 SCIM。
NameID 格式
LangSmith 使用 SAML NameID 来标识用户。NameID 是 SAML 响应中的必填字段,不区分大小写。 NameID 必须:- 对每个用户唯一。
- 是一个永不更改的持久值,例如随机生成的唯一用户 ID。
- 在每次登录尝试时完全匹配。它不应依赖于用户输入。
Persistent,除非您使用的是需要不同格式的字段,例如电子邮件。
步骤 2 - 禁用 JIT 配置
在启用 SCIM 之前,请禁用即时(JIT)配置以防止自动和手动用户配置之间的冲突。为云禁用 JIT
使用PATCH /orgs/current/info 端点(欧盟(GCP)和美国(AWS):eu.api.smith.langchain.com 和 aws.api.smith.langchain.com 上的相同路径):
为自托管禁用 JIT
从 LangSmith chart 版本 0.11.14 开始,您可以使用 SSO 为您的自托管组织禁用 JIT 配置。要禁用,请设置以下值:步骤 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 文档。GET /v1/platform/orgs/current/scim/tokensGET /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 ID、Okta)。上述要求和步骤适用于所有身份提供商。
Azure Entra ID 配置步骤
更多信息,请参阅 Microsoft 的文档。在自托管安装中,
oid JWT 声明用作 sub。
有关更多详细信息,请参阅 Microsoft Learn 链接
和相关配置说明。- 使用特权角色(例如,
Global Administrator)登录到 Azure 门户。 - 导航到您现有的 LangSmith 企业应用程序。
- 在左侧导航中,选择 Manage > Provisioning。
- 点击 Get started。
-
在 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
- 美国(GCP):
- Secret Token:输入步骤 3 中生成的 SCIM 令牌。
-
Tenant URL:
- 点击 Test Connection 以验证配置。
- 点击 Save。
Mappings 下配置以下属性映射:
用户属性
将 Target Object Actions 设置为 Create 和 Update(为安全起见,开始时禁用 Delete):
| LangSmith 应用属性 | Microsoft Entra ID 属性 | 匹配优先级 |
|---|---|---|
userName | userPrincipalName | |
active | Not([IsSoftDeleted]) | |
emails[type eq "work"].value | mail1 | |
name.formatted | displayName 或 Join(" ", [givenName], [surname])2 | |
externalId | objectId3 | 1 |
- 用户的电子邮件地址必须存在于 Entra ID 中。
- 如果您的
displayName不符合Firstname Lastname的格式,请使用Join表达式。 - 为避免不一致,这应与 SAML NameID 断言和
subOAuth2.0 声明匹配。对于云中的 SAML SSO,必需的声明Unique User Identifier (Name ID)应为user.objectID,Name identifier format应为persistent。
Create 和 Update(为安全起见,开始时禁用 Delete):
| LangSmith 应用属性 | Microsoft Entra ID 属性 | 匹配优先级 |
|---|---|---|
displayName | displayName1 | 1 |
externalId | objectId | |
members | members |
- 在 Applications > Applications 下,选择您的 LangSmith 企业应用程序。
- 在 Assignments 选项卡下,点击 Assign,然后选择 Assign to People 或 Assign to Groups。
- 进行所需的选择,然后点击 Assign 和 Done。
- 在 Provisioning 下将 Provisioning Status 设置为
On。 - 监控初始同步以确保用户和组被正确配置。
- 验证后,为用户和组映射启用
Delete操作。
Okta 配置步骤
您必须使用 Okta Lifecycle Management 产品。此产品层级是在 Okta 上使用 SCIM 所必需的。
支持的功能
- 创建用户
- 更新用户属性
- 停用用户
- 组推送(不支持组重命名)
- 导入用户
- 导入组
步骤 1:从 Okta 集成网络添加应用程序
如果您已经通过 SAML(云)或 OAuth2.0 与 OIDC(自托管)配置了 SSO 登录,请跳过此步骤。
- 在 General 选项卡中,确保
LangSmithUrl根据步骤 1的说明填写 - 在 Provisioning 选项卡中,选择
Integration。 - 选择
Edit,然后选择Enable API integration。 - 对于 API Token,粘贴您上面生成的 SCIM 令牌。
- 保持
Import Groups选中。 - 要验证配置,请选择 Test API Credentials。
- 选择 Save。
- 保存 API 集成详细信息后,左侧会出现新的设置选项卡。选择
To App。 - 选择 Edit。
- 选择 Create Users、Update Users 和 Deactivate Users 的 Enable 复选框。
- 选择 Save。
- 在 Assignments 选项卡中分配用户和/或组。分配的用户将在您的 LangSmith 组中创建和管理。
- 配置配置:在
Provisioning > To App > Provisioning to App下,点击Edit,然后选中Create Users、Update User Attributes和Deactivate Users。 - 在
<application_name> Attribute Mappings下,按如下所示设置用户属性映射,并删除其余部分:

Okta 不支持除组名本身之外的组属性,因此组名_必须_遵循组命名约定部分描述的命名约定。
其他身份提供商
其他身份提供商尚未经过测试,但根据其 SCIM 实现可能可以正常工作。SSO 组同步(替代方案)
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_separator | scim_group_name_separator |
配置
-
在您的 IdP 中:将用户的组成员身份添加到 SSO 令牌声明(默认声明名称:
groups)。组名必须遵循 SCIM 命名约定。 -
在 LangSmith 中:转到 Settings → Members and roles → SSO Configuration → SSO Groups Sync 并配置以下内容:
设置 描述 Enable SSO Groups Sync 根据 SSO 令牌中的组成员身份自动分配工作区角色。 Groups claim field(默认 groups)SSO 令牌中包含组成员身份的声明名称。 Sync workspace/role assignments 在每次 SSO 登录时根据组名更新工作区成员身份和角色。 Require matching group to sign in 如果 SSO 令牌中没有匹配命名约定的组,则阻止登录。
PATCH 来通过 API 配置这些设置:
配置您的 IdP 以发出组 SAML 属性(云)
本节仅适用于企业云。自托管客户在其 OIDC IdP 中直接配置组,请参阅自托管上的 SSO 组同步。
- 配置您的 IdP 的 SAML 应用程序以发出多值组属性。
- 添加一个匹配的条目到 Supabase 属性映射,以便该属性流向 JWT(选中 Array)。
- IdP 属性名称(例如,
groups)必须与 Supabase 属性映射条目和 Groups claim field 值(默认groups)都匹配。 - 该属性必须是多值的(字符串列表),而不是单个分隔字符串。如果您的 IdP 仅支持单值属性,您需要为每个组发出一个属性语句。
- 每个值必须是遵循 SCIM 命名约定的组名。
- 只有名称匹配约定的组才会被处理。LangSmith 会忽略不符合其命名约定的组,例如组织范围的目录组或应用程序分配组。您不需要在 IdP 端过滤这些——发出所有组,LangSmith 会跳过不相关的组。
- Okta
- Entra ID (Azure)
- Google Workspace
在 LangSmith SAML 应用程序中:
- Directory → Profile Editor → 选择 LangSmith 应用程序的用户配置文件。
- 添加一个名为
groups的自定义属性,Type 为string array。 - Sign On → 编辑 SAML 设置并添加属性语句:
- Name:
groups - Name format:
Unspecified(或Basic) - Filter:
Matches regex,使用.*发送所有组,或使用更严格的正则表达式(例如,^LS:.*)限制为 LangSmith 前缀的组。
- Name:
组命名示例
组名遵循 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 中的自定义角色 Annotators | LS: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(请参阅组属性)可能更合适。
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

