AWS Cognito をALBのリスナールールに追加する場合
AWS Cognitoを使って実装をする際に、
Cognitoのユーザープールに設定方法について解説する記事はいくつかみたのですが、
アプリケーションロードバランサーのリスナールールと連携する部分について解説する記事がないので、
記録としてあげておきたいと思います。
参考にしたもの
[Youtube User Authentication with AWS Application Load Balancer and Cognito] (https://www.youtube.com/watch?v=cAEtjMI1KcQ)
こちらはほぼ唯一のAWS CognitoとALBを使ったハンズオンの動画(英語)です。
ゼロからVPNの設定からCognitoの設定までをすべてカバーしています。
前提:
先にAWS Congnitoのユーザープールの作成、アプリクライアントの作成を行う
ネットワークの設定を行う(VPN,サブネット等)
1.EC2>ロードバランサ
2. ルールの編集
2.1 パスの設定とアプリクライアント
- 1つのユーザープールにつき、複数のアプリクライアントを設定することができる。
- パスごとに同じユーザープール、別々のアプリクライアントを設定することで、そのパスがアクセスできる属性情報をコントロールすることもできる。
- Cognitoが提供しているログインページもアプリクライアント単位に作成されるので、パスごとに別々のログインページを設定することも可能
構築時に参考になった記事
これは認証のデータがサーバーとCognitoのユーザープールでどうやりとりされているかの解説
仕組みを知りたい方向け
こちらは実際にAWS CognitoとALBの設定をするのにとても参考にさせてもらった記事です。
ALBの設定は、パスによってターゲットを変更したい時/パスによってCognitoのアプリクライアントを分けたい時は「ALB>リスナー>編集」ではなく、上記こちらの記事で解説している設定が必要です。