記事公開日
【Power Apps × Entra】キャンバス アプリの起動時にオリジナルの利用規約を表示させてみた

「作成したキャンバスアプリ、権限は付与するけど、使う前にちゃんと規約を読ませたいな…」
「全部のアプリじゃなくて、特定のアプリにだけやりたいんだよな…」
……なんてことを考えたことはありませんか? 実はこれ、Entra の機能を使って実現できます。

利用規約の部分をクリックすると展開され、任意のPDFを表示させることが出来ます。
「承諾する」をクリックしない限り、アクセス権があってもアプリにアクセス出来ません。
Microsoftのページやサポートブログにも記載はあるのですが、条件付きアクセスは機能が多く、同じシナリオで手順がまとまっているものは見当たらなかったので、やってみました。
参考になれば幸いです。
以下の記事を参考にしています。
マネージド環境: 個々のアプリに対する条件付きアクセス
条件付きアクセスポリシー
前提条件
- 条件付きアクセスはMicrosoft Entra ID P1/P2で提供されている機能です。また、条件付きアクセスポリシーを使用するには、テナントのセキュリティの既定値群を無効化する必要があります。
- マネージド環境にあるキャンバスアプリが対象になります。
- 本記事ではPower Apps管理者用PowerShellを使用します。実行環境が無い場合はモジュールをインストールしてください。
参考:Power Apps と Power Automate の PowerShell サポート
では早速やっていきましょう。やることは以下の5つです。
利用規約を作成する
利用規約を作成します。表示させるPDFファイルは事前に作成しておいてください。
Entra IDの 条件付きアクセス > 利用規約 を選択します。
新しい条件 を選択し、値を設定して作成します。
今回は画像の設定で作成しました。
条件付きアクセスは後で作成する予定なので、そのように設定します。
利用規約が作成されました。
認証コンテキストを作成する
条件付きアクセス > 認証コンテキスト を選択します。
新しい認証コンテキスト を選択し、値を設定して保存します。
今回は画像の設定で作成しました。IDはどれを設定しても良いのですが、後で使用するので値を控えておいてください。
認証コンテキストが作成されました。
条件付きアクセスを作成する
条件付きアクセスポリシーを作成します。
条件付きアクセス > ポリシー を選択します。
新しいポリシー を選択し、値を設定して保存します。
名前や割り当てユーザーは環境に合わせて自由に設定出来ますが、少なくとも、動作確認をするユーザーには適用されるようにしてください。
ターゲットリソースは「認証コンテキスト」を選択し、先ほど作成した認証コンテキストにチェックを入れます。
また、許可の項目では「アクセス権の付与」を選択し、先ほど作成した利用規約にチェックを入れます。
最後にポリシーの有効化をオンにして作成します。
条件付きアクセスポリシーが作成されました。
アプリに認証コンテキストを適用する
Entra側の設定が出来ましたので、アプリに適用していきます。
アプリには、PowerShellを使用して認証コンテキストを適用します。認証コンテキストを介して、アプリと条件付きアクセスポリシーと紐付けるようなイメージです。
以下のコマンドを実行します。
| Set-AdminPowerAppConditionalAccessAuthenticationContextIds –EnvironmentName 環境ID -AppName アプリID -AuthenticationContextIds 認証コンテキストID |
認証コンテキストIDは認証コンテキストの画面から、環境IDやアプリIDはアプリのURLやPowerShellコマンドから確認できます。
実行できました。
動作確認
設定ができました。動きを確かめて見ましょう。
条件付きアクセスポリシーが適用されているユーザーで、アプリにアクセスします。
利用規約が表示されます。
展開すると、Entraの利用規約にアップロードしたPDFが表示されていることがわかります。
拒否を選択すると……

アクセスが制限されます。
もう一度アプリにアクセスし、承諾すると無事にアプリを開けました。
【おまけ】SharePoint サイトに適用する
認証コンテキストをSharePoint サイトに適用することで、SharePoint サイトでも同じように利用規約を表示させることが出来ます。
SharePoint サイトに適用する場合はSharePoint Online Management Shellを使います。
参考:SharePoint Online 管理シェルを使用して作業を開始する
管理サイトに接続してから、以下のコマンドを実行します。
| Set-SPOSite -Identity サイトのURL -ConditionalAccessPolicy AuthenticationContext -AuthenticationContextName "認証コンテキスト名" |

まとめ
いかがでしょうか。
便利なアプリであればあるほど、取り扱いには注意してほしいというケースも出てくるかと思います。
参考になれば幸いです。
QESでは Power Platform の開発支援、QAサポート、開発者教育、ガバナンス整備など、組織で Power Platform を活用するためのサポートを包括的にご提供しています。Power Platform 活用についてご興味がある/利用中だが課題を感じているお客様は、まずはお気軽にお問い合わせください。
※このブログで参照されている、Microsoft、Windows、Microsoft Azure、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。


