ワークスペースとアプリ権限の使い方を検証してみた


#**1. はじめに**
　私は、某企業の情報システム部に勤務している。Power BIデスクトップでレポートを作成する、いわゆるデータ分析業務が中心だ。内容がまとまったら、Power BIサービス上に発行し、社内のメンバと共有する機会も多い。
　さて、先日のミーティングで「アプリ」を使ったレポートの公開を検討することになり、さっそく「アプリ」なるものを発行してみた。ぼんやりと存在は知っていたが、実際にさわるのは初めてだ。ふと、ひとりごとが頭をよぎる。
　「アプリのアクセス権限ってどうなるんだろう？」
　システム管理で、ユーザに展開するときに注意したいのが権限まわりだ。設定を開くと、こんな画面が表示された。



&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/43bc3865-30d5-562b-e0ab-0efe30b30c65.png)


　むむ・・ユーザに対して何らかの許可/非許可が設定できるらしい。
しかし、「アプリ」初心者の私には違いがよくわからない。とはいえ、権限の分かれ道となるここでミスしたら厄介なことになりそうだ。
　ネットの海にヒントが転がってないか、と淡い期待を抱きつつあれこれ調べてみたが、ピンとくるものがない。困ったなぁと思ったのが運のツキ、ならば自分で調査してみようではないかと決意するに至った、そんなお話である。
 
と、その前に「アプリ」について軽く共有しておこう。下の図を見ていただきたい。
アプリは、Power BIサービスの機能のひとつで、ワークスペース内の複数のダッシュボードとレポートをまとめて、任意のユーザと共有することができる。
　閲覧するユーザは、ワークスペースからレポートをいちいち探さなくても、アプリ単位でセットになったものを見ることができる。また、任意のレポートやダッシュボードを選択できるので、開発者は「開発用」と「ユーザ用」を分けてキープするというアイディアもありだ。

&nbsp;&nbsp;![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/7928ca77-0cff-8678-0636-36e1cb23d32e.png)

#**2. 検証方法**
　先ほど示したポップアップには、チェックボックスが3つあった。これらを①, ②, ③としよう。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/e0d65e8b-1920-184e-f8dc-232f00a59998.png)


　なるほど、自分が権限を持つ者となり、①-③を切り替えてどうなるか調べれば解決しそうだ・・と思っていたところに気がかりなことを思い出した。それとは別に、アプリの基になるワークスペース自体にもアクセスできるかどうかの権限を設定できるのだ。
　ここで1つの疑問が浮かぶ。「ワークスペース権限とチェックボックスが組み合わさるとどんな状態になるのだろう？」
　今回、検証のアシスタントとして同僚に手伝ってもらうことにした。私がこれらの権限を付与および解除したとき、彼の操作はどのように変わるのか。レポートやアプリにおける一般的な操作を6項目用意し、「できること」「できないこと」を整理するべく調査を開始した。


																			
													



#**3. 検証結果**
　結果は次のようになった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/db4c70f6-13e2-8ed7-d481-9cb07b9b49ab.png)

　ざっくり言うと、ワークスペースの権限の有無によって、できる操作が大きく変わってくることがわかった。具体的にどんな操作に影響があるのか詳しく見てみよう。

**●	ワークスペースの権限を持つ場合**
　アプリの基にあたるワークスペースへアクセスできるので、ほとんどの操作ができる。つまり、ワークスペース権限はアプリの権限を上回る影響力をもつと考えてよい。実際に、ワークスペースの権限を持つユーザにアプリの権限を設定しても、当該ユーザの名前は設定欄から消えてしまう。これは、アプリの権限はワークスペースの権限に包括されるということを示唆している。けれども、ワークスペースとアプリの権限は互いに異なるものという位置づけなので、アプリに対しては、アプリ特有の権限である①-③が適用される。特に、②はアプリの権限設定状況に依存するので、②があればアプリ内のレポートを複製できる。
　ただし、今回の場合はワークスペースの権限を持っているので、直接ワークスペースにアクセスしてレポートを複製することは可能である。なので、②の有無による運用上の影響はないといえる。

**●	ワークスペースの権限を持たない場合**
　ワークスペースへアクセスできないので、アプリ権限の①-③のいずれかを付与されることで、各操作が可能になる。例えば、①の権限を与えられるとしよう。レポートに使われているデータセットを用いてExcelでの分析や、新たなレポートの作成ができる。そこに②が加わると、アプリのレポートを複製して保存できるようになり、さらに③で、複製したレポートを再共有できるようになる。簡単に別表でまとめた。①-③が付与されるにつれて、段階的にできることが増えていく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/94443c6a-62e8-4d90-cbca-9b678167a4df.png)
																			
																			



	
					
#**4. 運用方法の提案**
　アプリとその権限は、どんなシーンで活用できるだろうか。立場をスイッチしながらストーリーを考えてみよう。
　例えば、レポートの管理者になったとしよう。「開発用」と「ユーザ用」でレポートを分けて管理できるというメリットを享受すべく、レポートの公開をアプリで検討中だ。このとき、ユーザにいきなりワークスペース権限を付与すると、せっかく切り分けた開発スペースにも意図せぬ権限を与えることになり、「開発用」のレポートを見られてしまうことになる。
　一方、ユーザの立場で考えてみよう。基本的には、開発してもらったレポートを閲覧するという立場なので、開発者としての権限はいらない。けれど、公開されているレポートをもとに独自のレポートを作ってみたい。管理者としては、独自のレポート開発ということなので、できればワークスペースの権限は与えたくない。といった具合に、ワークスペースの権限だけで管理しようとするとどうしても無理が出てきてしまう。
　このような状況に柔軟性をもたせるのがまさに「アプリの権限」だ。アプリの権限を設定することでいろんな操作権限をカスタマイズできる。先ほどのストーリーだと、管理者の私は、ユーザにアプリ権限を付与すれば自由にワークスペースで開発ができるし、後者のユーザは必要なアプリ権限さえもらえれば、独自のレポート作成が可能となる。
　つまり、レポートの公開には状況に応じた方法が複数用意されている。まず、レポートの管理者や開発者にあたるメンバにはワークスペースの権限を設定することが望ましいだろう。それ以外のメンバについては、彼らとどんな作業をしたいのかプランを立て、それに即したアプリおよびアプリの権限を活用していくことで、より柔軟なビジネスモデルの可能性が広がる。

&nbsp;&nbsp;![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/0f021206-4513-0b22-1c4c-58afeb50cda9.png)

#**●権限変更時の注意点**
　権限を解除しようとしたとき、下のようなポップアップが表示されることがあった。
今ある権限を制限しようとしているので、「アクセス許可の管理」にて手動で変更しましょう、というメッセージだ。ちなみに、アプリ権限を初めて付与する時には表示されない。ご参考までに。

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769700/d82f1cd9-2ef8-371b-2287-d031b48966de.png)
#**最後に**
　いかがでしたか？アプリと権限をうまく使い分けることで開発者、ユーザ、どちらにもメリットがありそうですね。今回の結果でアプリの魅力が伝われば幸いです。アプリの展開を検討中の皆さま、ぜひ参考してみてください。