Azure管理用API设置与自动化脚本demo
前言
笔者在使用Azure OpenAI时,因为部署在项目组公共机器中,担心密钥泄露的风险,经常需要登录到Azure后台中进行密钥的更新和获取,同时也需要监控当前账单多少等等,都有需要自动化脚本进行配置。
但是因为Azure本身是面向企业服务,本身系统就设计的异常复杂,而且安全性也是会放在第一位的,并且加上很多新名词,之前非常简单的自动化脚本,反而成了整套Azure OpenAI搭建过程中较难的一部分。
这里笔者花了大概6个小时的时间,终于踩完所有的坑,下面给出从Azure配置到API调用成功的详细步骤。
详细配置过程
首先需要有一个概念,Azure不同于一般网站,常用的爬虫手段不太能用,所以步骤和一般网站不同,最好先完全跟着笔者的步骤去配置,等通了再想为什么:
- 前提条件 - 笔者这里默认读者已经配置好Azure OpenAI,也就是达到可以在套壳ChatGPT中调用Azure OpenAI接口的程度了,如果没有配置好,请先看笔者这一系列的文章再来。 
- 使用Microsoft Entra ID 创建应用(创建服务主体) - 可以参考Azure的文档向 Microsoft Entra ID 注册应用程序并创建服务主体 - 进入Microsoft Entra ID服务中–>进入左侧应用注册中–>点新注册 
- 输入应用名–>选择“仅此组织目录(仅 默认目录 - 单一租户)中的帐户”–>点注册 
- 注册成功会自动跳转到如下图中,需要保存一下如图两个值: - 应用程序(客户端) ID:对应后面接口中client_id 
- 目录(租户) ID:对应接口url中的tenant 
 
- 点管理–>API权限–>添加权限–>选择Azure Service Management–>勾选权限–>点添加权限 
- 点证书和密码–>客户端密码–>+新客户端密码–>填写说明(随便)–>选截至期限–>点添加 - 注意保存下这里的值,只会出现一次,也会作为后面接口的client_secret值 
 - 以上,服务主体配置完成 
- 关联应用与订阅 - 可以参考Azure的文档 向应用程序分配角色 - 进入Azure主页–>进入订阅–>进入自己创建的给OpenAI用的订阅中 
- 点访问控制–>添加–>添加角色分配 
- 跳转到角色分配页面–>角色–>特权管理员角色–>点所有者 
- 点成员–>+选择成员–>手动输入1中创建的应用名–>点选该应用名–>选择 - 这里有个坑点就是这里选择成员是不会默认弹出应用的,需要输入应用名才能选,对新手非常坑的一个位置。 
- 点条件–>允许用户分配所有角色 (高特权) –>点左下角审阅和分配 
 - 以上,关联应用与订阅完成 
- 获取token - 笔者这里以postman举例: - 方法选择post,url输入: - 1 2 - https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token- 展开 - {tenant}为1中创建应用时记录的tenant 
- Headers中配置 - 1 2 3 - key:Content-Type value:application/x-www-form-urlencoded- 展开 
- Body配置 - 1 2 3 4 - client_id:应用中配置的 scope:根据接口配置的不同的值,更新密钥就配置https://management.azure.com/.default grant_type:直接填client_credentials client_secret:1中只会出现一次的值 - 展开 
 - 配置好之后,send就会收到对应的token值 
- 初尝接口 - 获取到token之后,我们可以用更新密钥这一接口来验证下是否ok - 首先浏览器抓包得到对应更新密钥的API是 - 1 - https://management.azure.com//subscriptions/{订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.CognitiveServices/accounts/{资源名}/regenerateKey?api-version=2022-03-01- 展开 - 如下图所示 
- 使用postman更新密钥 
 
后记
以上即为如何配置使用Azure API的详细流程,因为Azure面向企业,所以认证和配置过程复杂度都超过一般应用,走通之后,后续可以据此写很多自动化的脚本,十分方便管理Azure。





















