LoginSignup
1
1

More than 3 years have passed since last update.

[Azure]ServicePrincipalからPowerBIに接続してみる

Last updated at Posted at 2021-04-04

はじめに

本記事では、MicrosoftAzureが提供しているPowerBI APIを利用し、ServicePrincipalからPowerBIアカウントに接続を行う一連の流れを解説して行きます。

実行環境

AzureActiveDirectory :PowerBI接続用にアプリ(ServicePrincipal)を作成します。
PowerShell:Mac版を使用
MicrosoftPowerBIMgmtモジュール:以下のコマンドより、インストールしてください。(最新版がインストールされます。)

Install-Module -Name MicrosoftPowerBIMgmt

事前準備

事前準備として、以下の項目を実施します。
・ServicePrincipalの作成
・ServicePrincipalへ自己証明書のインストール

ServicePrincipalの作成

AzurePortalに接続後、左のブレードからAzureActiveDirectoryを選択、アプリの登録を押下してください。
そして、画面上部の新規登録ボタンを選択、アプリケーションの登録画面に遷移します。下の画面が出てきたらOK

スクリーンショット 2021-03-24 1.59.53.png

パラメータですが、以下で設定します。
名前:Powerbiapp
その他は規定

登録を押すと、以下のようにServicePrincipalが作成されているはずです。
スクリーンショット 2021-04-03 17.52.35.png

出来ましたね。アプリケーションIDとディレクトリ(テナント)IDは接続時に使用するため、控えておきましょう。

ServicePrincipalへ自己証明書のインストール

ServicePrincipalからPowerBIへ接続する際ですが、証明書認証のみの対応のため、今回は自己証明書をServicePrincipalへインストールします。
(ユーザアカウントを利用する場合はID、パスワードで認証可能です。)
自己証明書の作成方法については本記事では省略します。

それでは、先ほど作成したPowerbiappより証明書とシークレットを選択してください。
選択後、以下の画面が表示されます。
スクリーンショット 2021-04-03 19.09.29.png

この画面から証明書のアップロードを行います。アップロードが正しく完了していると以下のような表示に変わっているはずです。拇印は接続時に使用するため控えておきましょう。
スクリーンショット 2021-04-03 19.11.29.png

PowerShellから実際に接続してみる

PowerShellを開きまずは以下のコマンドを実行。PowerBIのモジュールをインポートします。

Import-Module -Name MicrosoftPowerBIMgmt 

次にパラメータの設定を行います。

$applicationid = <控えていたアプリケーションID>
$tenantid = <控えていたテナントID>
$thumbprint = <控えていた拇印>

準備が整いました。それでは接続してみましょう。以下のスクリプトを実行。

Connect-PowerBIServiceAccount -ServicePrincipal -ApplicationId $applicationid -CertificateThumbprint $thumbprint -TenantId $tenantid

以下が出力されたら成功です!

Environment           : Public
TenantId              : <テナントID>(これは出力されてなくてもOKです。)
ClientId              : <アプリケーションID>
CertificateThumbprint : <拇印>

おまけ

PowerBIアカウントに接続できたら次のコマンドレットを実行してみてください。
これはPowerBI側のワークスペース一覧を取得するコマンドレットです。

Get-PowerBIWorkspace

実行すると...?あれ、失敗しましたね...

Get-PowerBIWorkspace: Operation returned an invalid status code 'Unauthorized'

失敗の原因ですが、ServicePrincipalがPowerBI側のリソースをReadする権限がないことに
よるものです。Read権限を付与する方法は次回の記事で書こうと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1