我正在尝试了解 power bi API 中的授权机制
我会在我的网络应用程序中嵌入一份报告。
我已经完成了文档中提到的步骤
实际上我会得到报告嵌入的 url,然后使用 power bi JS API 嵌入报告。
获取access_token
成功
var options = {
'method': 'POST',
'url': `https://login.microsoftonline.com/${process.env.TENANT_ID}/oauth2/token`,
'headers': {
'Content-Type': 'multipart/form-data'
},
formData: {
'grant_type': process.env.GRANT_TYPE,
'client_id': process.env.CLIENT_ID,
'client_secret': process.env.CLIENT_SECRET,
'resource': "https://analysis.windows.net/powerbi/api",
'Scope': "https://analysis.windows.net/powerbi/api/.default"
}
};
现在我尝试在组中获取嵌入式令牌以进行报告
var data = { accessLevel: "View", datasetId: "5b11d62a-803e-46c9-83f3-*****" };
var config = {
method: 'post',
url: `https://api.powerbi.com/v1.0/myorg/groups/${process.env.GROUP_ID}/reports/${process.env.Report_ID}/GenerateToken`,
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${JSON.parse(response).access_token}`
},
data: data
};
let embedtoken
try {
embedtoken = await axios(config)
}
catch (e) {
console.log(e)
}
context.res = {
// status: 200, /* Defaults to 200 */
body: JSON.parse(response).access_token
};
我收到错误400 response
但是当我 为仪表板生成嵌入令牌时,我得到了一个有效的令牌。但这当然不适用于获取报告 API
我的目标是获取报告信息。有关信息,我得到了使用访问令牌但它不安全的信息