跳到主要内容

基于 Entra ID 的 Azure OpenAI

注意

本教程由社区贡献,Open WebUI 团队不提供官方支持。它仅作为如何针对特定用例自定义 Open WebUI 的演示。想要贡献?请查看贡献教程。

本节包含关于如何将 Open WebUI 与 Azure OpenAI 集成的指南,集成使用了基于 Azure Entra ID(前身为 Azure AD)的安全、无密钥(keyless)身份验证。您不需要管理静态的 API 密钥,而是可以利用 Azure 的身份和访问管理来增强安全性。

注意

OpenWebUI 版本必须在 0.6.30 或更高版本才能正常工作!

概述

Open WebUI 支持包含 Entra ID 身份验证在内的 Azure OpenAI 集成,允许您在不存储 API 密钥的情况下进行身份验证。这提供了以下几点优势:

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

身份验证方法

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

注意

默认情况下,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 Service (AKS) 生产部署和多租户环境

Workload Identity 为 AKS 集群提供托管身份解决方案,允许 Pod 与 Azure 服务进行身份验证,而无需在集群中存储任何凭证。

核心特性

  • 集群中不存储任何凭证
  • Kubernetes 原生身份验证
  • 联合身份凭证(Federated identity credentials)
  • 生产就绪的安全模型
  • 通过 Terraform 实现基础设施即代码 (Infrastructure as Code)

→ 了解如何设置 Workload Identity 身份验证

前提条件

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

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

快速对比

Azure CLI 身份验证Workload Identity
适用环境本地开发Azure Kubernetes Service (AKS)
配置复杂度简单中等(需要 Terraform 或 Azure 相关经验)
安全模型Azure CLI 凭证Workload Identity
最适合开发与测试环境生产部署
凭证存储本地 .azure 目录无(联合 Token)

后续步骤

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

这两种方法都能提供与 Azure OpenAI 的安全、无密钥身份验证,并且可以在设置完基础设施后通过 Open WebUI 管理界面进行配置。

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.