Skip to main content

基于角色的访问控制 (RBAC)

基于角色的访问控制(RBAC)基于组织、团队和内部用户角色

  • 组织 是包含团队的顶级实体。
  • 团队 - 团队是多个内部用户的集合。
  • 内部用户 - 可以创建密钥、调用LLM API、查看LiteLLM使用情况的用户。
  • 角色 定义了内部用户的权限。
  • 虚拟密钥 - 密钥用于LiteLLM API的身份验证。密钥与内部用户团队绑定。

角色

管理员角色

  • proxy_admin: 平台的管理员。
  • proxy_admin_viewer: 可以登录,查看所有密钥,查看所有支出。无法创建密钥/删除密钥/添加新用户。

组织角色

  • org_admin: 组织的管理员。可以在其组织内创建团队和用户。

内部用户角色

  • internal_user: 可以登录,查看/创建/删除自己的密钥,查看自己的支出。无法添加新用户。
  • internal_user_viewer: 可以登录,查看自己的密钥,查看自己的支出。无法创建/删除密钥,添加新用户。

组织入职

1. 创建新组织

任何具有proxy_admin角色的用户都可以创建新组织

使用方法

API参考 /organization/new

curl --location 'http://0.0.0.0:4000/organization/new' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"organization_alias": "marketing_department",
"models": ["gpt-4"],
"max_budget": 20
}'

预期响应

{
"organization_id": "ad15e8ca-12ae-46f4-8659-d02debef1b23",
"organization_alias": "marketing_department",
"budget_id": "98754244-3a9c-4b31-b2e9-c63edc8fd7eb",
"metadata": {},
"models": [
"gpt-4"
],
"created_by": "109010464461339474872",
"updated_by": "109010464461339474872",
"created_at": "2024-10-08T18:30:24.637000Z",
"updated_at": "2024-10-08T18:30:24.637000Z"
}

2. 向组织添加org_admin

创建一个用户(ishaan@berri.ai)作为marketing_department组织的org_admin(来自步骤1

具有以下角色的用户可以调用/organization/member_add

  • proxy_admin
  • org_admin仅限于其自己的组织
curl -X POST 'http://0.0.0.0:4000/organization/member_add' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"organization_id": "ad15e8ca-12ae-46f4-8659-d02debef1b23", "member": {"role": "org_admin", "user_id": "ishaan@berri.ai"}}'

现在,在marketing_department组织中创建了一个用户ID为ishaan@berri.ai且角色为org_admin的用户

ishaan@berri.ai创建一个虚拟密钥。用户可以使用该虚拟密钥进行组织管理操作

curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "ishaan@berri.ai"
}'

预期响应

{
"models": [],
"user_id": "ishaan@berri.ai",
"key": "sk-7shH8TGMAofR4zQpAAo6kQ",
"key_name": "sk-...o6kQ",
}

3. 组织管理员 - 创建团队

组织管理员将使用步骤2中创建的虚拟密钥在marketing_department组织内创建一个团队

curl --location 'http://0.0.0.0:4000/team/new' \
--header 'Authorization: Bearer sk-7shH8TGMAofR4zQpAAo6kQ' \
--header 'Content-Type: application/json' \
--data '{
"team_alias": "engineering_team",
"organization_id": "ad15e8ca-12ae-46f4-8659-d02debef1b23"
}'

这将在marketing_department组织内创建团队engineering_team

预期响应

{
"team_alias": "engineering_team",
"team_id": "01044ee8-441b-45f4-be7d-c70e002722d8",
"organization_id": "ad15e8ca-12ae-46f4-8659-d02debef1b23",
}

组织管理员 - 添加内部用户

组织管理员将使用步骤2中创建的虚拟密钥将内部用户添加到engineering_team团队。

  • 我们将分配角色=internal_user,以便用户可以为自己创建虚拟密钥
  • team_id来自步骤3
curl -X POST 'http://0.0.0.0:4000/team/member_add' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"team_id": "01044ee8-441b-45f4-be7d-c70e002722d8", "member": {"role": "internal_user", "user_id": "krrish@berri.ai"}}'
优云智算