【发布时间】:2020-10-05 17:22:34
【问题描述】:
我正在尝试了解 power bi API 中的授权机制
我会在我的网络应用程序中嵌入一个报告。
我已经完成了docs中提到的步骤
其实我会得到报告嵌入的 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"
}
};
现在我尝试获取embedded token for report in group
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
但是当我生成an embed token for dashboard 时,我得到了一个有效的令牌。但这当然不适用于get report API
我的目标是获取报告信息。有关信息,我得到了使用访问令牌但它不安全的信息
【问题讨论】:
-
没有尝试您的代码。但
datasetId用于创建报告。仅在生成 EmbedToken 以创建报告时适用。您的accessLevel是“查看”而不是“创建”。也许他们彼此冲突。如果您只需要“查看”,请尝试删除datasetId。 -
您好,您尝试我的建议了吗?有更新吗?
-
试过但没用..
标签: azure-active-directory powerbi powerbi-embedded powerbi-api