跳至主要内容

Microsoft SSO:与 LiteLLM 同步群组和成员

将 Microsoft SSO 组和成员与 LiteLLM 团队进行同步。



先决条件

  • 拥有管理访问权限的 Azure Entra ID 账户
  • 在 Azure 门户中设置的 LiteLLM 企业应用程序
  • 拥有 Microsoft Entra ID (Azure AD) 的访问权限

本教程概述

  1. 在 LiteLLM 团队中自动创建 Entra ID 组
  2. 同步 Entra ID 团队成员身份
  3. 为在 LiteLLM 上自动创建的新团队和用户设置默认参数

1. 在 LiteLLM 团队中自动创建 Entra ID 组

在这一步中,我们的目标是当 Azure Entra ID 上的 LiteLLM 企业应用程序中添加了新组时,让 LiteLLM 自动在 LiteLLM 数据库中创建一个新团队。

1.1 在 Entra ID 中创建一个新组

导航至 Azure 门户 > 组 > 新组。创建一个新组。

1.2 将该组分配给您的 LiteLLM 企业应用程序

在 Azure 门户上,导航至 Enterprise Applications (企业应用程序) > 选择您的 litellm 应用程序



选择好 litellm 应用程序后,点击 Users and groups (用户和组) > Add user/group (添加用户/组)


现在选择您在 1.1 步中创建的组,并将其添加到 LiteLLM 企业应用程序中。此时,我们已将 Production LLM Evals Group 添加到了 LiteLLM 企业应用程序。接下来的步骤是当新用户登录时,让 LiteLLM 自动在 LiteLLM 数据库中创建 Production LLM Evals Group

1.3 通过 SSO 登录 LiteLLM UI

通过 SSO 登录 LiteLLM UI。您应该会被重定向到 Entra ID SSO 页面。此 SSO 登录流程将触发 LiteLLM 从 Azure Entra ID 获取最新的组和成员信息。

1.4 在 LiteLLM UI 上检查新团队

在 LiteLLM UI 上,导航至 Teams (团队),您应该能看到新团队 Production LLM Evals Group 已在 LiteLLM 上自动创建。

工作原理

当 SSO 用户登录 LiteLLM 时

  • LiteLLM 会自动获取 LiteLLM 企业应用程序下的组
  • 它会找到分配给 LiteLLM 企业应用程序的 Production LLM Evals Group
  • LiteLLM 检查该组的 ID 是否存在于 LiteLLM 团队表中
  • 由于 ID 不存在,LiteLLM 会自动创建一个新团队,其:
    • 名称:Production LLM Evals Group
    • ID:与 Entra ID 组的 ID 相同

2. 同步 Entra ID 团队成员身份

在这一步中,当新用户被添加到 Entra ID 中的 Production LLM Evals 组时,我们将让 LiteLLM 自动将该用户添加到 LiteLLM 数据库中的 Production LLM Evals 团队。

2.1 导航至 Entra ID 中的 Production LLM Evals

导航至 Entra ID 中的 Production LLM Evals 组。

2.2 在 Entra ID 中向组添加成员

选择 Members (成员) > Add members (添加成员)

在此阶段,您应该添加您想要加入 Production LLM Evals 团队的用户。

2.3 以新用户身份登录 LiteLLM UI

以新用户身份登录 LiteLLM UI。您应该会被重定向到 Entra ID SSO 页面。此 SSO 登录流程将触发 LiteLLM 从 Azure Entra ID 获取最新的组和成员信息。在此步骤中,LiteLLM 会将其团队及团队成员与 Entra ID 中可用的信息进行同步。

2.4 在 LiteLLM UI 上检查团队成员身份

在 LiteLLM UI 上,导航至 Teams (团队),您应该能看到新团队 Production LLM Evals Group。由于您现在是 Entra ID 中 Production LLM Evals Group 的成员,因此您应该能在 LiteLLM UI 上看到新团队 Production LLM Evals Group

3. 为在 LiteLLM 上自动创建的新团队设置默认参数

由于当 Azure Entra ID 上的 LiteLLM 企业应用程序中添加了新组时,litellm 会在 LiteLLM 数据库中自动创建一个新团队,因此我们可以为创建的新团队设置默认参数。

这允许您为新创建的团队设置默认预算、模型等。

3.1 在 litellm 上设置 default_team_params

导航至您的 litellm 配置文件并设置以下参数

带有 default_team_params 的 litellm 配置
litellm_settings:
default_team_params: # Applied to all /team/new calls (including SSO auto-created teams) when the field is not explicitly set
max_budget: 100 # Optional[float]: $100 budget for the team
budget_duration: 30d # Optional[str]: 30 days budget_duration for the team
models: ["gpt-3.5-turbo"] # Optional[List[str]]: models for the team (only applied to SSO auto-created teams)
team_member_permissions: # Optional[List[str]]: permissions granted to non-admin team members
- "/team/daily/activity" # Allow members to view team usage

3.2 在 LiteLLM 上自动创建新团队

  • 在这一步中,您应该向 Azure Entra ID 上的 LiteLLM 企业应用程序添加一个新组(就像我们在 1.1 步中所做的那样)。我们将此组在 Azure Entra ID 上命名为 Default LiteLLM Prod Team
  • 使用您的配置启动 litellm 代理服务器
  • 通过 SSO 登录 LiteLLM UI
  • 导航至 Teams (团队),您应该能看到新团队 Default LiteLLM Prod Team 已在 LiteLLM 上自动创建
  • 注意:LiteLLM 将为这个新团队设置默认参数。

4. 使用 Entra ID 应用程序角色进行用户权限管理

您可以使用应用程序角色直接从 Entra ID 分配用户角色。LiteLLM 将在 SSO 登录期间自动从 JWT 令牌中读取应用程序角色,并为用户分配相应的角色。

4.1 支持的角色

LiteLLM 支持以下应用程序角色(不区分大小写)

  • proxy_admin - 整个 LiteLLM 平台的管理员
  • proxy_admin_viewer - 只读管理员访问权限(可以查看所有密钥和费用)
  • org_admin - 特定组织的管理员(可以在其组织内创建团队和用户)
  • internal_user - 标准用户(可以创建/查看/删除自己的密钥并查看自己的费用)

4.2 在 Entra ID 中创建应用程序角色

  1. 导航至 https://portal.azure.com/ 上的“应用注册”

  2. 转到 App roles (应用角色) > Create app role (创建应用角色)

  3. 配置应用程序角色

    • Display name (显示名称):Proxy Admin(或您偏好的显示名称)
    • Value (值):proxy_admin(使用上述支持的角色值之一)
    • Description (描述):LiteLLM 代理的管理员访问权限
    • Allowed member types (允许的成员类型):Users/Groups (用户/组)
  4. 点击 Apply (应用) 以保存角色

4.3 为用户分配应用程序角色

  1. 导航至 https://portal.azure.com/ 上的 Enterprise Applications (企业应用程序)
  2. 选择您的 LiteLLM 应用程序
  3. 转到 Users and groups (用户和组) > Add user/group (添加用户/组)
  4. 选择用户并将其分配为您创建的应用程序角色之一

4.4 测试角色分配

  1. 以分配了应用程序角色的用户身份通过 SSO 登录 LiteLLM UI
  2. LiteLLM 将自动从 JWT 令牌中提取应用程序角色
  3. 该用户将在数据库中被分配相应的 LiteLLM 角色
  4. 用户的权限将反映其分配的角色

工作原理

  • 当用户通过 Microsoft SSO 登录时,LiteLLM 会从 JWT id_token 中提取 roles 声明
  • 如果任何角色与有效的 LiteLLM 角色匹配(不区分大小写),则会将该角色分配给用户
  • 如果存在多个角色,LiteLLM 会使用它找到的第一个有效角色
  • 此角色分配会持久化在 LiteLLM 数据库中,并决定用户的访问级别

视频演示

本指南介绍了如何为 Microsoft Entra ID 设置 SSO 自动添加功能

观看此视频,了解如何使用 Microsoft Entra ID 进行设置的详细演示