基于 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 设置为以下特定值之一:
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 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) |
后续步骤
选择最适合您部署环境的身份验证方法:
- 对于本地开发或 Docker 部署:从 Azure CLI 身份验证 开始
- 对于生产 AKS 部署:使用 Workload Identity 身份验证
这两种方法都能提供与 Azure OpenAI 的安全、无密钥身份验证,并且可以在设置完基础设施后通过 Open WebUI 管理界面进行配置。