跳到主要内容

✨ 管理界面的 SSO

信息

✨ SSO 功能包含在 LiteLLM 企业版中

企业版定价

获取 7 天免费试用密钥

UI 的 SSO

步骤 1:设置密钥的上限

控制用户对于每个密钥可使用的 max_budgetbudget_duration 或任何 key/generate 参数的上限。

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.

预期行为

  • 发送一个带有 max_budget=200/key/generate 请求
  • 由于 100 是上限,密钥将以 max_budget=100 创建

步骤 2:设置 Oauth 客户端

  1. 将 Okta 凭据添加到你的 .env 文件
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

你可以在 <YOUR-OKTA-DOMAIN>/.well-known/openid-configuration 获取你的特定域的 auth/token/userinfo 端点

  1. 在 Okta 上将代理 URL 添加为 callback_url

在 Okta 上,将 'callback_url' 添加为 <proxy_base_url>/sso/callback

默认登录、注销 URL

一些 SSO 提供商要求为登录和注销设置特定的重定向 URL。你可以输入以下值。

  • 登录: <your-proxy-base-url>/sso/key/generate
  • 注销: <your-proxy-base-url>

这是在代理上设置注销 URL 的环境变量

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

步骤 3. 在你的 .env 文件中设置 PROXY_BASE_URL

在你的 .env 文件中设置此项(以便代理可以设置正确的重定向 URL)

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

步骤 4. 测试流程

使用 SSO 限制电子邮件子域名

如果你正在使用 SSO 并且只想允许具有特定子域名(例如 @berri.ai 电子邮件账户)的用户访问 UI,请执行此操作

export ALLOWED_EMAIL_DOMAINS="berri.ai"

这将检查我们从 SSO 收到的用户电子邮件是否包含此域,然后才允许访问。

设置代理管理员

在启用 SSO 时设置代理管理员。启用 SSO 后,用户的 user_id 从 SSO 提供商处检索。要设置代理管理员,你需要从 UI 复制 user_id 并将其在你的 .env 文件中设置为 PROXY_ADMIN_ID

步骤 1:从 UI 复制你的 ID

步骤 2:在你的 .env 文件中将其设置为 PROXY_ADMIN_ID

export PROXY_ADMIN_ID="116544810872468347480"

步骤 3:查看所有代理密钥

信息

如果你看不到所有密钥,这可能是由于缓存的 token 造成的。只需重新登录即可解决。

在管理 UI 上禁用 Default Team

如果你想在管理 UI 上隐藏 Default Team,请使用此选项

将应用以下逻辑

  • 如果分配了团队,则不显示 Default Team
  • 如果未分配团队,则应显示 Default Team

在你的 litellm config.yaml 中设置 default_team_disabled: true

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

在 SSO 开启时使用用户名、密码

如果在 SSO 开启时需要通过用户名/密码访问 UI,请导航至 /fallback/login。此路由将允许你使用用户名/密码凭据登录。

限制 UI 访问

你可以将 UI 访问限制为仅管理员——包括你(proxy_admin)和你授予只读访问权限以查看全局支出的用户(proxy_admin_viewer)。

步骤 1. 设置“admin_only”访问

general_settings:
ui_access_mode: "admin_only"

步骤 2. 邀请只读用户

自定义管理 UI 品牌

在 LiteLLM 管理 UI 上使用你公司的自定义品牌。我们允许你:

  • 自定义 UI Logo
  • 自定义 UI 配色方案

我们允许你传递本地图片或图片的 http/https URL

在你的 env 文件中设置 UI_LOGO_PATH。我们推荐使用托管图片,它更容易设置、配置和调试

设置托管图片的示例

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

设置本地图片(在你的容器上)的示例

UI_LOGO_PATH="ui_images/logo.jpg"

设置自定义颜色主题

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

  • 部署 LiteLLM 代理服务器