ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Azure OpenAI Proxy API 密钥与安全管理最佳实践:Token 注入、环境变量配置完整清单

Azure OpenAI Proxy API 密钥与安全管理最佳实践:Token 注入、环境变量配置完整清单 Azure OpenAI Proxy API 密钥与安全管理最佳实践:Token 注入、环境变量配置完整清单【免费下载链接】azure-openai-proxyA proxy for Azure OpenAI API that can convert an OpenAI request into an Azure OpenAI request.项目地址: https://gitcode.com/gh_mirrors/azur/azure-openai-proxy本文为新手完整讲解azure-openai-proxy(Azure OpenAI Proxy)的 API 密钥管理与安全最佳实践:从 6 个环境变量的配置清单、Token 注入的两种机制,到生产环境安全自查清单,一篇讲透,帮你安全地用好这个 OpenAI 请求转 Azure 请求的代理工具。30 秒了解:azure-openai-proxy 是什么?azure-openai-proxy 是一个用 Go 语言编写的 API 代理,能把标准的 OpenAI 请求(/v1/chat/completions、/v1/completions、/v1/embeddings)转换成 Azure OpenAI 请求,让各类开源 ChatGPT 项目直接把 Azure 当作后端使用。它由AZURE_OPENAI_PROXY_MODE环境变量控制两种运行模式(路由逻辑见main.go):azure(默认,反向代理):充当 OpenAI API 网关,客户端按 OpenAI 格式请求代理,代理负责转发到 Azureopenai(正向代理):请求直接发往 OpenAI 官方接口,代理只做透传,适合解决部分地区无法直连 OpenAI 的问题两种模式默认都监听0.0.0.0:8080。Azure OpenAI Proxy 环境变量配置完整清单环境变量作用默认值是否必填AZURE_OPENAI_PROXY_ADDRESS服务监听地址0.0.0.0:8080否AZURE_OPENAI_PROXY_MODE代理模式:azure或openaiazure否AZURE_OPENAI_ENDPOINTAzure 资源地址,形如https://{custom}.openai.azure.com无✅ 是(azure 模式)AZURE_OPENAI_APIVERSIONAzure API 版本2023-03-15-preview否AZURE_OPENAI_MODEL_MAPPER模型名 → 部署名的映射,逗号分隔,如gpt-3.5-turbogpt-35-turbo内置两条常见映射否AZURE_OPENAI_TOKEN固定 Azure API 密钥,设置后忽略客户端请求头中的密钥空否 这些变量都在启动时一次性读取:监听地址与代理模式在main.go的init()中加载,Endpoint、API 版本、模型映射与 Token 则在pkg/azure/proxy.go中加载,修改后需重启进程生效。Token 注入的两种机制 理解密钥是如何进入最终请求的,是做好安全管理的前提。机制一:请求头 Bearer 携带密钥客户端像调用 OpenAI 一样,在请求头里带上Authorization: Bearer 你的Azure密钥。代理从该头中提取密钥,替换为 Azure 要求的api-key头,并删除原始Authorization头(改写逻辑见pkg/azure/proxy.go)。这种方式下密钥由每个客户端各自保管,适合本地开发和调试。机制二:AZURE_OPENAI_TOKEN 环境变量统一托管只要设置了AZURE_OPENAI_TOKEN,代理会直接忽略客户端传来的Authorization,统一使用环境变量中的密钥发起请求。好处很直接:密钥只存在代理服务器一处,无需分发给任何客户端客户端可随意更换占位值,轮换密钥时只改一处配置API 密钥安全管理的 6 条最佳实践 ️1. 密钥绝不写进代码仓库任何 API 密钥都不应硬编码在源码或提交到版本库中。本项目的设计就是围绕环境变量展开的——请始终用进程环境注入密钥。2. 生产环境优先用 AZURE_OPENAI_TOKEN 统一注入团队共享的代理服务,建议一律采用环境变量注入密钥,减少密钥副本数量。但要注意:能访问到代理的人就等同于持有了密钥,所以必须配合网络隔离(见第 3 条),不要裸奔在公网。3. 给 0.0.0.0:8080 加上网关与 HTTPS服务默认监听所有网卡,且项目未内置 TLS 支持(Dockerfile中仅EXPOSE 8080)。正式使用前建议:在代理前架设 Nginx 等反向代理,终结 HTTPS 并做访问控制防火墙只放行内网或指定来源到 8080 端口正向代理模式下,将HTTPS_PROXY指向你的 HTTPS 网关,而非 HTTP 地址4. 留意启动日志会打印 Endpoint服务启动时会把 Azure Endpoint、API 版本、模型映射等配置写入日志(pkg/azure/proxy.go中可见相关输出)。Token 本身不会被打印,但请求日志包含完整转发 URL。请妥善管理日志权限,避免配置信息随日志扩散。5. Docker 部署时通过 --env 或密钥管理方案注入docker run -d -p 8080:8080 --name azure-openai-proxy \ --env AZURE_OPENAI_ENDPOINThttps://{your-resource}.openai.azure.com \ --env AZURE_OPENAI_TOKEN{your-azure-api-key} \ ishadows/azure-openai-proxy:latest生产环境建议把密钥放入 CI/CD 的 Secrets 或容器平台的密钥管理功能中,而不是明文写进 compose 文件或脚本。6. 正向代理模式(oai 模式)下密钥仍由客户端保管当AZURE_OPENAI_PROXY_MODEopenai时,代理只做透传(逻辑见pkg/openai/proxy.go),不需要任何 Azure 环境变量,密钥始终留在客户端。这种方式代理侧零密钥、天然更安全,但客户端依旧要避免把密钥写死在代码里。不同场景的配置速查表场景推荐做法本地开发 / 调试请求头 Bearer 传密钥,不设置AZURE_OPENAI_TOKEN团队内部服务AZURE_OPENAI_TOKEN环境变量注入 限制 8080 端口来源对外提供访问Nginx 终结 HTTPS Token 环境变量注入 网关层鉴权解决 OpenAI 直连受限设为openai模式,无需任何 Azure 配置配置问题自查清单 ✅返回 401 或密钥无效:确认AZURE_OPENAI_ENDPOINT是完整 URL,且用的是 Azure 的 api-key 而非 OpenAI 密钥模型找不到 / 部署名报错:检查AZURE_OPENAI_MODEL_MAPPER是否配置了模型名部署名的映射改配置不生效:环境变量只在启动时读取,改完记得重启想换监听地址:用AZURE_OPENAI_PROXY_ADDRESS指定,例如127.0.0.1:8080本地源码构建:clone 仓库后执行go build即可,依赖版本见go.modgit clone https://gitcode.com/gh_mirrors/azur/azure-openai-proxy掌握这套「环境变量清单 Token 双机制 网络隔离」的组合拳,你就能让 azure-openai-proxy 在享受便捷的同时,把 API 密钥的安全风险降到最低。【免费下载链接】azure-openai-proxyA proxy for Azure OpenAI API that can convert an OpenAI request into an Azure OpenAI request.项目地址: https://gitcode.com/gh_mirrors/azur/azure-openai-proxy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表