在dify中接入azure openai必须启用网络安全外围与凭证加密隔离,使用托管标识,注册nsp预览特性,配置openai兼容模式并严格校验api密钥、endpoint url(末尾不可有斜杠)及模型名称大小写,通过credentials模块注入密钥,最后验证虚拟网络绑定、响应头安全策略、authorization头为bearer token且审计日志无异常凭证访问。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中接入Azure OpenAI服务时,必须同步启用网络安全外围(Network Security Perimeter)与凭证加密隔离机制,否则API密钥可能暴露在日志或内存中,导致企业敏感数据直连公网模型端点。
确认Azure OpenAI已启用网络安全外围
登录Azure门户 → 进入目标OpenAI资源 → 左侧菜单选择「网络」→ 点击「网络安全外围(预览)」→ 开启「加入网络安全外围」开关。【必须使用系统分配的托管标识】,否则Dify调用将因身份验证失败而返回403错误。
注意:该功能需提前注册预览特性,运行以下CLI命令完成注册:az feature register --namespace "Microsoft.OpenAI" --name "OpenAI.NspPreview"。未注册即启用会导致外围策略不生效。
配置Dify模型供应商为Azure OpenAI兼容模式
进入Dify控制台 → 右上角头像 → 「设置」→ 左侧「模型供应商」→ 点击「添加供应商」→ 选择「OpenAI-API-compatible」插件。
填写以下三项必填字段:
• API Key:从Azure OpenAI「密钥与终结点」页复制的密钥(非客户管理密钥)
• API Endpoint URL:格式为 https://<your-resource-name>.openai.azure.com/openai/deployments/<deployment-name>/chat/completions?api-version=2024-05-01-preview</deployment-name></your-resource-name>
• 模型名称:必须与Azure中部署的模型名称完全一致(如 gpt-4o),【大小写敏感且不可含空格】,否则Dify无法匹配到可用模型。
保存后,Dify会尝试发起一次探测请求。若失败,请检查Endpoint URL末尾是否误加了斜杠——Azure OpenAI接口对URL路径末尾斜杠极其敏感,多一个/就会返回404。
通过凭证管理模块注入密钥
第一步:进入Dify控制台「Credentials」页面 → 点击「新建凭证」→ 类型选择「API Key」→ 名称填 azure_openai_key → 值粘贴密钥字符串 → 保存。
第二步:在工作流LLM节点配置中,不直接填写API Key,而是点击「高级设置」→ 在「Credentials」下拉框中选择刚创建的 azure_openai_key。
第三步:在节点参数中显式声明模型来源:
provider: azure-openai<br>model: gpt-4o<br>credentials: api_key: {{credentials.azure_openai_key}}
这一步绕过环境变量硬编码,使密钥仅在运行时解密注入,避免被Docker镜像层或CI日志捕获。
验证数据不出网的关键检查项
① 在Azure门户中确认该OpenAI资源已绑定至虚拟网络,并在「防火墙和虚拟网络」中勾选「拒绝来自公共网络的连接」;
② 登录Dify服务器执行 curl -v https://<your-azure-openai-endpoint></your-azure-openai-endpoint>,确认响应头包含 X-Content-Type-Options: nosniff 且无 Access-Control-Allow-Origin: * 字段;
③ 在Dify工作流中添加「日志记录」节点,捕获原始HTTP请求体,确认 Authorization 头中只出现 Bearer <token></token> 而非明文密钥;
④ 查看Dify后台审计日志,筛选关键词「credential」,确认所有凭证读取操作均来自 llm_node 类型且无异常IP访问记录。










