11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Power BI Desktop 空のクエリを使った Azure AD 認証の活用

Posted at

本日 PowerBI Desktop から Microsoft Graph に接続しようとした際、コネクターがないため自分で認証を書く必要がありました。その覚書。

情報元: Error getting OData from Microsoft Graph: Access to the resource is forbidden

Azure AD へのアプリケーション登録

Microsoft Graph を使ってみよう : Azure AD v1 エンドポイントのアプリケーション認証を ADAL で行う を参考に Azure AD に Microsoft Graph が使えるアプリケーションを登録し、以下を取得。

  • アプリケーション ID
  • クライアントシークレット

Power BI Desktop で接続を作成

1. Power BI Desktop を起動。

2. 「クエリを編集」をクリック。
image.png

3. 「新しいソース」より「空のソース」をクリック。

image.png

4. 「詳細エディター」をクリック。

image.png

5. クエリに以下内容を張り付け。tenant_name および client_idclient_secret を実際の値に更新。

let
    TokenResponse = Json.Document(Web.Contents("https://login.windows.net/<tenant_name>/oauth2/token", 
	[
	Content = Text.ToBinary(Uri.BuildQueryString([
            client_id = #"Azure Application Id", 
            resource = "https://graph.microsoft.com", 
            grant_type = "client_credentials", 
            client_secret = #"Azure Application Client Secret"
        ])), 
	Headers = [Accept = "application/json"], ManualStatusHandling = {400}
        ]
    )),
    AzureAccessToken = TokenResponse[access_token]
in
    AzureAccessToken

6. クエリの名前を AzureAccessToken に変更。これでアクセストークンが取れます。

image.png

7. 次に実際のクエリに追加。空のクエリをもう一つ追加し、「詳細エディター」をクリック。以下をクエリとして追加。ここではユーザーの一覧を取得するクエリを利用。Authorization ヘッダーには先ほど作成したクエリを指定。

let
    Users = OData.Feed("https://graph.microsoft.com/v1.0/users", [Authorization = "Bearer " & AzureAccessToken])
in
    Users

8. 「完了」をクリックした際に資格を求められた場合は、「視覚情報の編集」をクリック。

image.png

9. 匿名で接続。

image.png

尚、この時点で以下のエラーが出る場合は、設定の変更が必要。

Formula.Firewall: クエリ 'クエリ1' (ステップ 'Users') は他のクエリまたはステップを参照しているため、データ ソースに直接アクセスできません。このデータの組み合わせを再構築してください。

Power BI Desktop 設定の変更

1. File より、オプションと設定 | オプションをクリック。

image.png

2. 「現在のファイル」の「プライバシー」より、二つ目のオプションを選択し「OK」。

image.png

3. 「プレビューの更新」をクリックしてデータ取得を確認。

image.png

まとめ

そのうち Microsoft Graph 用のコネクタが出ると思いますが、一旦はこちらで回避できます。尚、トークンは都度取得する必要があります。

11
4
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
11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?