如何通过Bot Framework Composer构建的机器人运行Azure自动化Runbook并获取结果
机器人以自身身份获取Azure令牌调用Automation Runbook操作指南
你当前的场景属于无用户参与的服务间调用,需使用Azure AD客户端凭据流获取令牌,你找到的Bot Framework连接器认证文档中提到的应用级认证逻辑完全适配该场景,具体操作步骤如下:
- 第一步:为机器人关联的Azure AD应用配置权限
进入你的Azure Automation账户的「访问控制(IAM)」页面,添加角色分配,给机器人对应的Azure AD应用授予自动化作业操作员权限(或匹配你业务需求的最小权限角色),确保该应用身份有权触发Runbook、查询作业执行结果。 - 第二步:在Bot Framework Composer中配置令牌获取逻辑
在对话流中添加HTTP请求动作,向对应Azure AD令牌端点发送POST请求获取应用级令牌:- 令牌端点地址:
https://login.microsoftonline.com/{你的Azure租户ID}/oauth2/v2.0/token(Azure中国区替换为https://login.partner.microsoftonline.cn/{你的Azure租户ID}/oauth2/v2.0/token) - 请求头设置
Content-Type为application/x-www-form-urlencoded - 请求体表单参数如下:
grant_type:固定值client_credentialsclient_id:机器人关联Azure AD应用的客户端IDclient_secret:机器人关联Azure AD应用的客户端密钥scope:固定值https://management.azure.com/.default(Azure中国区替换为https://management.chinacloudapi.cn/.default)
- 令牌端点地址:
- 第三步:调用Azure Automation REST API
解析令牌请求返回结果中的access_token字段,后续调用Automation相关接口时,在请求头中添加Authorization: Bearer {获取到的access_token}即可正常发起请求,获取Runbook执行结果。 - 注意事项:
- 不要将客户端密钥硬编码在对话逻辑中,敏感信息建议通过Composer配置项存储,生产环境推荐使用Azure Key Vault托管密钥。
- 令牌默认有效期为1小时,可自行添加缓存逻辑减少重复请求频次。
内容的提问来源于stack exchange,提问作者Brice
相关产品推荐
相关产品推荐

