573 Views
January 30, 25
スライド概要
製造業勤務
個人アプリを共有する際に セキュリティ面をあれこれ考えてみた
自己紹介 某製造業 情報システム統括部所属 2020年2月のMicrosoft Ignite Tour Osakaに参加して Power Apps/Automateの魅力を感じ 個人でいろいろ勉強していたらいつの間にか仕事でも必 要になるように... 近藤 千真 (こんどう かずま) 今は事業部門のDXを支援する中で活用したり、個人的に も業務効率化のアプリを開発したりしています
アプリ作ってみた!
せっかくなら他の人にも共有してみよう!
いざ共有しようとすると課題が… • API経由でデータを取得する際には、個人単位の「APIアクセストークン」が必要。自 分が使う分には、アプリ/フロー内にベタ書きで良かったが、他ユーザーにも共有する 場合にこの情報をどこでどう管理しようか...? • アプリで取り扱うデータには、アプリ開発者が見てしまうのが適切ではないデータが 含まれるかもしれないが、このままでよいのだろうか...?
①Power Automateでセキュア入力・出力を設定 何らかの不具合発生時に調査が難しくなるため、使いどころは考える必要がある。 環境変数を使用して、検証環境は設定OFF、本番環境は設定ONにできると良かったが、 現状では固定設定しかできなそう。
②データ保存先に”ローカル”を使用 • APIのアクセストークン情報の管理を、Excel/SharePoint Listでやるのはしんどい。。 • Dataverseならやれなくはないが、お手軽にはできなそう。 • SaveData、LoadData関数を使用して、ローカルに保存してみよう! SaveData、LoadData、ClearData 関数 - Power Platform | Microsoft Learn Chrome/Edgeなどで、F12キーで開発者ツールを開いてみると、「IndexDB」という部分にデータが保存されていることが分かる
SaveData/LoadData関数について • Microsoft Learnには、今も以下の記載がありますが、すでに「試験的な機能」には表示されな くなっているので、正式リリースされているのでは…? • Power Apps Studioでのデバッグモードでは、以下のエラーが表示され動作しない • データがブラウザに「アプリ」単位で保存されるため、共用端末の場合には注意が必要
③APIのアクセストークン情報を暗号化してみる • Power Automateの「カスタムコネクタ」の機能を使うと、独自の機能をプログラム 言語で実装することができる(開発・利用には有償ライセンスが必要) • プログラム言語:C#では、AESと呼ばれる暗号化方式を使用することができ、事前に 定義しておいた共通鍵を使って、機密情報の暗号化や、復号化(暗号化された文字列 を元に戻す)を行うことができる • このやり方を実践している人が、既にYoutubeで動画公開していた。。 • Unleashing the Magic of Encryption in Power Automate - YouTube
暗号化・復号化を行うカスタムコネクタの作成
暗号化・復号化を行うカスタムコネクタの作成 Power AppsからAPIアクセス トークン情報が渡される LoadData関数で暗号化済 みのトークンを取得して 渡される 暗号化のカスタムコネクタを呼び出し、 ApiAccessToken20250125が変換される 復号化のカスタムコネクタ を呼び出し、 元のトークンに戻される Power Appsに値が戻され SaveData関数でブラウザに 保存する
まとめ • 1つの事例の中で、様々なPower Apps/Automateの標準機能、カスタマイズでの実現 方法を学ぶことができた! • 今回は、あえて「Power Platformでセキュリティ面を考慮した実装をどこまで実現で きるのか?」を突き進んだ感があるので、これが正解とは思っていないです! • 社内利用であったとしても、IT基盤に対する評判(?)を落とさないためにも、アプリの 利便性、開発効率性、セキュリティでバランスを取りながら今後も開発を進めて行け ればなと思います