Rollentaspektorientierte Zugriffskontrollen (RBAC)
Rollenbasierte Zugriffskontrolle (RBAC) basiert auf Organisationen, Teams und internen Benutzerrollen
Organisationensind die obersten Entitäten, die Teams enthalten.Team- Ein Team ist eine Sammlung mehrererinterner BenutzerInterne Benutzer- Benutzer, die Schlüssel erstellen, LLM-API-Aufrufe tätigen und die Nutzung von LiteLLM anzeigen könnenRollendefinieren die Berechtigungen einesinternen BenutzersVirtuelle Schlüssel- Schlüssel werden zur Authentifizierung bei der LiteLLM-API verwendet. Schlüssel sind mit eineminternen Benutzerund einemTeamverknüpft
Rollen
| Rollentyp | Rollenname | Berechtigungen |
|---|---|---|
| Admin | proxy_admin | Admin über die Plattform |
proxy_admin_viewer | Kann sich anmelden, alle Schlüssel anzeigen, den gesamten Verbrauch anzeigen. Kann keine Schlüssel erstellen/löschen/neue Benutzer hinzufügen | |
| Organisation | org_admin | Admin über die Organisation. Kann Teams und Benutzer innerhalb ihrer Organisation erstellen |
| Interner Benutzer | internal_user | Kann sich anmelden, eigene Schlüssel anzeigen/erstellen/löschen, den eigenen Verbrauch anzeigen. Kann keine neuen Benutzer hinzufügen |
internal_user_viewer | Kann sich anmelden, eigene Schlüssel anzeigen, den eigenen Verbrauch anzeigen. Kann keine Schlüssel erstellen/löschen, keine neuen Benutzer hinzufügen |
Onboarding-Organisationen
1. Erstellen einer neuen Organisation
Jeder Benutzer mit der Rolle proxy_admin kann eine neue Organisation erstellen
Verwendung
API-Referenz für /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
}'
Erwartete Antwort
{
"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. Hinzufügen eines org_admin zu einer Organisation
Erstellen Sie einen Benutzer (ishaan@berri.ai) als org_admin für die Organisation marketing_department (aus Schritt 1)
Benutzer mit den folgenden Rollen können /organization/member_add aufrufen
proxy_adminorg_adminnur innerhalb ihrer eigenen Organisation
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"}}'
Nun wurde ein Benutzer mit user_id = ishaan@berri.ai und role = org_admin in der Organisation marketing_department erstellt
Erstellen Sie einen virtuellen Schlüssel für user_id = ishaan@berri.ai. Der Benutzer kann dann den virtuellen Schlüssel für seine Organisations-Admin-Operationen verwenden
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"
}'
Erwartete Antwort
{
"models": [],
"user_id": "ishaan@berri.ai",
"key": "sk-7shH8TGMAofR4zQpAAo6kQ",
"key_name": "sk-...o6kQ",
}
3. Organisations-Admin - Erstellen eines Teams
Der Organisations-Admin verwendet den virtuellen Schlüssel, der in Schritt 2 erstellt wurde, um ein Team innerhalb der Organisation marketing_department zu erstellen
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"
}'
Dadurch wird das Team engineering_team innerhalb der Organisation marketing_department erstellt
Erwartete Antwort
{
"team_alias": "engineering_team",
"team_id": "01044ee8-441b-45f4-be7d-c70e002722d8",
"organization_id": "ad15e8ca-12ae-46f4-8659-d02debef1b23",
}
Organisations-Admin - Hinzufügen eines internen Benutzers
Der Organisations-Admin verwendet den virtuellen Schlüssel, der in Schritt 2 erstellt wurde, um einen internen Benutzer zum Team engineering_team hinzuzufügen.
- Wir weisen die Rolle
internal_userzu, damit der Benutzer selbst virtuelle Schlüssel erstellen kann team_idstammt aus Schritt 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"}}'