Azure CLI 认证
注意
本教程来自社区贡献,并非 Open WebUI 官方支持内容。它仅作为演示,说明如何按你的具体场景自定义 Open WebUI。欢迎贡献更多内容,可查看 contributing 教程。
本指南说明如何通过 Azure CLI 和 Entra ID 认证,让 Open WebUI 对 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 资源
- 进入 Access control (IAM)
- 查看 Role assignments,确认已分配所需角色
Docker 配置
Dockerfile
创建或修改 Dockerfile,以便安装 Azure CLI:
Dockerfile
FROM --platform=$BUILDPLATFORM 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 配置目录挂载到容器内,并设置相应环境变量:
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 upUI 配置
当 Docker 容器启动后:
- 前往 管理面板 → 连接
- 点击 添加连接
- 选择 Azure OpenAI 作为提供商
- 选择 Entra ID 作为认证类型
- 配置 Azure OpenAI 终结点和部署细节
- 点击保存
故障排查
若你遇到认证问题,可依次检查:
- 确认 Azure CLI 已登录:执行
az account show - 检查权限:确保已分配
Cognitive Services OpenAI User角色 - 检查 volume 挂载:确认
.azure目录已正确挂载进容器 - 检查环境变量:确认
AZURE_CONFIG_DIR已设为/app/.azure