Langfuse 中的基于角色的访问控制
Langfuse 中的基于角色的访问控制(RBAC)基于用户、组织、项目和角色:
Users(用户)是访问 Langfuse 的经过身份验证的个人Organizations(组织)是包含项目的顶层实体。Projects(项目)对所有 Langfuse 数据进行分组,以实现细粒度的基于角色的访问控制(RBAC)。Roles(角色)定义用户在组织和项目内的权限:- 默认情况下,用户在组织级别被分配一个角色。
- 为了更细粒度的控制,用户可以被分配项目角色。当你想区分同一组织内不同项目的权限时,这很有用。
API Keys 用于对 Langfuse API 进行身份验证。它们与某个项目关联,可用于以编程方式访问该项目的数据。API 密钥不与用户绑定。
graph LR
A["User (via UI)"] -->|role| B[Organization]
B -->|1:n| C[Projects]
A -.->|optional: project-role| C
D[API Keys] -->|n:1| C
访问组织和项目
你可以使用顶部导航栏中的下拉菜单在组织和项目之间轻松切换。
角色与作用域
Owner:拥有所有权限Admin:可以编辑项目设置并授予其他用户访问权限Member:可以查看所有指标并创建分数,但不能配置项目Viewer:对项目和组织的只读访问,大部分配置被隐藏None:对组织没有默认访问权限,用于用户应仅访问单个项目的情况
每个角色在组织级和项目级被授予一组权限范围(scope),例如 project:read、scores:CUD、prompts:CUD、auditLogs:read 等。Owner 拥有全部范围,Admin 拥有大部分管理范围,Member 拥有读写与创建资源的范围,Viewer 仅拥有 *:read 范围,None 没有任何范围。完整的组织级与项目级 scope 矩阵请参见英文原文中的权限表。
管理用户
向组织添加新用户
在组织设置中,你可以通过电子邮件地址添加用户并为他们分配角色。他们会收到电子邮件通知,登录后即可访问该组织。尚未拥有 Langfuse 账户的用户将被列为待处理邀请,直到他们注册。
更改用户角色
任何具有 members:CUD 权限的用户都可以在组织设置中更改用户的角色。这会影响该用户在组织中所有项目的权限。用户只能分配低于或等于自己角色的角色。
管理项目
添加新项目
任何具有 projects:create 权限的用户都可以在 Langfuse 组织内创建新项目。
将项目转移到另一个组织
只有具有 projects:transfer_organization 权限的用户才能将项目转移到另一个组织。这会将项目从当前组织移除并添加到新组织。对项目的访问将取决于新组织中配置的角色。
在此过程中,不会丢失任何数据,所有项目设置、数据和配置都将转移到新组织。项目保持完全可运行,因为 API 密钥、设置(访问管理除外)和数据将保持不变并与项目关联。所有功能(例如追踪、提示词管理)将继续工作,不会有任何中断。
项目级角色
项目级角色在 Pro 计划(团队附加项)和 Enterprise 计划中可用,自托管版本为企业版功能;Hobby 和 Core 计划不可用。
默认情况下,用户继承其所属组织的角色。为了更细粒度的控制,你可以在项目级别为用户分配角色。当你想区分同一组织内不同项目的权限时,这很有用。
如果分配了项目级角色,它将覆盖该项目的组织级角色。
如果你想让用户仅访问组织内的某些项目,你可以在组织级别将他们的角色设置为 None,然后在项目级别为他们分配角色。
相关资源
- SCIM 与组织 API,以编程方式管理用户、角色、项目和 API 密钥
- 如何组织项目和环境,用于生产、预发和开发