加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

天蓝色 – 无法获取客户端凭据访问令牌来授权Power BI

发布时间:2020-12-14 04:15:14 所属栏目:大数据 来源:网络整理
导读:我试图使用Power BI REST API,使用“客户端凭据”方法获取的访问令牌,但是我根据我的要求不断获得403禁止. 我的代码遵循this AzureAD sample中演示的模式.实际上,为了隔离这个问题,我正在运行该示例代码(当然,在我自己的参数parameter.json中) { expiresIn:
我试图使用Power BI REST API,使用“客户端凭据”方法获取的访问令牌,但是我根据我的要求不断获得403禁止.

我的代码遵循this AzureAD sample中演示的模式.实际上,为了隔离这个问题,我正在运行该示例代码(当然,在我自己的参数parameter.json中)

{ 
  expiresIn: 3599,tokenType: 'Bearer',expiresOn: Tue Sep 01 2015 16:56:07 GMT-0500 (CDT),resource: '00000002-0000-0000-c000-000000000000',accessToken: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE1iYTlnb0VLWSIsImtpZCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE1iYTlnb0VLWSJ9.eyJhdWQiOiIwMDAwMDAwMi0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8xM2QxNzIwNC0wZGU2LTQ1NzQtOTgzYS05NjFhYjk0M2M3Y2UvIiwiaWF0IjoxNDQxMTQwNjcwLCJuYmYiOjE0NDExNDA2NzAsImV4cCI6MTQ0MTE0NDU3MCwidmVyIjoiMS4wIiwidGlkIjoiMTNkMTcyMDQtMGRlNi00NTc0LTk4M2EtOTYxYWI5NDNjN2NlIiwib2lkIjoiYzM1ZWQyYTktYTYzZS00YzAwLThmYmYtY2FlYjlmZjYwMjYwIiwic3ViIjoiYzM1ZWQyYTktYTYzZS00YzAwLThmYmYtY2FlYjlmZjYwMjYwIiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvMTNkMTcyMDQtMGRlNi00NTc0LTk4M2EtOTYxYWI5NDNjN2NlLyIsImFwcGlkIjoiNDQ2Y2Y5OTItMDQzYS00YjgxLWJhYzQtY2RlZWYyNGFhNzFjIiwiYXBwaWRhY3IiOiIxIn0.YTGJfdW1wP09bDHwwsv3FPAmEpmQdc_kifvgY-1KjhkZWANfYtd050wfeZdNgMUeSPZyFdWnoBjnJ4xrlDtnsADwV1Grr6TXYcymPLofbY-xy0cjyvzxTmM11DJ9XN8A4tkgvK0jtR-YyIjPw5EKJSKyeEbD9U3mWsE_gu7IzKzXl8e-dfVAqRYS6WHZy6_0FaNmppPDls5s_QIPOHofFSiWVISw41Mz0fQnP2QEGyceOCvKYJtrUOCDwfVuwFS-gSLmYvEGOJfmIjftP3srda0JPirVzBeU0IFJJ1KW81kE5cfKw1KkBB04VVetRUs_7HqloYaKKiTybauhXAodRQ',isMRRT: true,_clientId: '[snip]',_authority: 'https://login.windows.net/[snip]' 
}

当我在卷曲请求中使用该访问令牌时,如下所示,我得到一个403:

curl -vv -X GET https://api.powerbi.com/v1.0/myorg/datasets -H"Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE1iYTlnb0VLWSIsImtpZCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE1iYTlnb0VLWSJ9.eyJhdWQiOiIwMDAwMDAwMi0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8xM2QxNzIwNC0wZGU2LTQ1NzQtOTgzYS05NjFhYjk0M2M3Y2UvIiwiaWF0IjoxNDQxMTQwNjcwLCJuYmYiOjE0NDExNDA2NzAsImV4cCI6MTQ0MTE0NDU3MCwidmVyIjoiMS4wIiwidGlkIjoiMTNkMTcyMDQtMGRlNi00NTc0LTk4M2EtOTYxYWI5NDNjN2NlIiwib2lkIjoiYzM1ZWQyYTktYTYzZS00YzAwLThmYmYtY2FlYjlmZjYwMjYwIiwic3ViIjoiYzM1ZWQyYTktYTYzZS00YzAwLThmYmYtY2FlYjlmZjYwMjYwIiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvMTNkMTcyMDQtMGRlNi00NTc0LTk4M2EtOTYxYWI5NDNjN2NlLyIsImFwcGlkIjoiNDQ2Y2Y5OTItMDQzYS00YjgxLWJhYzQtY2RlZWYyNGFhNzFjIiwiYXBwaWRhY3IiOiIxIn0.YTGJfdW1wP09bDHwwsv3FPAmEpmQdc_kifvgY-1KjhkZWANfYtd050wfeZdNgMUeSPZyFdWnoBjnJ4xrlDtnsADwV1Grr6TXYcymPLofbY-xy0cjyvzxTmM11DJ9XN8A4tkgvK0jtR-YyIjPw5EKJSKyeEbD9U3mWsE_gu7IzKzXl8e-dfVAqRYS6WHZy6_0FaNmppPDls5s_QIPOHofFSiWVISw41Mz0fQnP2QEGyceOCvKYJtrUOCDwfVuwFS-gSLmYvEGOJfmIjftP3srda0JPirVzBeU0IFJJ1KW81kE5cfKw1KkBB04VVetRUs_7HqloYaKKiTybauhXAodRQ"

想知道卷曲请求是否有缺陷,我通过浏览器webtools snooped out an access token “the wrong way”,上述工作正常,返回200和JSON响应列出我的数据集.

我也注意到返回代码是403(禁止),而不是401(未经授权),所以我想知道授权是否可以,但是Power BI端的权限是错误的.但是当我使用任何垃圾文本进行访问令牌(例如Authorization:Bearer foo)时,我也得到403,所以我抛弃了这个理论.

所以.我认为我有一个有效的测试,我得到了我认为是一个有效的访问令牌(从该客户端 – credentials-sample.js代码),但它仍然不起作用.我失踪了什么

解决方法

在一些Microsoft人的帮助下(谢谢,Jon Gallant和Josh Caplan),我了解到,使用OAuth客户端凭据流进行身份验证,正如我在使用JavaScript示例,提供的访问不足.要使用Power BI,认证需要基于特定的用户.

我试过使用:

>类似的JavaScript示例username-password-sample.js
>资源值https://analysis.windows.net/powerbi/api(谢谢,slugslog)
>添加用户名和密码到parameters.json

这让我更近了,但是我仍然得到一个400响应:“error_description”:“AADSTS90014:请求正文必须包含以下参数:’client_secret或client_assertion’.

对adal-node库进行攻击(硬编码客户机密码,即oauthParameters [OAuth2Parameters.CLIENT_SECRET] =“my-client-secret”; line 217 of token-request.js之后)足以收回在授权头文件中使用的访问令牌原卷曲电话.

当然硬编码那个价值还没有我的最终解决方案.无论如何,我不打算使用adal-node库.但是就这种认证案例的这个概念证明,这就是我来的答案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读