主题
基于角色的访问控制
本参考讲解 LangSmith 的基于角色访问控制(RBAC)系统,用于管理组织级和工作区级权限。
NOTE
RBAC(基于角色的访问控制)是一项用于管理工作区级权限的企业方案(Enterprise)功能。如果你对此功能感兴趣,请联系我们的销售团队。其他方案默认对所有用户使用 Admin 角色。
LangSmith 的 RBAC 系统管理工作区内用户的权限。RBAC 让你控制谁能访问你的 LangSmith 工作区以及他们在其中能做什么。
在 LangSmith 中,每个用户有:
- 一个组织角色,适用于整个组织(独立于工作区 RBAC)。
- Organization User 和 Organization Viewer 角色仅在处于 Plus 和 Enterprise 方案的组织中可用。在 Developer 组织(单工作区)中,所有用户默认被指派 Organization Admin 角色。
- 在他们所加入的每个工作区中,一个工作区角色(需要企业方案 RBAC 功能)。
在企业方案上,组织可以创建带细粒度权限组合的自定义工作区角色。
要学习如何设置 RBAC 并给用户指派角色,参阅用户管理指南。你的身份提供商也能通过 SCIM 群组或 SSO Groups Sync自动指派角色。
NOTE
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
角色类型
组织角色
组织角色独立于工作区 RBAC 功能,用于管理组织级的能力。这些角色由系统定义,无法被修改或扩展。Organization User 和 Organization Viewer 角色仅在处于 Plus 和 Enterprise 方案的组织中可用。在 Developer 组织(单工作区)中,所有用户默认被指派 Organization Admin 角色。
| 角色 | 描述 |
|---|---|
| Organization Admin | 管理组织配置、用户、计费和全限权限 |
| Organization Operator | 用于日常运营的对工作区和用户的管理访问,不含 admin 级特权 |
| Organization User | 对组织信息的读访问以及创建个人访问令牌的能力 |
| Organization Viewer | 对组织信息的只读访问 |
Organization admin
描述:管理所有组织配置、用户、计费和全限权限。
权限:
organization:manage- 对组织设置、SSO、安全、计费的完全控制organization:read- 对所有组织信息的读访问organization:pats:create- 创建组织级的个人访问令牌organization:pats:read- 查看每个组织成员的个人访问令牌organization:pats:manage- 停用、重新激活或删除任何组织成员的个人访问令牌
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
关键能力:
- 管理组织设置和品牌
- 配置 SSO 和身份验证方法
- 管理计费和订阅方案
- 创建和删除工作区
- 邀请和移除组织成员
- 查看、停用、重新激活和删除任何成员的个人访问令牌
- 向成员指派组织和工作区角色
- 创建并管理自定义角色
- 配置 RBAC 和 ABAC(基于属性的访问控制)策略
- 查看组织用量和分析
- 查看审计日志(Enterprise)
有关设置和管理你组织的详情,参阅管理概览。
Organization Operator
用于日常运营的管理访问,包括工作区和用户管理,但不能管理 Organization Admin 或创建组织级的服务密钥。
权限:
organization:manage- 对组织设置、工作区和非 admin 用户的控制organization:read- 对所有组织信息的读访问organization:pats:create- 创建个人访问令牌organization:pats:read- 查看每个组织成员的个人访问令牌organization:pats:manage- 停用、重新激活或删除任何组织成员的个人访问令牌
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
关键能力:
- 创建并管理工作区
- 邀请组织成员(除 Organization Admin 外的所有角色)
- 管理非 admin 组织成员(修改和移除 Organization User、Viewer 和 Operator)
- 查看、停用、重新激活和删除任何成员的个人访问令牌
- 向成员指派工作区角色
- 创建工作区级服务密钥和服务账户
- 查看组织用量和分析
- 查看审计日志(Enterprise)
限制:
- 不能邀请、修改或移除 Organization Admin
- 不能向用户指派 Organization Admin 角色
- 不能创建组织级(非工作区专属)的服务密钥
- 不会被自动加入现有工作区(只被加入他们创建的、或被明确邀请的工作区)
- 不能管理组织计费或订阅方案
- 不能配置 SSO 或身份验证方法
- 不能创建或管理自定义角色
Organization User
描述:对组织信息的读访问以及创建个人访问令牌的能力。
权限:
organization:read- 对组织信息的读访问organization:pats:create- 创建个人访问令牌
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
关键能力:
- 查看组织成员和工作区
- 查看组织设置(但不能修改)
- 创建用于 API 访问的个人访问令牌
- 加入他们被邀请到的工作区
限制:
- 不能修改组织设置
- 不能管理计费或订阅
- 不能创建或删除工作区
- 不能邀请或移除组织成员
- 不能管理角色或权限
你可以把一个 Organization User 添加到一部分的工作区并指派工作区角色(若 RBAC 启用),它们在工作区层面指定权限。
Organization viewer
描述:对组织信息的只读访问。
权限:
organization:read- 对组织信息的读访问
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
关键能力:
- 查看组织成员和工作区
- 查看组织设置
限制:
- 不能在组织层面修改任何东西
- 不能创建个人访问令牌
- 不能管理计费、工作区或成员
工作区角色
工作区角色是 企业方案 RBAC 功能的一部分,控制用户对某个工作区内资源能做什么:
| 角色 | 描述 |
|---|---|
| Workspace Admin | 对所有资源的完全权限,包括工作区设置和成员管理 |
| Workspace Editor | 对多数资源的完全权限,不能管理工作区设置或删除某些资源 |
| Workspace Viewer | 对所有工作区资源的只读访问 |
NOTE
RBAC(基于角色的访问控制)是仅对 Enterprise 客户可用的功能。如果你对此功能感兴趣,请联系我们的销售团队。其他方案默认对所有用户使用 Admin 角色。
Workspace admin
描述:对所有资源拥有完全权限、并能管理工作区的角色。
权限:
- 对所有资源类型的所有创建、读取、更新、删除和共享权限
- 工作区管理能力
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
Workspace editor
描述:对多数资源拥有完全权限的角色。不能管理工作区设置或删除某些关键资源。
与 Admin 的关键差异:
- 不能删除运行
- 不能管理工作区设置(更改工作区名等)
- 不能管理工作区成员(添加、移除或更新成员角色)
Workspace viewer
描述:对所有工作区资源的只读访问。
权限:对所有资源类型的只读访问。
有关所需权限的完整清单,以及能执行它们的操作和角色,参阅组织与工作区参考。
TIP
有关向用户指派工作区角色的分步说明,参阅用户管理指南。
自定义角色
INFO
创建自定义角色对处于 Enterprise 方案的组织可用。
Organization Admin可以创建带特定权限组合、按其组织需求定制的自定义角色。
创建自定义角色
自定义角色在组织层面创建,并可被指派给该组织内任何工作区中的用户。
步骤:
- 导航到组织 Settings > Roles。
- 点击 Create Custom Role。
- 选择要包含进该角色的权限。
- 把该自定义角色指派给特定工作区中的用户。
有关每个操作具体需要哪些权限的详情,参阅组织与工作区操作参考。
请注意关于自定义角色的以下细节:
- 自定义角色只能由 Organization Admin 创建和管理。
- 自定义角色是组织专属的(不能跨组织转移)。
- 每个自定义角色可以有工作区级权限的任意组合。
- 自定义角色不能有组织级权限。
- 用户可以在不同工作区中拥有不同角色(包括自定义角色)。
受限角色
INFO
角色限制对处于 Enterprise方案的组织可用。
Organization Admin和 Organization Operator(带 organization:manage 权限的角色)可以把任何角色——系统或自定义——标记为受限。受限角色只能由拥有内置 Workspace Admin角色的用户指派给工作区成员。拥有 workspaces:manage-members 权限但不持有 Workspace Admin 角色的用户不能指派受限角色。
这能防止特权提级:即使一个用户被授权管理工作区成员,他们也不能授予那些被标记为超出其界限的角色。
默认行为: 默认没有角色被限制。组织必须按角色显式切换限制。
要限制一个角色,在 LangSmith UI 中:
- 导航到组织 Settings > Roles。
- 在 Roles 表中找到你想限制的角色。
- 为该角色把 Restricted 设置切换为开。
一个角色被限制后,不持有 Workspace Admin 角色的用户无法在成员邀请、成员编辑或 API 密钥创建流程中看到或指派它。API 也会拒绝来自不持有 Workspace Admin 角色的调用者的指派尝试。如果一个不持有 Workspace Admin 角色的用户创建一个 API 密钥,他们不能把自己的受限角色用作该密钥的默认角色。
要取消对一个角色的限制,遵循同样的步骤并把 Restricted 设置切换为关。
NOTE
角色限制同时适用于系统角色(Workspace Admin、Workspace Editor、Workspace Viewer)和自定义角色。它在 LangSmith Cloud 和 Self-hosted 上可用。
理解权限行为
某些权限在自定义角色中使用时提供细粒度控制:
workspaces:manage不包含管理工作区成员的能力。要让一个自定义角色能添加、移除或更新工作区成员,你必须显式授予workspaces:manage-members。内置的 Workspace Admin 角色自动包含这两个权限。workspaces:manage-model-configs控制创建、编辑或删除模型配置(包括附加 OAuth 客户端凭据)以及更改每个模型在哪些 LangSmith 功能中可用的能力。它独立于workspaces:manage——在应当能配置模型的自定义角色上显式授予它。内置的 Workspace Admin 角色自动包含它。workspaces:manage-keys控制创建和删除工作区 API 密钥(限定到某工作区的服务密钥)的能力。它独立于workspaces:manage——在应当能管理 API 密钥而无完全工作区管理权的自定义角色上显式授予它。为防止特权提级,由一个不具有workspaces:manage的用户创建的密钥,不能被授予多于该用户所持有的权限,也不能被指派组织已标记为受限的角色。内置的 Workspace Admin 角色自动包含它。bulk-exports:read和bulk-exports:manage涵盖批量导出端点(列出、创建、取消导出,以及管理目的地)。在自定义角色中使用它们能以最小权限授予批量导出访问,而无需workspaces:manage。内置的 Workspace Admin 角色自动包含bulk-exports:manage,所有具备读能力的角色自动包含bulk-exports:read。projects:increase-trace-tier和projects:decrease-trace-tier相互独立,可以分别授予。例如,你可以允许一个角色降低保留而不允许它提高保留。如果一个用户两者都缺,保留设置 UI 会被完全隐藏。如果他们只有一个,UI 会部分启用(不被允许的那个方向被禁用)。runs:read-inputs和runs:read-outputs控制一个角色能否看到运行输入和输出,且独立于runs:read。一个有runs:read但没有这些权限之一的角色,仍能列出并打开运行,但响应会略去被拒的字段及其预览。消息和轨迹视图需要两个权限都有。要只在特定项目中隐藏输入或输出,用访问策略。projects:update只涵盖元数据更新(名称、描述、标签),不授予更改追踪保留的能力。要让一个自定义角色能修改追踪层级,你必须显式授予projects:increase-trace-tier、projects:decrease-trace-tier或两者。