サービスプリンシパルの認証方法でPowerBIレポートを埋め込む方法:
前提条件:
1)Power BI Proアカウント(ユーザー名とパスワードを含むメインアカウント、Power BI Proアカウントへのログインに使用)、またはサービスプリンシパル(アプリトークンのみ)。
2)独自のAzure ActiveDirectoryテナントを設定する必要があります。
プロセス全体は主に2つのステップに分かれています(検証タイプがメインアカウントとサービスサブジェクトに分かれているため、今回はサービスサブジェクトのみを紹介します):
1)アプリケーションをAzureに登録します;
2)PowerBIレポートをアプリケーションに埋め込みます
アプリケーションをAzureに登録する
-
Azureポータルにログインし、左側のナビゲーションバーで[すべてのサービス]を見つけます。検索してクリックして登録します。
-
[新規登録]をクリックします。
3.3。アプリケーション情報を入力し、登録する必要のあるURLを選択できます(リダイレクトURIとしてhttp:// localhost:13526を選択できます)。アプリケーションを登録すると、サービスプリンシパルが自動的に生成されます。(OAuth 2.0認証の場合、リダイレクトURIは認証コードの分析を容易にするためにapiアドレスを入力する必要があります。https://blog.csdn.net/leinminna/article/details/109100731を参照してください)
4.4。図に示すように、登録済みのローカルアプリケーションに関連するWindows ActiveDirectoryおよびPowerBI Serviceのアクセス許可を付与
します。必要に応じて次のリンクを参照し、必要なAPIに従って選択できます:https://docs.microsoft.com/ en-us / rest / api / power-bi / reports / getreportingroup
権限を追加した後、すべての手順を完了するには、[管理者の同意を付与する]をクリックする必要があることに注意してください。
サービスプリンシパル関連の権限を構成する
-
Azure Active Directoryに新しいセキュリティグループを作成し、登録されたアプリケーションによって生成されたサービスプリンシパルをメンバーに追加します。
次に
、登録する必要があります
-
Power BI Service Webサイトにログインして、関連する管理者権限を付与します
-
関連する承認のために「管理ポータル」を選択し、作成したセキュリティグループを「主要サービスにPower BIAPIへのアクセスを許可する」に追加します。
-
Power BIワークスペースの新しいv2バージョンを作成し、サービスプリンシパルをこのワークスペースの管理者として設定します。
PowerBIレポートをアプリケーションに埋め込む
このプロセスは大きく3つのステップに分かれています。この例では、Postmanを介してEmbedToken、埋め込みURL、およびレポートIDを取得します。
- access_token(テナントIDとして太字で識別)を取得し
、投稿をhttps://login.chinacloudapi.cn/ 2bf14663-2f99-4119-bde1-d970664a7b23 / oauth2 / token
body as
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
-
前の手順でaccess_tokenを使用して、embedUrlとレポートIDを取得し
、GETをワークスペースに送信します(ワークスペースIDとして太字で識別されます)
https://api.powerbi.cn/v1.0/myorg/groups/ 150f3cdb-425f-40e0-b11c -5a376f012791 / reports
認証タイプ:ベアラトークン
トークン:前のステップのaccess_token
-
埋め込みトークンを取得
し、https://api.powerbi.cn/v1.0/myorg/groups/29427125-e483-48fe-ab6e-e4de5dbd961e/reports/d788830e-4630-45d0-bd94-ecc7e35ccfdf/GenerateToken黄色の部品交換に投稿を送信します独自のグループIDとレポートIDになります
承認:ベアラー最初のステップのトークン
ヘッダーは次のとおりです。Content
-Type:application / json
Accept:application / json
body as
data:{ "accessLevel": "View"、"allowSaveAs": "true ” }:
情報が取得されたので、Microsoft Power BI EmbeddedPlaygroundを使用してhttps://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.htmlをテストできます。