[セキュリティ]
SAML+AWS(KMS)
構想メモ。マルチテナントでのSAMLのサービスを構築しようとした場合、以下のことが必要になる。
優先度高め
- SAML本体の機能
- IdP Initiated SAML, SP Initiated SAML
- SAML自体の実装は Spring Security SAML で
- 複数ユーザーログイン、複数会社・グループ登録、データ保存用DB分割
- 複数SAML Service Provider登録
- SAML SPはSPのentityIDにかかわらず、登録できるようにしなくてはならない
- データ階層 Company(company) -> Group(group) -> SP Domain(domain)
- クエリをこのアプリに投げて、?company=xxx&spDomain=yyy で検索するとアプリ自体の認証が走る
優先度低め(Nice to have)
- 複数の秘密鍵の作成・保持
- SAMLの秘密鍵を会社ごとに用意してあげることが必要かもしれない(有償サポートとすべき)
- Spring Security SAMLの秘密鍵をAWS KMSからロードできるようにしておけばOK
- 実際に実現できるかどうかは不明、まあできるでしょ
AWS KMSの機能
AWS KMS を使用して、マスターキーで以下の管理操作を実行できます。
- マスターキーの作成、説明、一覧表示
- マスターキーの有効化と無効化
- マスターキーの使用ポリシーの設定と取得 (アクセス制御)
- マスターキーを参照するフレンドリ名になるエイリアスの作成、削除、一覧表示、更新
- マスターキーを削除してキーのライフサイクルを完了する