はじめに
PowerAppsで作成したアプリを外出先からスマートフォンで操作する場面もあるかと思います。しかし機密情報や個人データのセキュリティを確保するためには、PC以外のデバイスからアクセスがあった場合は、ファイルをダウンロードさせないようにコンテンツを表示しないか、選択できないようにするなどの制御ができれば理想です。
この記事では、どのデバイス(OS)からアクセスがあったかを判定して、必要な情報のみを表示するなど、OSのタイプに応じた適切な管理方法について解説します。
※MS公式では「OSType を使用して、報告されたオペレーティング システムに基づいてアプリのエクスペリエンスや機能を変更しないでください。」という注意書きがあります。そのため実装はあくまで自己責任でお願いします。
詳細
-
ホストオブジェクトについて
スマホからのアクセスを判定するためにはPowerAppsのホストオブジェクトを利用します。
ホストオブジェクトで使える種類は以下の通りです。
■ BrowserUserAgent プロパティ
アプリが実行されるウェブブラウザの種類やバージョンを示します。■ OSType プロパティ
アプリが実行されるデバイスの種類「Windows、macOS、iOS、Android、Linux」を示します。■ SessionID プロパティ
ユーザーのセッションを一意に識別するためのIDです。アプリ内のユーザーアクションを追跡する際に役立ちます。■ TenantID プロパティ
PowerAppsアプリが所属しているテナントを示します。 -
使用例
指定したOS以外からアクセスした場合、ボタンを押せないようにする
例)WindowsはOK、それ以外はNG
<手順>
ボタンのDisplayModeを以下のように変更します。If(Host.OSType="Windows",DisplayMode.Edit,DisplayMode.Disabled)
テキストを変更する場合は以下の式をTextプロパティへ。
If(Host.OSType="Windows","Windowsからのアクセスなのでクリックできます。","Windows以外からのアクセスなので押せません")
指定したOS以外からアクセスした場合、表示をしないようにする
例)WindowsはOK、それ以外はNG
<手順>
表示をさせたくないコンテンツ(今回はFormの添付ファイルカード)のVisibleプロパティを以下のように変更します。
If(Host.OSType="Windows",true,false)
まとめ
例にあげたのはスマホからのアクセスを想定したものになりますが、セキュリティと利便性を考えて色々と応用を効かせることができると思います。
(ただしあくまでも自己責任で!)