Azure CLI 身份验证
warning
本教程由社区贡献,不属于 Open WebUI 官方团队的支持范畴。它仅作为如何根据您的特定用例自定义 Open WebUI 的演示。想贡献代码?请查看贡献教程。
本指南解释了如何配置 Open WebUI,使其能够使用 Azure CLI 和 Entra ID 身份验证来通过 Azure OpenAI 的身份验证。
前提条件
- Azure CLI:从 Microsoft Learn 安装
- Open WebUI:0.6.30 或更高版本
- Azure 订阅:具有访问 Azure OpenAI 资源的权限
- RBAC 角色:您的用户或组必须已在 Azure OpenAI 实例中分配了
Cognitive Services OpenAI User角色
身份验证步骤
1. 使用 Azure CLI 登录
运行以下命令以通过您的 Azure 订阅进行身份验证:
az login
这将打开一个浏览器窗口,供您使用 Azure 凭据登录。
2. 验证 RBAC 权限
确保您的用户帐户或组已分配了 Azure OpenAI 资源的 Cognitive Services OpenAI User 角色。您可以在 Azure 门户中验证这一点:
- 导航到您的 Azure OpenAI 资源
- 转到 访问控制 (IAM)
- 检查 角色分配 (Role assignments) 以确认您拥有所需的角色
Docker 配置
Dockerfile
创建或修改您的 Dockerfile 以包含 Azure CLI:
Dockerfile
FROM ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main}
RUN pip install azure-cli
CMD [ "bash", "start.sh"]
Docker Compose
配置您的 docker-compose.yml 以挂载 Azure CLI 配置并设置适当的环境变量:
docker-compose.yml
services:
ollama:
volumes:
- ollama:/root/.ollama
container_name: ollama
pull_policy: always
tty: true
restart: unless-stopped
image: ollama/ollama:${OLLAMA_DOCKER_TAG-latest}
open-webui:
build:
context: .
args:
OLLAMA_BASE_URL: '/ollama'
dockerfile: Dockerfile
container_name: open-webui
volumes:
- open-webui:/app/backend/data
- ${HOME}/.azure:/app/.azure # 这是关键部分。对于 Windows,请将 ${HOME}/.azure 替换为 %USERPROFILE%\.azure
depends_on:
- ollama
ports:
- ${OPEN_WEBUI_PORT-3000}:8080
environment:
- 'OLLAMA_BASE_URL=http://ollama:11434/'
- AZURE_CONFIG_DIR=/app/.azure # 这是关键部分
- 'WEBUI_SECRET_KEY='
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
volumes:
ollama: {}
open-webui: {}
此配置:
- 将您的本地 Azure CLI 凭据(Linux 上为
~/.azure,Windows 上为%USERPROFILE%\.azure)挂载到容器中 - 设置
AZURE_CONFIG_DIR环境变量,以便 Open WebUI 可以找到这些凭据
启动 Compose 堆栈
使用以下命令启动 Docker Compose 服务:
docker compose up
UI 配置
当您的 Docker 容器运行后:
- 导航到 管理员面板 (Admin Panel) → 连接 (Connections)
- 点击 添加连接 (Add Connection)
- 选择 Azure OpenAI 作为提供商
- 选择 Entra ID 作为身份验证类型
- 配置您的 Azure OpenAI 端点和部署详情
- 保存连接
故障排除
如果您遇到身份验证问题:
- 验证 Azure CLI 登录:运行
az account show以确认您已登录 - 检查权限:确保已分配
Cognitive Services OpenAI User角色 - 卷挂载:验证
.azure目录是否已正确挂载到容器中 - 环境变量:确认
AZURE_CONFIG_DIR已设置为/app/.azure