gpt4 book ai didi

api - Power BI REST 身份验证和权限

转载 作者:行者123 更新时间:2023-12-03 00:13:41 24 4
gpt4 key购买 nike

我正在尝试在另一个服务(作为数据源)和 Microsoft Power BI 之间创建桥梁。但是,我无法让 REST API 正常工作。

到目前为止,我已经成功在 Azure AD 中创建了一个 Web 应用程序,获取了客户端 ID 和 key ,接收了 API 的访问 token ,但在此之后我得到的只是 403 Forbidden没有错误信息。但是,如果我尝试使用过期的 token 访问 API,我会收到一条错误消息,告诉我 token 已过期。

我读过一些关于该主题的帖子,但它们都表明,如果用户没有先登录并访问 Power BI,则无法访问 REST API,这在服务到服务应用程序中是不可能的。

如何在没有任何用户交互的情况下正确访问该服务?

以下是经过稍微审查的请求和响应。

请求 1:

POST /[our domain].com/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: flight-uxoptin=true; stsservicecookie=ests; x-ms-gateway-slice=productiona; stsservicecookie=ests
Host: login.microsoftonline.com
Connection: close
User-Agent: Paw/2.3 (Macintosh; OS X/10.11.3) GCDHTTPRequest
Content-Length: 203

grant_type=client_credentials&client_id=[client id]&client_secret=[client secret]&resource=https%3A%2F%2Fanalysis.windows.net%2Fpowerbi%2Fapi

响应 1:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
x-ms-request-id: 52d6713c-d50b-4073-b030-aa10e33fdf27
client-request-id: 3aef4765-d602-46a6-a8ce-4b7792f678e5
x-ms-gateway-service-instanceid: ESTSFE_IN_209
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: x-ms-gateway-slice=productiona; path=/; secure; HttpOnly
Set-Cookie: stsservicecookie=ests; path=/
X-Powered-By: ASP.NET
Date: Wed, 24 Feb 2016 08:24:29 GMT
Connection: close
Content-Length: 1243

{"token_type":"Bearer","expires_in":"3599","expires_on":"1456305870","not_before":"1456301970","resource":"https://analysis.windows.net/powerbi/api","access_token":"[access token]"}

请求2:

GET /v1.0/myorg/datasets HTTP/1.1
Authorization: Bearer [access token]
Content-Length: 0
Host: api.powerbi.com
Connection: close
User-Agent: Paw/2.3 (Macintosh; OS X/10.11.3) GCDHTTPRequest

响应2:

HTTP/1.1 403 Forbidden
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: deny
X-Content-Type-Options: nosniff
RequestId: 803cc0cb-c65d-4212-9ab8-aed4ffa9862a
Date: Wed, 24 Feb 2016 08:25:13 GMT
Connection: close

最佳答案

您使用的 API 需要用户的访问 token 。他们访问用户帐户中的内容。因此,如果您没有访问 token ,您将继续被禁止。因此,您需要做的是第一次获取用户的访问 token 。然后存储刷新 token 。然后根据需要使用刷新 token 获取新的访问 token 。如果刷新 token 过期,您需要要求用户重新登录。

关于api - Power BI REST 身份验证和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35597383/

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