powerbi 服务主体认证

如何在服务主体的认证方式下嵌入Power BI 报表:

先决条件:
1)Power BI Pro 帐户(包含用户名和密码的主帐户,用于登录 Power BI Pro 帐户),或服务主体(仅限应用的令牌)。
2)需要设置自己的 Azure Active Directory 租户。

整个过程主要分为两步(由于验证类型分为主账户和服务主体,本次只针对服务主体做介绍):
1)在Azure 中注册应用程序;
2)将Power BI报表嵌入到应用程序

在Azure 中注册应用程序

  1. 登录到Azure门户,在左侧导航栏找到“所有服务”——搜索点击应用注册:
    在这里插入图片描述

  2. 点击新注册:
    在这里插入图片描述

3.填写应用信息,可以选择自己需要的网址进行注册(可以选择 http://localhost:13526这个网址作为重定向 URI)。 注册完应用以后会自动生成一个服务主体。(OAuth 2.0认证时,重定向URI应该填写api地址,方便解析授权码,参考:https://blog.csdn.net/leinminna/article/details/109100731
在这里插入图片描述

4.授予注册的本地应用程序相关 Windows Active Directory 和 Power BI Service 权限,如图所示:
您可以根据您自己的需求,参考如下链接,根据需要的API 进行选择:https://docs.microsoft.com/en-us/rest/api/power-bi/reports/getreportingroup
在这里插入图片描述

切记,添加权限后需点击“授予管理员同意”,才能完成所有步骤。
在这里插入图片描述

配置服务主体相关权限

  1. 在 Azure Active Directory 中新建一个安全组,并将注册应用生成的服务主体加到成员中。
    在这里插入图片描述
    然后
    在这里插入图片描述
    还需要注册
    在这里插入图片描述

  2. 登录Power BI Service 网站授予相关admin权限

  3. 选择 “管理门户” 进行相关授权,将创建的安全组添加到”允许主体服务访问 Power BI API”:
    在这里插入图片描述

  4. 创建新的 v2 版本的 Power BI Workspace,并将服务主体设置为此工作区的管理员:
    在这里插入图片描述
    在这里插入图片描述

将Power BI 报表嵌入到应用程序

此过程大概分为3步,在本次示例中,我们通过Postman获取EmbedToken、嵌入URL及Report ID;

  1. 获取access_token(加粗标识为租户ID)
    发送post到https://login.chinacloudapi.cn/2bf14663-2f99-4119-bde1-d970664a7b23/oauth2/token
    body为
    data:{
    grant_type:client_credentials
    resource:https://analysis.chinacloudapi.cn/powerbi/api
    client_id:注册应用的应用程序ID
    client_secret:应用程序密码
    }
    应用程序ID、租户ID在如下位置获取:
    在这里插入图片描述

应用程序密码在如下位置获取:
在这里插入图片描述

示例如下:
Content-Type:application/x-www-form-urlencoded
在这里插入图片描述
在这里插入图片描述

  1. 利用上一步的access_token获取embedUrl及Report ID
    发送GET 到您工作区(加粗标识为工作区ID)
    https://api.powerbi.cn/v1.0/myorg/groups/150f3cdb-425f-40e0-b11c-5a376f012791/reports
    Authorization Type: Bearer Token
    Token: 上一步中access_token
    在这里插入图片描述

  2. 获取Embed token
    发送post到https://api.powerbi.cn/v1.0/myorg/groups/29427125-e483-48fe-ab6e-e4de5dbd961e/reports/d788830e-4630-45d0-bd94-ecc7e35ccfdf/GenerateToken 黄色部分替换成您自己的group id和report id
    Authorization:Bearer 第一步的token
    headers为
    Content-Type: application/json
    Accept:application/json
    body为
    data:{
    “accessLevel”:“View”,
    “allowSaveAs”:“true”
    }:
    在这里插入图片描述

到这里信息获取完毕,大家可以使用Microsoft Power BI Embedded Playground进行测试https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html

有任何问题,欢迎随时与我们联系。

猜你喜欢

转载自blog.csdn.net/leinminna/article/details/109101761
今日推荐