Zum Hauptinhalt springen

✨ SSO für Admin UI

Info

SSO für die UI

Schritt 1: Obergrenzen für Schlüssel festlegen

Steuern Sie die Obergrenze, die Benutzer für max_budget, budget_duration oder einen beliebigen key/generate Parameter pro Schlüssel verwenden können.

litellm_settings:
upperbound_key_generate_params:
max_budget: 100 # Optional[float], optional): upperbound of $100, for all /key/generate requests
budget_duration: "10d" # Optional[str], optional): upperbound of 10 days for budget_duration values
duration: "30d" # Optional[str], optional): upperbound of 30 days for all /key/generate requests
max_parallel_requests: 1000 # (Optional[int], optional): Max number of requests that can be made in parallel. Defaults to None.
tpm_limit: 1000 #(Optional[int], optional): Tpm limit. Defaults to None.
rpm_limit: 1000 #(Optional[int], optional): Rpm limit. Defaults to None.

Erwartetes Verhalten

  • Senden Sie eine /key/generate Anfrage mit max_budget=200
  • Der Schlüssel wird mit max_budget=100 erstellt, da 100 die Obergrenze ist

Schritt 2: Oauth-Client einrichten

  1. Fügen Sie Okta-Anmeldedaten zu Ihrer .env hinzu
GENERIC_CLIENT_ID = "<your-okta-client-id>"
GENERIC_CLIENT_SECRET = "<your-okta-client-secret>"
GENERIC_AUTHORIZATION_ENDPOINT = "<your-okta-domain>/authorize" # https://dev-2kqkcd6lx6kdkuzt.us.auth0.com/authorize
GENERIC_TOKEN_ENDPOINT = "<your-okta-domain>/token" # https://dev-2kqkcd6lx6kdkuzt.us.auth0.com/oauth/token
GENERIC_USERINFO_ENDPOINT = "<your-okta-domain>/userinfo" # https://dev-2kqkcd6lx6kdkuzt.us.auth0.com/userinfo
GENERIC_CLIENT_STATE = "random-string" # [OPTIONAL] REQUIRED BY OKTA, if not set random state value is generated

Sie können Ihre domänenspezifischen Auth-/Token-/Userinfo-Endpunkte unter <IHRE-OKTA-DOMAIN>/.well-known/openid-configuration abrufen

  1. Fügen Sie die Proxy-URL als Callback-URL bei Okta hinzu

Fügen Sie bei Okta die 'callback_url' als <proxy_base_url>/sso/callback hinzu

Standard-Login-, Logout-URLs

Einige SSO-Anbieter erfordern eine spezifische Redirect-URL für Login und Logout. Sie können die folgenden Werte eingeben.

  • Login: <Ihre-Proxy-Basis-URL>/sso/key/generate
  • Logout: <Ihre-Proxy-Basis-URL>

Hier ist die .env-Variable, um die Logout-URL im Proxy zu setzen

PROXY_LOGOUT_URL="https://www.google.com"

Schritt 3: Setzen Sie PROXY_BASE_URL in Ihrer .env

Setzen Sie dies in Ihrer .env (damit der Proxy die korrekte Redirect-URL setzen kann)

PROXY_BASE_URL=https://litellm-api.up.railway.app

Schritt 4: Testen des Ablaufs

Unterdomänen von E-Mail-Adressen mit SSO einschränken

Wenn Sie SSO verwenden und nur Benutzern mit einer bestimmten Unterdomäne (z. B. E-Mail-Konten von @berri.ai) den Zugriff auf die UI erlauben möchten, tun Sie Folgendes

export ALLOWED_EMAIL_DOMAINS="berri.ai"

Dadurch wird überprüft, ob die E-Mail-Adresse des Benutzers, die wir vom SSO-Anbieter erhalten, diese Domäne enthält, bevor der Zugriff gewährt wird.

Proxy-Administrator festlegen

Legen Sie einen Proxy-Administrator fest, wenn SSO aktiviert ist. Sobald SSO aktiviert ist, wird die user_id für Benutzer vom SSO-Anbieter abgerufen. Um einen Proxy-Administrator festzulegen, müssen Sie die user_id aus der UI kopieren und in Ihrer .env als PROXY_ADMIN_ID festlegen.

Schritt 1: Kopieren Sie Ihre ID aus der UI

Schritt 2: Setzen Sie sie in Ihrer .env als PROXY_ADMIN_ID

export PROXY_ADMIN_ID="116544810872468347480"

Schritt 3: Alle Proxy-Schlüssel anzeigen

Info

Wenn Sie nicht alle Ihre Schlüssel sehen, könnte dies an einem zwischengespeicherten Token liegen. Melden Sie sich einfach erneut an und es sollte funktionieren.

Standardteam in der Admin-UI deaktivieren

Verwenden Sie dies, wenn Sie das Standardteam in der Admin-UI ausblenden möchten

Die folgende Logik wird angewendet

  • Wenn ein Team zugewiesen ist, zeigen Sie nicht das Standardteam an
  • Wenn kein Team zugewiesen ist, sollten sie das Standardteam sehen

Setzen Sie default_team_disabled: true in Ihrer litellm config.yaml

general_settings:
master_key: sk-1234
default_team_disabled: true # OR you can set env var PROXY_DEFAULT_TEAM_DISABLED="true"

Benutzername, Passwort verwenden, wenn SSO aktiviert ist

Wenn Sie über Benutzername/Passwort auf die UI zugreifen müssen, wenn SSO aktiviert ist, navigieren Sie zu /fallback/login. Diese Route ermöglicht es Ihnen, sich mit Ihren Benutzername/Passwort-Anmeldedaten anzumelden.

UI-Zugriff einschränken

Sie können den UI-Zugriff auf Administratoren beschränken – dazu gehören Sie (proxy_admin) und Personen, denen Sie schreibgeschützten Zugriff gewähren (proxy_admin_viewer) für die Anzeige der globalen Ausgaben.

Schritt 1: Zugriff nur für Administratoren festlegen

general_settings:
ui_access_mode: "admin_only"

Schritt 2: Schreibgeschützte Benutzer einladen

Benutzerdefinierte Branding der Admin-UI

Verwenden Sie das benutzerdefinierte Branding Ihres Unternehmens in der LiteLLM Admin-UI. Wir ermöglichen Ihnen

  • Das UI-Logo anpassen
  • Das Farbschema der UI anpassen

Wir erlauben Ihnen, ein lokales Bild oder eine HTTP/HTTPS-URL Ihres Bildes zu übergeben

Setzen Sie UI_LOGO_PATH in Ihrer env. Wir empfehlen die Verwendung eines gehosteten Bildes, da dies die Einrichtung und Konfiguration/Fehlerbehebung erheblich vereinfacht

Beispiel für das Setzen eines gehosteten Bildes

UI_LOGO_PATH="https://litellm-logo-aws-marketplace.s3.us-west-2.amazonaws.com/berriai-logo-github.png"

Beispiel für das Setzen eines lokalen Bildes (in Ihrem Container)

UI_LOGO_PATH="ui_images/logo.jpg"

Benutzerdefiniertes Farbschema festlegen

{
"brand": {
"DEFAULT": "teal",
"faint": "teal",
"muted": "teal",
"subtle": "teal",
"emphasis": "teal",
"inverted": "teal"
}
}

  • LiteLLM Proxy-Server bereitstellen