【问题标题】:how tu run azure runbooks from a bot?如何从机器人运行 azure runbook?
【发布时间】:2021-11-14 18:36:04
【问题描述】:

我需要运行一个 azure 自动化运行手册,然后通过 Bot Framework Composer 构建的机器人获取结果。

我将不得不使用来自机器人上下文的对 Azure 自动化 REST api 端点的 HTTP 调用。

我找不到如何为我的机器人获取 azure 令牌?我发现的唯一示例是解释如何代表用户获取 Oauth 令牌。但是,机器人不会代表用户执行操作,因为 Runbook 的访问权限有限,应该由机器人而不是用户运行。

编辑:我遇到了这似乎符合我的需求:https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-authentication?view=azure-bot-service-4.0

【问题讨论】:

    标签: oauth msal azure-automation azure-authentication bot-framework-composer


    【解决方案1】:

    我将发布我使用的解决方案。

    1. 使用 Azure Cli 创建服务主体(在此处下载 https://aka.ms/installazurecliwindows

    2. 使用 Azure cli:

      az 登录

      az ad sp create-for-rbac --name "ServicePrincipalAccountName"

    --> 这将返回 AppId、密码和租户 ID。

    1. 使用此帐户进行身份验证。在 Powershell 中是:

      Add-Type -AssemblyName System.Web $clientId = "应用 ID" $AppSecret = [System.Web.HttpUtility]::UrlEncode("密码") $tenantId = "租户 ID" $resource=[System.Web.HttpUtility]::UrlEncode(https://management.azure.com) $body = "client_id=${clientId}&client_secret=${appSecret}&grant_type=client_credentials&resource=${ressource}" $token = Invoke-RestMethod -Method POST -uri https://login.microsoftonline.com/${tenantId}/oauth2/token?api-version=1.0 -body $body -ContentType "application/x-www-form-urlencoded"

    如果可行,您可以像这样在 Bot Framework 中简单地使用它:

    【讨论】:

      猜你喜欢
      • 2019-05-05
      • 2021-12-28
      • 2020-07-24
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 2019-06-11
      相关资源
      最近更新 更多