【发布时间】:2021-08-21 20:50:26
【问题描述】:
我正在尝试使用 ADF Web 活动通过使用数据工厂的托管身份进行身份验证来刷新 PBI 数据流。
这是我对活动的投入:
{
"url": "https://api.powerbi.com/v1.0/myorg/groups/1dec5b21-ba60-409b-80cb-de61272ee504/dataflows/0e256da2-8823-498c-b779-3e7a7568137f/refreshes",
"connectVia": {
"referenceName": "My-AzureVM-IR",
"type": "IntegrationRuntimeReference"
},
"method": "POST",
"headers": {
"Content-Type": "application/json",
"User-Agent": "AzureDataFactoryV2",
"Host": "api.powerbi.com",
"Accept": "*/*",
"Connection": "keep-alive"
},
"body": "{\"notifyOption\":\"MailOnFailure\"}",
"disableCertValidation": true,
"authentication": {
"type": "MSI",
"resource": "https://analysis.windows.net/powerbi/api"
}
}
在进行调试运行时会产生以下错误:
Failure type: User configuration issue
Details: {"error":{"code":"InvalidRequest","message":"Unexpected dataflow error: "}}
我已经在 Postman 中使用 Bearer Token Authentication 尝试了这个确切的 URL,它可以工作。我们的 AAD 管理员组说他们将 ADF 的托管身份添加到 PBI API 的权限列表中,所以我不确定这里发生了什么。
【问题讨论】:
-
我以前也遇到过。数据流不支持服务主体(如 MSI):docs.microsoft.com/en-us/power-bi/developer/embedded/…“不支持数据流管理”。因此,您必须创建一个仅在没有 MFA 的情况下使用的常规 AAD 云并更改身份验证。如果这是可以接受的,请告诉我,我可能会为管道提供帮助
-
我假设我可以创建一个 AAD 应用注册来使用常规服务主体进行身份验证?还是您是说我必须先进行初始 API 调用才能获得 OAuth 令牌?
-
你需要一个我相信的用户。不是服务主体/应用程序注册。这可以接受吗?
-
回到我用过的管道,我确实有一个和你一样的管道,它使用 MSI auth。因此,我建议您完成本文中的步骤 2-4,然后使用 MSI 重试。如果这不起作用,请告诉我们:docs.microsoft.com/en-us/power-bi/developer/embedded/…
-
另外,尝试针对 Azure IR(而不是针对自托管 IR)。大约一年前,当 MSI auth 不适用于 Web 活动时,IR 软件中存在一个错误。我不认为在这种情况下你应该需要自托管 IR。
标签: powerbi azure-data-factory