Power Platform の個別環境を管理する権限を委任されたユーザーが把握しておくことや実施すること


# はじめに

まず、Power Apps のアプリや Power Automate のフロー等のリソースは、環境という場所に保存されます。また、Dataverse のデータベースについても環境に紐づいているため、Dataverse のテーブルも環境に保存されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/d4f914a3-c814-687c-225b-2ac0183940f6.png)

Microsoft 365 のライセンスを利用している場合、(Default) という、既定の環境と呼ばれる環境が用意されます。
そのため、例えば、Power Apps の有償ライセンスなどを持っていない場合は、この既定の環境でアプリやフローを作成することになります。

そして、例えば、Power Apps の有償ライセンスを購入して更に市民開発を促進する場合、個別環境を市民開発者に提供して、Dataverse を活用したアプリを作成してもらうことになります。

この場合、IT 部門からアプリ作成者に環境を管理する権限についても委任することになるケースが多いです。

例えば、上記画像のような環境構成の場合、営業部環境については、営業部のアプリを管理する立場のユーザーに対して環境を管理する権限を委任する、●●プロジェクト環境については、プロジェクトを管理する立場のユーザーに対して環境を管理する権限を委任するイメージです。仮に委任しない場合、これらの環境に対して、後述するような作業を全て IT 管理者の方で行う必要があり、市民開発が進み、環境の数が多くなると、正直 IT 管理者の負担が大きくなりすぎて現実的ではないためです。

しかし、環境を管理する権限をアプリ作成者に委任するためには、把握しておくことや実施すること、その操作方法について説明する必要があります。

そのため、今回は、アプリ作成者に Power Platform 環境を管理する権限を委任するにあたって、委任された側のユーザーが把握しておくことや実施することについて整理したいと思います。

# Power Platform 管理センターへのアクセス

まず、環境を管理するためには、Power Platform 管理センターへアクセスする必要があります。
これまで、既定の環境のみ利用していた場合は市民開発者の方が Power Platform 管理センターへアクセスすることは基本的になかったと思いますが、個別の環境を市民開発者に提供して Dataverse を活用したアプリを作成してもらう場合、Power Platform 管理センターへアクセスしてもらう必要があります。

こちらのアクセスは簡単です。いつもの Power Apps の画面にアクセスし、設定から [管理センター] を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/21885a69-1cd9-bc8a-3bbb-556fb45cd2d2.png)

Power Platform 管理センターが開きます。もちろん、開けたからといって、市民開発者の方が Power Platform の管理全般できるということではありません。権限の範囲内で操作が可能になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c77c763e-91c7-a403-e37e-703ba1b42a4e.png)

例えば、以下のメニューにアクセスすると、権限がないため表示できません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e0c9c51b-b987-ddd5-0553-4fbde047eeae.png)

また、環境メニューにアクセスすると、権限が委任された環境のみ表示されます。環境の管理権限を委任された市民開発者の方は、こちらを通じて環境の管理を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/ec3a69e4-3bb3-8b46-89e3-ba7d271a5329.png)

# 環境へのアクセスの制御

まず、環境に対して誰がアクセスできるのかを制御することができます。個人的には、市民開発の場合、こちらの操作を実施して環境へのアクセスを細かく制御することは少ないかもしれませんが、方法について紹介します。

まず、環境を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e269c556-c0ab-4243-d4c5-ab15db3c07c4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/4d8980b1-aed6-843f-fe93-75accd72d4a6.png)

上記編集メニューより、以下のセキュリティグループの個所を選択すると、環境に対するアクセスを特定のセキュリティグループのメンバーだけに絞ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/b3ac67e8-5655-f2fa-bab2-56e78a0507a7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/9ae48c90-39b2-06ad-2607-b26006a8e108.png)

ただ、こちらは、以下の記事でも触れたように、環境内で作成する Power Apps のアプリの利用者が、特定のセキュリティグループのメンバーだけの場合で、かつそれを厳密に管理したいという強い要件がある場合に実施する作業と認識しています。例えば、環境内で作成する Power Apps のアプリの利用者が組織の全員など、多くのユーザーになる場合、こちらの方法で制限する必要はないと思います。この場合は、[なし] を選択します。IT 管理者が環境作成した時点でセキュリティグループが割り当てられていない場合は、追加の作業は不要です。

https://qiita.com/Takashi_Masumori/items/6f0d9a094e40564736be#%E7%92%B0%E5%A2%83%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9%E3%81%8C%E3%81%82%E3%82%8B

:::note
仮に、環境内で作成する Power Apps のアプリの利用者が、特定のセキュリティグループのメンバーだけの場合、単に、アプリを共有するとき、アプリを使わせたいグループを選んで共有するだけでもいいです。もちろん、アプリを共有されていないユーザーはアプリを利用できないです。仮に上記方法で、環境へのアクセスを特定のセキュリティグループに絞った場合、セキュリティグループのメンバー以外に対してアプリを共有しようとした際、エラーになります。このように、厳密に管理したい場合、こちらの設定を行います。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/1d96ff38-f3ea-3ad1-d764-69ecc33d3ad8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/3145ae05-e1f3-2733-1f3e-5586dffd095a.png)

# 環境を操作するための権限を他のユーザーに付与する

環境を払い出してもらい、環境の管理者権限を委任されたユーザーは、他のユーザーに対して環境を操作するための権限を付与することができます。

例えば、自分以外に環境を管理する権限を付与する、環境内で Dataverse のテーブルを作成したり、アプリを作成したりすることが出来る権限を他のユーザーに付与する作業を実施する必要があります。

この場合、具体的には、セキュリティロールを他のユーザーに付与する必要があります。
セキュリティロールとは、端的に言うと、環境に対して操作を行うアクセス権や環境内に作成した Dataverse テーブルに対して操作するためのアクセス権の詰め合わせのようなものです。

セキュリティロールの付与はこちらから行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/106219d4-09cc-6d2e-b60c-121e78a3a09b.png)

ただ、こちらを開くと以下のようなメニューが表示されます。恐らく、最初はびっくりすると思います。実は、Power Platform の環境では、既定で多くのセキュリティロールが用意されています。もちろん、細かく覚える必要はなく、基本的に使用するのは数個くらいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/f232b1d2-d8ee-dd90-88a6-f1324fe426aa.png)

以下は主に利用するセキュリティロールです。記載の通り、他のユーザーを環境の管理者にする場合は、システム管理者、それよりもう少し弱いロールとして、システムカスタマイザーがあります。こちらのふたつ似ていますが、システムカスタマイザーは、セキュリティロールの管理ができないです。ただし、どちらも環境内の Dataverse テーブル、例えば、他のユーザーが作成したテーブルに対しても権限を持つなど、かなり強い権限を持っています。そのため、基本的に最小限のユーザーに対してこれらのセキュリティロールを割り当てる必要があります。

なお、Power Platform の個別環境を管理する権限を委任されたユーザーはシステム管理者に追加されています。こちらは、IT 管理者が環境を作成して追加をしています。

また、環境作成者は、ややこしい名前ですが、環境を作成できる権限ではなく、環境内でアプリやフローを作成できる権限です。しかし、Dataverse のテーブルは作成できません。そのため、環境内で開発をするが、Dataverse のテーブルは利用しない、例えば、AI Builder のみ利用する場合などにはこちらのセキュリティロールを割り当てるとよいかと思います。

環境の管理者権限を委任されたユーザーは、誰にどのようなことをさせたいか、どこまでの操作を許可したいかなどを踏まえ、適切なセキュリティロールを付与する必要があります。例えば、ユーザー B さんには、自分と同等の環境を管理出来るようにしたいため、システム管理者のセキュリティロールを付与する、ユーザー C さんには、テーブルの作成までは許可するが、セキュリティロールの管理まではさせたくない場合、システムカスタマイザーのセキュリティロールを付与するといった感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/cdb5e9ee-1142-57af-ab5b-cd96872ed254.png)

では、これらのセキュリティロールを割り当てる手順についてです。

こちらはシンプルで、セキュリティロールを選択して、[メンバー] を選択して、[ユーザーの追加] を選択して、ユーザーを検索して追加します。また、権限を削除したい場合は、一覧にいるユーザーを選択して削除するだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/fda5eb5f-7196-698c-49fe-7aa13361102c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/899834ed-abbf-45d5-bab2-bd5f51620a73.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/a38f2873-a009-8e2c-0960-7ac9b181ea03.png)

なお、環境を作成してすぐの場合、ユーザーを検索しても出てこない場合があります。この場合は、ユーザーの方から行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/6cb98822-e59f-6c7e-ed93-ebb6502cc7aa.png)

[ユーザーの追加] から、ユーザーを追加して、その次にセキュリティロールを付与します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/80dc3924-cca6-09bb-2d00-c263aac5bdf6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c7eece20-7bc4-1709-90a3-c0a0e9af6af4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/850a3b62-2a70-ae20-0280-6d86824e913a.png)

これらの操作により、環境の管理者権限を委任されたユーザーは、他のユーザーに対して環境を操作するための権限を付与することができます。

# 環境内で作成した Dataverse テーブルを利用する Power Apps キャンバスアプリを他のユーザーに共有する

環境内で作成した Dataverse テーブルを利用する Power Apps キャンバスアプリを他のユーザーに共有する場合、環境を管理する権限や環境内でアプリやフローを作成する権限はいらないです。

そのため、別のセキュリティロールを付与する必要があります。端的に言うと、アプリで利用する Dataverse テーブル に対して権限を持つカスタムのセキュリティロールを作成する必要があります。

こちらについては、以下の記事にまとめていますので、参考にしていただけたらと思います。

https://qiita.com/Takashi_Masumori/items/6f0d9a094e40564736be#%E7%92%B0%E5%A2%83%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A8%A9%E3%81%8C%E3%81%82%E3%82%8B

# まとめ

今回は、Power Platform の個別環境を管理する権限を委任されたユーザーが実施することについて整理してみました。恐らく、多くの市民開発者の方が環境を管理する権限を委任されることになるものの、初めて聞く概念が多く結構難しく感じると思います。そのため、こちらの記事が少しでも参考になれば幸いです。