フィルター ≠ 権限:Power Apps の表示制御と権限制御の違い

Power Apps で業務アプリを作るとき、「ユーザーによって特定のデータやコントロールを見せるように (あるいは見せないように) したい」と思う場面はよくあるかと思います。例えば以下のようなケースです。

  • 管理者は全てのデータを編集・閲覧できる、他のユーザーは自分の作成したデータのみ編集・閲覧できる
  • 管理者のみに「マスター管理」ボタンを表示し、他のユーザーにはボタンを非表示にしたい

こうした設定は UI 上のユーザー体験を最適化する上で有効であり、このような表示制御のために、Filter 関数で一覧のデータを絞り込んだり、ボタンコントロールの Visible プロパティで動的に表示/非表示を切り替えるなどの工夫をしたりしますが、ここで勘違いされがちなのは、このフィルターがデータ自体のアクセス制御になっているわけではないという点です。

アプリ側のフィルターだけでは権限制御にならない

Power Apps 内での表示・非表示は、実際にはアプリ側で実装されたフィルター処理に過ぎません。
例えば、SharePoint リストをデータソースとして接続している場合、アプリで「自分の作成したデータのみ編集・閲覧できる」ような設定をしても、SharePoint リストのアイテムレベルでアクセス権限を制御していなければ、ユーザーはPower Apps 以外の手段 (SharePoint リストへ直接アクセスする、検索する等) で他の人の作成したデータを閲覧できてしまいます。
つまり、アプリ側のフィルターはあくまで “見せ方の制御” であって、権限の制御” にはならないことに注意が必要です。この点を誤解してしまうと、設計段階でセキュリティの穴を作り出してしまう危険性があります。

安全な設計のために必要なこと

そのため、絶対に特定の人以外に見せたくないデータを扱うようなアプリを作る場合は、データベース側での権限制御も不可欠になります。
例えば、Power Automate を用いて新規データ作成時に権限を自動的に付与・変更するといった動的な制御を組み込むようなアプローチが必要になります。

アプリ開発時には『ユーザーが直接データソースにアクセスした場合に見られてもいいデータか?』という観点で設計し、アプリ側のUI設計とデータソース側の権限管理をセットで考えることが重要になります。

まとめ

Power Apps での表示制御は関数を用いて簡単に実現できローコード開発ならではのスピード感を実感できますが、あくまで “見せ方の調整” にすぎません。機密情報などの本当に守るべき情報を扱うアプリを作成する場合には、必ずデータソース側での権限制御をあわせて行う必要があります。UIでの工夫とデータ権限の設定を両方揃えることで、安心して使えるアプリになります。


SxS (エスバイエス) では、日々更新される Microsoft 365 のアップデート情報を資料にまとめて分かりやすくご紹介するサービスもご提供しております。
この度、過去にご紹介した『アップデート情報資料』をご覧いただける、SxSサービス紹介資料 をご用意いたしました!
SxSのサービス内容についての詳しいご案内もございますので、ぜひ以下より資料をダウンロードしてご確認ください!

資料ダウンロードはこちらから!

    お名前必須

    参考になったらシェアお願いします!
    • URLをコピーしました!
    目次