本教程由社区贡献,不属于 Open WebUI 官方团队的支持范畴。它仅作为如何根据您的特定用例自定义 Open WebUI 的演示。想贡献代码?请查看贡献教程。
使用 EntraID 的 Azure OpenAI
本节包含有关如何使用通过 Azure Entra ID(原 Azure AD)实现的安全性、无密钥身份验证将 Open WebUI 与 Azure OpenAI 集成的指南。您可以利用 Azure 的身份和访问管理来增强安全性,而无需管理静态 API 密钥。
OpenWebUI 的版本需要达到 0.6.30 或更高版本才能正常工作!
概述
Open WebUI 支持通过 Entra ID 身份验证进行 Azure OpenAI 集成,允 许您在不存储 API 密钥的情况下进行身份验证。这带来了以下几点好处:
- 增强安全性:无需管理或轮换静态 API 密钥
- Azure RBAC 集成:使用 Azure 角色分配进行细粒度的访问控制
- 审计追踪:所有访问都通过 Azure 的审计系统记录
- 自动令牌管理:Azure 自动处理令牌生命周期
身份验证方法
Open WebUI 支持 Azure OpenAI 的 DefaultAzureCredential 支持的所有身份验证方法。
默认情况下,DefaultAzureCredential 会尝试所有 Azure 凭据,包括开发和生产类型。如果您已经知道要使用哪种身份验证类型,那么这种默认行为可能并不可取,因为:
DefaultAzureCredential会在每一次请求时被调用,并尝试大多数身份验证类型,直到找到一个可用的为止- 某些身份验证类型 存在性能开销
- 如果您没有配置某些类型的身份验证,但它们被尝试了,您的日志可能会被错误信息污染。
为了解决这个问题,如果您使用的是 0.6.31 或更高版本,您可以将环境变量 AZURE_TOKEN_CREDENTIALS 设置为以下特定值之一:
EnvironmentCredentialWorkloadIdentityCredentialManagedIdentityCredentialVisualStudioCodeCredentialAzureCliCredentialAzurePowershellCredentialAzureDeveloperCliCredentialInteractiveBrowserCredential
这将导致它只选择所选的凭据类型
或者,如果您更喜欢自动选择行为,但希望在开发与生产选项之间缩小范围,可以使用:
prod:用于EnvironmentCredential、WorkloadIdentityCredential和ManagedIdentityCredential。dev:用于SharedTokenCacheCredential、AzureCliCredential、AzurePowershellCredential和AzureDeveloperCliCredential。
Azure CLI 身份验证
最适合: 本地开发
Azure CLI 身份验证使用您的本地 Azure 凭据来通过 Azure OpenAI 的身份验证。 这是入门最简单的方法,非常适合开发环境。
关键特性:
- 使用 Azure CLI 进行简单设置
- 适用于本地机器和容器
- 使用您的个人 Azure 凭据
- 需要安装 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 目录 | 无(联合令牌) |
下一步
选择最适合您部署环境的身份验证方法:
- 对于本地开发或 Docker 部署:从 Azure CLI 身份验证开始
- 对于生产环境 AKS 部署:使用 工作负载身份身份验证
这两种方法都为 Azure OpenAI 提供了安全的无密钥身份验证,一旦基础架构设置完毕,就可以通过 Open WebUI 管理界面进行配置。