Skip to main content
warning

本教程由社区贡献,不属于 Open WebUI 官方团队的支持范畴。它仅作为如何根据您的特定用例自定义 Open WebUI 的演示。想贡献代码?请查看贡献教程。

使用 EntraID 的 Azure OpenAI

本节包含有关如何使用通过 Azure Entra ID(原 Azure AD)实现的安全性、无密钥身份验证将 Open WebUI 与 Azure OpenAI 集成的指南。您可以利用 Azure 的身份和访问管理来增强安全性,而无需管理静态 API 密钥。

warning

OpenWebUI 的版本需要达到 0.6.30 或更高版本才能正常工作!

概述

Open WebUI 支持通过 Entra ID 身份验证进行 Azure OpenAI 集成,允许您在不存储 API 密钥的情况下进行身份验证。这带来了以下几点好处:

  • 增强安全性:无需管理或轮换静态 API 密钥
  • Azure RBAC 集成:使用 Azure 角色分配进行细粒度的访问控制
  • 审计追踪:所有访问都通过 Azure 的审计系统记录
  • 自动令牌管理:Azure 自动处理令牌生命周期

身份验证方法

Open WebUI 支持 Azure OpenAI 的 DefaultAzureCredential 支持的所有身份验证方法。

warning

默认情况下,DefaultAzureCredential 会尝试所有 Azure 凭据,包括开发和生产类型。如果您已经知道要使用哪种身份验证类型,那么这种默认行为可能并不可取,因为:

  • DefaultAzureCredential 会在每一次请求时被调用,并尝试大多数身份验证类型,直到找到一个可用的为止
  • 某些身份验证类型存在性能开销
  • 如果您没有配置某些类型的身份验证,但它们被尝试了,您的日志可能会被错误信息污染。

为了解决这个问题,如果您使用的是 0.6.31 或更高版本,您可以将环境变量 AZURE_TOKEN_CREDENTIALS 设置为以下特定值之一:

  • EnvironmentCredential
  • WorkloadIdentityCredential
  • ManagedIdentityCredential
  • VisualStudioCodeCredential
  • AzureCliCredential
  • AzurePowershellCredential
  • AzureDeveloperCliCredential
  • InteractiveBrowserCredential

这将导致它只选择所选的凭据类型

或者,如果您更喜欢自动选择行为,但希望在开发与生产选项之间缩小范围,可以使用:

  • prod:用于 EnvironmentCredentialWorkloadIdentityCredentialManagedIdentityCredential
  • dev:用于 SharedTokenCacheCredentialAzureCliCredentialAzurePowershellCredentialAzureDeveloperCliCredential

Azure CLI 身份验证

最适合: 本地开发

Azure CLI 身份验证使用您的本地 Azure 凭据来通过 Azure OpenAI 的身份验证。 这是入门最简单的方法,非常适合开发环境。

关键特性:

  • 使用 Azure CLI 进行简单设置
  • 适用于本地机器和容器
  • 使用您的个人 Azure 凭据
  • 需要安装 Azure CLI

→ 了解如何设置 Azure CLI 身份验证

2. 工作负载身份 (Workload Identity) 身份验证

最适合: Azure Kubernetes 服务 (AKS) 生产部署和多租户环境

工作负载身份为 AKS 集群提供了托管身份解决方案,允许 Pod 在不存储任何凭据的情况下通过 Azure 服务的身份验证。

关键特性:

  • 集群中不存储凭据
  • Kubernetes 原生身份验证
  • 联合身份凭据
  • 生产就绪的安全模型
  • 通过 Terraform 实现基础架构即代码 (IaC)

→ 了解如何设置工作负载身份身份验证

前提条件

无论您选择哪种身份验证方法,您都需要:

  • Azure 订阅:具有访问 Azure OpenAI 资源的权限
  • Open WebUI:0.6.30 或更高版本
  • Azure RBAC 角色:已为您的身份分配 Cognitive Services OpenAI User 角色
  • Azure OpenAI 资源:已部署的 Azure OpenAI 实例

快速对比

Azure CLI 身份验证工作负载身份 (Workload Identity)
环境本地开发Azure Kubernetes 服务 (AKS)
设置复杂度简单中等(需要 Terraform 或 Azure 经验)
安全模型Azure CLI 凭据工作负载身份
最适合开发和测试生产部署
凭据存储本地 .azure 目录无(联合令牌)

下一步

选择最适合您部署环境的身份验证方法:

这两种方法都为 Azure OpenAI 提供了安全的无密钥身份验证,一旦基础架构设置完毕,就可以通过 Open WebUI 管理界面进行配置。