azure 使用应用程序注册获取Microsoft不记名令牌并从数据集读取

lsmepo6l  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(142)

根据我之前的问题Power BI, connect directly to a dataset from a nodeJS app,我无法在不使用用户凭据的情况下获得访问令牌。
到目前为止,我已经在Azure AD中创建了一个应用程序注册,其中包含客户端密码和以下API权限:

现在,由于某种原因,用于连接数据集的帐户显示未为我的组织授予权限。(不确定我是否真的需要它)
有没有一种方法可以实现从PowerBI读取数据集所需的不记名令牌,而无需在应用程序中输入或存储用户名和密码?

vjhs03f7

vjhs03f71#

您可以使用客户端凭据流来获取访问令牌,而不包括用户凭据。
我注册了一个名为**SriPowerBi**的Azure AD应用程序,如下所示:

现在,我创建了一个安全组,并将上述服务主体作为成员添加到安全组中,如下所示:

登录Power Bi Adminportal,在Developer settings下添加安全组,启用以下选项:

请确保在Power Bi工作区中提供对服务主体安全组的访问权限:

请注意,在授予访问权限后需要等待**15-20分钟,因为会有延迟,并使用客户端凭据流生成访问令牌。
在我的例子中,我通过Postman使用客户端凭证流生成了
访问令牌**,参数如下:

POST https://login.microsoftonline.com/tenantId/oauth2/v2.0/token
grant_type:client_credentials
client_id: appId 
client_secret: secret 
scope: https://analysis.windows.net/powerbi/api/.default

回复:

当我使用此token读取数据集详情时,我成功获得了response,如下所示:

GET https://api.powerbi.com/v1.0/myorg/groups/{group_id}/datasets/{dataset_id}/

回复:

参考:Embed Power BI content with service principal and an application secret - Power BI | Microsoft

相关问题