reactjs 如何在不手动登录的情况下检索Power BI API访问令牌?

yduiuuwa  于 12个月前  发布在  React
关注(0)|答案(1)|浏览(102)

无法使用Azure Active Directory详细信息从Power BI API检索访问令牌。
我目前正在使用Postman首先测试我是否可以成功地从Power BI请求访问令牌。
Postman GET Request:
我得到这个错误,我“必须使用多因素身份验证访问”应用程序名称。
我能够利用JavaScript,它允许我手动定向到Microsoft登录页面,以便进行身份验证,然后将我重定向回我所在的位置。
问题是,我不希望我的客户必须登录才能查看Power BI报告,因为他们没有Power BI登录。
我正在尝试使用Postman GET Request:中使用的提供的登录详细信息自动验证自己,而无需重定向到Microsoft登录页面。
这是我最接近实际获得访问令牌而不被重定向到Microsoft登录页面。[Postman GET请求:]

chhkpiq4

chhkpiq41#

我创建了一个Azure AD多租户应用程序并授予API权限,如下所示:

现在我尝试通过ROPC流生成访问令牌

POST https://login.microsoftonline.com/common/oauth2/token

client_id:ClientID
resource:https://analysis.windows.net/powerbi/api
grant_type:password
username:ruk@xxx.onmicrosoft.com
password:***
client_secret:ClientSecret

但是我得到了如下的错误

注意:ROPC流不支持启用了MFA的用户帐户。如果您尝试使用ROPC流登录到应用程序,则会出现错误。请参阅MsDoc
若要解决错误,请关闭用户的MFA,如下所示:

成功禁用MFA,如下所示:

经过以上修改后,我可以成功生成访问令牌如下:

当我解码令牌时,audhttps://analysis.windows.net/powerbi/api

或者,您可以使用任何其他Token授权流程,请参考以下MsDoc
Microsoft identity platform and OAuth 2.0 authorization code flow - Microsoft Entra

相关问题