Power BIでTeamsを使って動的にPower BIレポート閲覧者をコントロールするには

Power BI では、ワークスペースに対してユーザーに権限を与えることで、レポートを閲覧できユーザーをコントロールできますが、レポートを作っている人が、いつでも誰にレポートを閲覧させるかを決めているとは限りません。
この記事ではワークスペース内の閲覧権を、ユーザーさんにコントロールしてもらうために、Teamsのチームを利用しようという試みを検証します。

## 閲覧権を依頼するやり取り、したくないですよね？
例えば以下のようなケースというのは多いのではないでしょうか？

・Power BIレポートを作る人（情報部門担当者）
・誰にレポートを見せるか決める人（営業課長）
・レポートを閲覧する人（営業課のメンバー）

上記のようなケースの場合、営業課長にPower BI でワークスペースのアクセス権設定方法を伝えてコントロールしてもらっても良いのですが、操作を覚えるコストや、メンバーが変わるたびに権限を調整する手間が発生するのが難点です。

逆に、情報部門が依頼をうけて権限をコントロールする場合には、依頼を出す営業課側も、依頼を受けてワークスペースにユーザーを追加する情報部門担当者も面倒なやり取りが発生します。依頼書と変更記録簿を用意して・・・。なんて、悪夢は見たくないですね。

## そこでTeamsをつかいましょう
閲覧権の範囲は下記のようなイメージになります。Teamsを利用している職場なら、チームメンバーの追加と削除は慣れている作業でしょう。図では営業課の全員がレポートを見られるようなイメージですが、業務の担当ごとにチームが分けることで閲覧ユーザーを限定できますし、逆に複数のチームに対して閲覧権限を設定することも柔軟にできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/d2b481c7-97f9-e32e-e2e0-f9f24cd7a9c3.png)

## 裏側で活躍するMicrosoft365グループ
Teamsを普段使っている際にはあまり意識しませんが、チームを作成したり、そこにユーザーを追加・削除するということは、あるひと固まりのグループを作ったり、追加したり削除したりという行為にほかなりません。
[Microsoftサポート：Microsoft 365 グループ について
](https://support.microsoft.com/ja-jp/office/microsoft-365-%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-b565caa1-5c40-40ef-9915-60fdb2d97fa2)
このリンク先でどんな時にMicrosoft365グループが作成されるかが紹介されています。
・Outlook でグループを作成する
・Microsoft チームを作成する
・ファミリ グループを作成する
・Yammer でグループを作成する
・SharePoint Online でチーム サイトを作成する
・Microsoft Planner でプランを作成する

おやおや？　Teamsでチームを作成したときとは記載されていませんが、Teamsでチームを作成した際には、裏側でSharePoint Onlineのチームサイトが作成されるということなので、上記の項目の中に入ります。チームを開いた際に上部のタブに「ファイル」という項目がありますが子にファイルを保存したり、チャネル内にファイルをクリック&ドロップしたりした際に保存される領域が、このSharePoint Onlineのチームサイトなんです。

YammerやPlannerでもグループが作成されているので、こちらも使えそうですね。

## Microsoft365グループを確認するには？
管理者であれば [Microsoft365管理センター](https://admin.microsoft.com) の「チームとグループ」＞「アクティブなチームとグループ」＞「Microsoft 365」から確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/471656b9-047a-5e60-8416-1cade5901567.png)

または、[Azureポータルのグループ](https://portal.azure.com/#view/Microsoft_AAD_IAM/GroupsManagementMenuBlade/~/AllGroups)からも確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/9d8678e4-74d4-7543-5fe5-322e2b9b8890.png)

## Power BI のワークスペースにMicrosoft365グループを設定する

新たにTeamsに「営業課チーム」を作成しました。まだ誰もメンバーには追加していない状態です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/3be5f146-d365-2415-6ec6-684ee8bec6af.png)
このチームのメンバーに閲覧させたいPower BI レポートは、「testworkspace」と名付けたワークスペースに作成しました。ワークスペースを開き、右上にある「アクセス」を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/07093d73-0b51-9a45-5e7d-83d3e00be37b.png)
チーム名を入力すると、自動的にMicrosoft365グループが検索されて出てきます。今回は「ビューワー」として追加してやりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/170e3f84-2658-e403-c1a1-4c92fae00692.png)

ワークスペースにあるPower BI レポートを開いて、「既定のアクセス権を持つユーザー」のリンクを作成してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/d180fc1a-3cb2-f3c9-79d9-2cc91eadfa2f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/c853cb50-7142-473d-19c3-451396777b40.png)
ここで作成したリンクのコピーを、試しにテストユーザーのアレックスさんのアカウントでログインしたブラウザで開いてみました。アクセス権がないので、アクセス権要求を求める画面が表示されます。この時点ではまだアレックスさんは営業課チームに参加していません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/09e9b6a3-29fc-4624-b363-316fb5e35ef5.png)

今度は、アレックスさんをTeamsを開いて営業課チームに追加してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/62424d97-0498-0fd2-9586-93ca9a6577b9.png)
アレックスさんを営業課のチームにお迎えした状態で、再度先ほどと同じPower BI レポートのリンクをアレックスさんに開いてもらうと、今度はレポートを閲覧することができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/fb93900b-8875-66ff-f529-e6b940fa4759.png)

念のため、営業課チームからアレックスさんを削除しました。すぐだとレポートが開けてしまいましたが、１分ほどたってから開きなおすと、再びアクセス権の要求画面になりました。Teamsのチームに加えたり、削除したりすることで、指定したワークスペースにあるレポートの閲覧を制御できるようになりました。これでいちいちメンバーが増えるたびに情報部門が受付をする必要がなくなりますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285141/4f1d94e2-09a3-2bd7-2898-985fa2cc3110.png)

## おまけ
ところで、サンプルとして使ったPower BI レポートは、マクドナルドのモバイルオーダーの記録を、届いたメールからPower AutomateでスクレイビングしてExcelファイルにデータ化、Power BIで見える化したものです。どこのお店でどんな支払い手段でいくら使ったかがわかります。[作り方はブログ](https://mocabrown.com/blog/archives/6895)で紹介していますので、よかったらこちらもお試しください。

[Power Automateでマクドナルドモバイルオーダーの注文をExcelに記録する](https://mocabrown.com/blog/archives/6895)