Azure でセキュリティ アーキテクチャにアプローチする方法についてアドバイスを求めています。
バックグラウンド:
非常に安全な (個人の機密データ) 必要があるマルチテナント アプリを Azure 上に構築することを検討しています。このアプリは、標準のブラウザとモバイル デバイスからアクセスできます。
セキュリティ アクセスの種類:
3種類のユーザー/アクセスタイプがあります...
1 - https を介した単純な古いユーザー/パスワードは問題なく、一般的な非プライベート SQL とホストされたファイルの両方にアクセスできます
2 - ユーザー/https を通過しますが、ユーザーのマシン/デバイスにインストールされる証明書によるユーザーの認証が必要です。このレベルのユーザーは、データベースとアップロードされたファイルの両方で保存時に暗号化する必要がある機密データにアクセスする必要があります。
3 - (2) と同じですが、いくつかの 2 要素認証が追加されています (他の目的で YubiKey を使用しました - 電話 OTP の提供も検討する可能性があります)。
ほとんどのユーザーは自分のテナント データベースにしかアクセスできませんが、選択したテナント データにアクセスする必要がある「アカウント マネージャー」タイプのユーザーがいるため、サービスを提供するテナントごとに 1 つの証明書のコピーが必要になると予想されます。ある種のマスター証明書を使用する必要があります。
データベースの種類:
マルチテナントの観点からは、Azure Federated SQL が適しているように思われます。(a) 各テーブルに "TenentID" キーを使用して 1 つのアプリを記述し、ログイン後に分離を処理するグローバル フィルターを設定するだけだからです。 (b) Azure フェデレーション SQL が実際にはバックグラウンドでテナントごとに個別の SQL データベース インスタンスを維持していることを理解しています。 -to-build-multi-tenant-databases-with-sql-databases.aspx )
ファイル共有のセットアップと管理、保存中の SQL とファイル データの暗号化、ユーザーの認証など (新しいユーザー サインアップ設定での自動管理) に必要なアプローチに関して、リンクを示したり、アドバイスを提供したりできます。