gpt4 book ai didi

azure - 生成有效的 oauth2 token 以访问 PowerBI API 时出现问题

转载 作者:行者123 更新时间:2023-12-03 05:36:33 29 4
gpt4 key购买 nike

设置:

我正在尝试使用控制台应用程序访问基于 Azure PowerBI 的 API,因为我的公司想要 Suspend/Resume PBI 优化成本计算的能力。

已按照官方文档成功访问这些 api API Emulator Window ,它工作得非常完美,因为它只要求身份验证窗口输入我的 Outlook 帐户的用户名和密码,并且它会隐式成功生成身份验证 token 。

当我尝试从控制台应用程序实现调用 api(将自动计划触发)时,有多种方法可以以编程方式生成身份验证 token 。以下是我在访问 PBI API 之前用来生成相同内容的方法。

方法#1:Generating token by using Azure Active Directory Authentication Libraries. .

此方法要求通过 Nuget 添加 AAD 身份验证库,添加相同的库后,它会失败,因为方法 AcquireTokenAsync 不带任何参数,但教程指定了要输入到此方法中的 4 个参数(缺少函数重载?)。所以我无法使用这种方法生成 token 。肯定是库版本问题,但是 official MS documentation没有解释任何可用的以上版本。

方法#2: Authorize Active Directory without dialog box标记为答案的 StackOverflow 问题
这种方法在调用 HTTPResponseMessage 时,它​​会挂起,而不会进入下一行或 catch 语句。

方法#3:尝试使用 POSTMAN 模拟 token 生成,并在我的控制台应用程序上使用生成的 token 来检查可访问性。

此方法可以成功生成 token ,但在控制台应用程序中使用生成的 token 时,它显示未经授权的 token 。

疑问部分:已使用 AppRegisteration 在 Azure 中生成 ClientID、ClientSecretID 和 TenantID,但不知道如何将其与 azure 中的 PowerBI 服务关联。 Azure Active Directory 是否位于 PBIService 和 AppRegisteration 之间?根据生成的 AppRegisteration 详细信息,尝试访问此身份验证 api ( https://login.microsoftonline.com/tenantId/oauth2/token ) 以生成 token 。这成功地生成了一个 token ,但由于 PBI api 上未经授权的访问而惨遭失败。

我是不是严重错过了什么?将有助于了解通过控制台应用程序访问基于 PBI 的 API 的概念有什么错误。通常的 PBI 社区网站没有多大帮助。

最佳答案

1. How to manage Azure Power BI Embedded capacity

如果要使用 rest API 管理 Azure Power BI Embedded 容量,请引用以下步骤。

  1. 创建服务主体并将 Azure RABC 角色分配给 sp(我使用 Azure CLI)
az login
#it will create a service principal and assign contributor role to the sp
az ad sp create-for-rbac -n "jonsp2"

enter image description here

  • 获取 token
  • Post https://login.microsoftonline.com/tenantId/oauth2/token
    Content-Type: application/x-www-form-urlencoded

    grant_type =client_credentials
    &client_id=<sp app id>
    &client_secret=<sp app password>
    &scope=https://management.azure.com/
  • 调用 Rest API
  • POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PowerBIDedicated/capacities/{dedicatedCapacityName}/suspend?api-version=2017-10-01

    Authorization: Bearer <token>

    enter image description here

    2. How to call Power BI rest api

    如果您想调用Power BI rest api ,请引用documentdocument .

    详细步骤如下

    1. 在 Azure 门户中注册 Azure AD 应用程序

    2. 配置 API 权限 enter image description here
      enter image description here

    3. 测试(我在 postman 中测试)A。获取访问 token enter image description here enter image description here

      b.调用API enter image description here

    关于azure - 生成有效的 oauth2 token 以访问 PowerBI API 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62156556/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com