Azure Bot框架AAD身份验证问题

时间:2020-09-06 12:42:37

标签: azure azure-active-directory botframework azure-web-app-service

我正在尝试以编程方式注册并使用AAD应用程序将Microsoft Bot Framework僵尸程序部署到其他人的租户中的Azure(因此,现在我们不可以选择az cli)。不幸的是,尽管AAD应用程序能够获取令牌,但我们仍收到身份验证错误。

AAD应用程序创建PowerShell代码

# Create Azure AD Application Registration
$rnd = Get-Random -Maximum 999 -Minimum 1        
$appName = $ApplicationName + [string]$rnd
$createAppBody = @{
    displayName = [string]$appName
    signInAudience = "AzureADandPersonalMicrosoftAccount"
} | ConvertTo-Json
$createAppResponse = Invoke-RestMethod  -Method "POST"  -Uri "https://graph.microsoft.com/v1.0/applications"  -Body $createAppBody -ContentType "application/json"  -Authentication Bearer -Token $AccessToken 

$appObjId = $createAppResponse.id
$appId = $createAppResponse.appId

# Add password to app registration
$addPasswordUri = "https://graph.microsoft.com/v1.0/applications/" + $appObjId + "/addPassword"
$addPasswordBody = [PSCustomObject]@{
    passwordCredential = {
        displayName = $appName + "Password"
    }
} | ConvertTo-Json

$addPasswordResponse = Invoke-RestMethod  -Method  "POST" -Uri $addPasswordUri -Body $addPasswordBodyJson -ContentType "application/json"  -Authentication Bearer -Token $AccessToken 

$secret = $addPasswordResponse.secretText

这些值已成功传递到我们的bot zip的ARM部署中,该zip具有应用程序设置,包括到Microsoft.Web /站点

        {
          "name": "MicrosoftAppId",
          "value": "[parameters('appId')]"
        },
        {
          "name": "MicrosoftAppPassword",
          "value": "[parameters('appSecret')]"
        },

按照故障排除指南,我们可以成功获取令牌curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id=appid&client_secret=password&scope=https%3A%2F%2Fapi.botframework.com%2F.default"

我可以在漫游器通道的设置中看到正确的向导。 app id registered with bot service

但是,当我们在门户中的测试客户端或仿真器中使用appid和密码时,会出现类似 POST https://webchat.botframework.com/v3/directline/conversations/JzddOS0PMku9aV9tU1HjVB-a/activities 502的频道中有相应的错误

auth error

我看过由文档中给出的az cli命令创建的AAD应用程序,无法发现任何差异。 Arm部署生成器不包含任何其他变量,也没有提及所需的任何角色分配。

有人知道要解决此身份验证问题或进一步诊断吗?

0 个答案:

没有答案