- 设置访问控制:配置基于角色的访问控制(RBAC)以管理工作区内的用户权限,包括创建自定义角色并将其分配给用户。
- SAML SSO(企业计划):使用 SAML 2.0 为企业客户设置单点登录身份验证,包括为流行的身份提供商配置。
- SCIM 用户配置(企业计划):使用 SCIM 自动化身份提供商和 LangSmith 之间的用户配置和取消配置。
设置访问控制
在设置访问控制之前,阅读管理概述页面可能会有所帮助。
workspace:manage 权限的用户才能管理工作区的访问控制设置。
创建角色
默认情况下,LangSmith 附带一组系统角色:Admin:对工作区内的所有资源具有完全访问权限。Viewer:对工作区内的所有资源具有只读访问权限。Editor:除工作区管理(添加/删除用户、更改角色、配置服务密钥)外,具有完全权限。
Organization Admins 可以创建自定义角色以满足您的需求。
要创建角色,请导航到组织设置页面的 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 配置仅适用于新用户,即尚未通过其他登录方法使用相同电子邮件地址访问组织的用户。
登录方法和访问
一旦你完成了组织的 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 对于美国和欧盟地区是不同的。确保选择正确的链接。
- 单点登录 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 时才有必要。
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 的登录页面上,在 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 Integration Network(推荐)
- 登录到 Okta。
- 在右上角,选择 Admin。从管理区域看不到此按钮。
- 选择
Browse App Integration Catalog。 - 查找并选择 LangSmith 应用程序。
- 在应用程序概述页面上,选择 Add Integration。
- 将
ApiUrlBase留空。 - 填写
AuthHost:- 美国:
auth.langchain.com - 欧盟:
eu.auth.langchain.com
- 美国:
- (可选,如果还计划使用 SCIM)填写
LangSmithUrl:- 美国:
api.smith.langchain.com - 欧盟:
eu.api.smith.langchain.com
- 美国:
- 在 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 下找到此信息。为组织设置 SCIM
跨域身份管理系统(SCIM)是一个开放标准,允许自动化用户配置。使用 SCIM,你可以在 LangSmith 组织和工作区中自动配置和取消配置用户,使用户访问与组织的身份提供商保持同步。
SCIM 消除了手动用户管理的需要,并确保用户访问始终与组织的身份系统保持最新。这允许:
- 自动化用户管理:根据用户在 IdP 中的状态,自动在 LangSmith 中添加、更新和删除用户。
- 减少管理开销:无需在多个系统中手动管理用户访问。
- 提高安全性:离开组织的用户会自动从 LangSmith 中取消配置。
- 一致的访问控制:用户属性和组成员资格在系统之间同步。
- 扩展团队访问控制:高效管理具有多个工作区和自定义角色的大型团队。
- 角色分配:为用户组选择特定的组织角色和工作区角色。
要求
先决条件
- 你的组织必须处于企业计划。
- 你的身份提供商(IdP)必须支持 SCIM 2.0。
- 只有组织管理员可以配置 SCIM。
- 对于云客户:SAML SSO 必须可为你的组织配置。
- 对于自托管客户:必须启用使用客户端密钥的 OAuth 身份验证模式。
- 对于自托管客户,必须允许从身份提供商到 LangSmith 的网络流量:
角色优先级
当用户属于同一工作区的多个组时,以下优先级适用:- 组织管理员组具有最高优先级。这些组中的用户将在所有工作区中为
Admin。 - 最近创建的工作区特定组优先于其他工作区组。
当删除组或从组中删除用户时,他们的访问权限会根据其剩余的组成员资格进行更新,遵循优先级规则。SCIM 组成员资格将覆盖手动分配的角色或通过即时(JIT)配置分配的角色。我们建议禁用 JIT 配置以避免冲突。
电子邮件验证
仅在云中,使用 SCIM 创建新用户会向用户触发电子邮件。 他们必须通过单击此电子邮件中的链接来验证其电子邮件地址。 链接在 24 小时后过期,如果需要,可以通过 SCIM 删除并重新添加用户来重新发送。属性和映射
组命名约定
组成员资格使用特定命名约定映射到 LangSmith 工作区成员资格和工作区角色: 组织管理员组 格式:<optional_prefix>Organization Admin 或 <optional_prefix>Organization Admins
示例:
LS:Organization AdminsGroups-Organization AdminsOrganization Admin
<optional_prefix><org_role_name>:<workspace_name>:<workspace_role_name>
示例:
LS:Organization User:Production:AnnotatorsGroups-Organization User:Engineering:DevelopersOrganization User:Marketing:Viewers
映射
虽然根据身份提供商的具体说明可能有所不同,但这些映射显示了 LangSmith SCIM 集成支持的内容:用户属性
| LangSmith 应用程序属性 | 身份提供商属性 | 匹配优先级 |
|---|---|---|
userName1 | 电子邮件地址 | |
active | !deactivated | |
emails[type eq "work"].value | 电子邮件地址2 | |
name.formatted | displayName 或 givenName + familyName3 | |
givenName | givenName | |
familyName | familyName | |
externalId | sub4 | 1 |
- LangSmith 不需要
userName - 需要电子邮件地址
- 如果你的
displayName与Firstname Lastname格式不匹配,请使用计算的表达式 - 为避免不一致,对于云客户,这应该匹配 SAML
NameID断言,对于自托管,应该匹配subOAuth2.0 声明。
组属性
| LangSmith 应用程序属性 | 身份提供商属性 | 匹配优先级 |
|---|---|---|
displayName | displayName1 | 1 |
externalId | objectId | |
members | members |
步骤 1 - 配置 SAML SSO(仅限云)
SAML SSO 配置有两种情况:- 如果已为你的组织配置了 SAML SSO,你应该跳过最初添加应用程序的步骤(从 Okta Integration Network 添加应用程序 或创建新的 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 端点:
为自托管禁用 JIT
从 LangSmith chart 版本 0.11.14 开始,你可以为使用 SSO 的自托管组织禁用 JIT 配置。要禁用,请设置以下值:步骤 3 - 生成 SCIM bearer token
在自托管环境中,下方完整 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(有子域名)。详见入口配置文档。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)。上述要求和步骤适用于所有 IdP。
Azure Entra ID 配置步骤
更多信息可参阅 Microsoft 的官方文档。在自托管部署中,
oid JWT 声明会用作 sub。
请参阅 Microsoft Learn
以及相关配置说明了解更多细节。- 使用特权角色(例如
Global Administrator)登录到 Azure 门户。 - 导航到你现有的 LangSmith 企业应用程序。
- 在左侧导航中,选择 Manage > Provisioning。
- 单击 Get started。
-
在 Admin Credentials 下:
-
Tenant URL:
- 美国:
https://api.smith.langchain.com/scim/v2 - 欧盟:
https://eu.api.smith.langchain.com/scim/v2 - 自托管:
<langsmith_url>/scim/v2
- 美国:
- Secret Token:输入在步骤 3 中生成的 SCIM Bearer Token。
-
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 产品。此产品层级是使用 SCIM 在 Okta 上必需的。
支持的功能
- 创建用户
- 更新用户属性
- 停用用户
- 组推送(不支持组重命名)
- 导入用户
- 导入组
步骤 1:从 Okta Integration Network 添加应用程序
如果你已经通过 SAML(云)或 OAuth2.0 与 OIDC(自托管)配置了 SSO 登录,请跳过此步骤。
- 在 General 标签页中,确保
LangSmithUrl已根据 步骤 1 中的说明填写。 - 在 Provisioning 标签页中,选择
Integration。 - 选择
Edit然后Enable API integration。 - 对于 API Token,粘贴你在上一步中生成的 SCIM token。
- 勾选
Import Groups。 - 要验证配置,请选择 Test API Credentials。
- 选择 Save。
- 保存 API 集成详细信息后,左侧会显示新的设置标签页。选择
To App。 - 选择 Edit。
- 勾选 Create Users、Update Users 和 Deactivate Users。
- 选择 Save。
- 在 Assignments 标签页中分配用户和/或组。分配的用户和组将在你的 LangSmith 组中创建和管理。
- 配置预配:在
Provisioning > To App > Provisioning to App下点击Edit,然后勾选Create Users、Update User Attributes和Deactivate Users。 - 在
<application_name> Attribute Mappings下设置用户属性映射,并删除其余部分:
步骤 4:推送组
Okta 不支持除了组名本身之外的组属性,因此组名 必须 遵循组命名约定部分中描述的命名约定。