モデル駆動型アプリを作成しても削除できないのはなぜか?

Dataverse

Power Apps の「モデル駆動型アプリ」を利用するには、俗に言う有償ライセンスと呼ばれているスタンドアロンライセンスが必要になります。
組織においては、Microsoft 365 ライセンスに含まれる範囲でのPower Appsの利用のみというところも多いのではないでしょうか。
その場合、モデル駆動型アプリの利用は禁止されていると思います。(ライセンスがないから当然ですね)
しかし、適切なライセンスが付与されていないのにモデル駆動型アプリの作成ができます。そして、自分が作成しても自分で削除できないという現象が発生して、頭を悩ませているIT部門の方も多いのではないでしょうか。
そこでなぜそのような現象が発生しているのかを確認した結果をまとめたいと思います。

モデル駆動型アプリが利用できるライセンスは?

ライセンスのプランごとにPower Appsの使用権(どの機能が利用できるか)は異なります。
Power Platform ライセンスガイド」に記載があります。
以下の表をみると、Microsoft 365 ライセンスの範囲では、Power Appsで利用できるのは「キャンバスアプリのみ」ですので、「モデル駆動型アプリ」は対象外で利用できないということになります。

Power Platform ライセンスガイド | 2023年2月」より

ライセンスガイドのほかに以下のドキュメントにPower Platform の各ライセンスに含まれている範囲の概要の記載がありますので、併せて確認しておくとよいでしょう。
Microsoft Power Platform ライセンスの概要 – Power Platform | Microsoft Learn

モデル駆動型アプリの保存先はどこか?

モデル駆動型アプリは、Dataverseの使用権がなければ当然のことながら作成することができません。データソースとしてDataverseを利用することはもちろんですが、モデル駆動型アプリ自体もDataverseに保存されます。
試しにDataverseが作成されていない「環境」にモデル駆動型アプリを作成しようとしたところ、最初にDataverseを作成するように促されました。

Dataverse のセキュリティ

少し話が変わりますが、Power Appsでアプリを作成する際、データソースとして、SharePoint Onlineのリストを利用する方も多いのではないでしょうか。
その際、よく聞かれるのが、特定の行や特定の列のアクセス権限を制御したいという内容です。
SharePointのリストの場合は、行(アイテム)ごとに権限を制御することしかできません。
(アプリ側で列の表示/非表示を頑張れば、アクセスできる列を制御したかのように見せることは可能かもしれませんが。。。)
このようなお話が出てきたときには、「それはDataverse使わないとだね」「Dataverse を利用すると幅広い細かな制御も可能」なんて聞いたことがあることもいらっしゃるかと思います。

すごーくざっくりいうと、Dataverseは「セキュリティロール」に応じて、アクセス権が制御されます。

詳しくは以下のドキュメントをご確認ください。
Microsoft Dataverse のセキュリティ – Power Platform | Microsoft Learn
Microsoft Dataverse のセキュリティ概念 – Power Platform | Microsoft Learn

セキュリティロール

ユーザーがDataverseへアクセスするには、環境ごとに「セキュリティロール」を割り当てる必要があります。
「Basic User」「Enviroment Maker」といった用語を聞いたことはありませんでしょうか。
Power Appsでアプリを作成したり、Power Automateでフローを作成したりできるのは、みなさんが利用しているアカウントに「Basic User」「Enviroment Maker」というセキュリティロールが割り当たっているからです。

Power Platformの利用にあたっては、テナント内のすべてのユーザーがアクセス可能な「既定の環境」と呼ばれる特別な環境があります。「組織名 (default)」のような名前で作成されていると思います。

「既定の環境」にアクセスすると「Basic User」「Enviroment Maker」というセキュリティロールが勝手に割り当たります。
一方、ほかの種類の環境の場合は、セキュリティロールが割り当たっているユーザーのみアクセスできます。
環境におけるユーザー セキュリティの構成 – Power Platform | Microsoft Learn
セキュリティ ロールの割り当て – Power Platform | Microsoft Learn

「セキュリティロール」に含まれる「アクセスレベル」と「アクセス許可」の組み合わせにより、ユーザーがデータへのアクセス許可を制御されることになります。

すごーくざっくりいうと、このセキュリティロールが割り当たっているひとは、このテーブルへはこういうアクセスができますという設定がされている(設定できる)ということです。

モデル駆動型アプリが保存されるテーブルはどうなっているのか?

「Enviroment Maker」のセキュリティロールが割り当たっているユーザーが、モデル駆動型アプリが保存されるテーブルに対して、どのような許可がされているかを見てみます。
※ セキュリティロールの設定の見方については、別の記事にしようと思います。

「削除」が「なし」となっています。
「Enviroment Maker」のセキュリティロールが割り当たっているユーザーは、モデル駆動型アプリを「作成」できるけど「削除」ができないという設定がされています。
これが、モデル駆動型アプリが削除できない理由です。

さいごに

原因がわかったところで、対策はどうすればいいのかとなると思いますが、それについては別の記事でまとめたいと思います。

コメント