ALB Authentication + Cognitの500エラーに対処する
ALB Authentication + Cognitの500エラーに対処する:
ElasticBeanstalkのステージング環境にBasic認証的なことをする必要が出てきて、ebextentionに書いたら、間違えて本番環境にもBasic認証かけそうだな…と思い別の方法を探していました。
で、 https://dev.classmethod.jp/cloud/alb-cognito-user-pool/ を見つけて、これでEmailじゃなくusernameを使えばBasic認証っぽくできるじゃん、と思い実践してみることに。
いきなりステージングにアクセスできなくなると困るので、別のALBを立てて期待通りに動作するか検証した。→結果うまく行った。
Cognitのドメイン設定を変えてステージングのALBに適用
→username/passwordを入力!
→500 Internal server error...
→ElasticBeanstalkで作成されたALBにはこの記載があるみたいです。ターゲットグループのポートだけってことなんでしょう。
(違ってたらご指摘いただけると嬉しいです)
ALBからCognitの方に認証情報を取得する際のリクエストがhttpsなんだと思いました。
別のALBでうまく行っていたのは、ElasticBeanstalkから作ったわけではなく、セキュリティグループもALBと一緒に作ったので(←これが良くなかった…)アウトバウンドに0.0.0.0がいたんですねー。
ALBのセキュリティグループに443ポートの0.0.0.0を追加してアクセスしたところ、うまく認証が機能しました。めでたしめでたし。
それにしてもALBってHTTPS転送もできたり、かなり便利になりましたね。とても助かります。
まとめ
- ALB Authentication + Cognitで認証しようとしたら500エラー
- ALBについているセキュリティグループのアウトバウンドに443ポートがなかった
- 443ポートを許可したらうまく行った
経緯
ElasticBeanstalkのステージング環境にBasic認証的なことをする必要が出てきて、ebextentionに書いたら、間違えて本番環境にもBasic認証かけそうだな…と思い別の方法を探していました。で、 https://dev.classmethod.jp/cloud/alb-cognito-user-pool/ を見つけて、これでEmailじゃなくusernameを使えばBasic認証っぽくできるじゃん、と思い実践してみることに。
まず別のALBで試してみた
いきなりステージングにアクセスできなくなると困るので、別のALBを立てて期待通りに動作するか検証した。→結果うまく行った。
いざステージングへ適用
Cognitのドメイン設定を変えてステージングのALBに適用→username/passwordを入力!
→500 Internal server error...
色々思案
- もともとステージングへはセキュリティグループでアクセスできるIPを制限していたので、それがだめなのか?→認証かかっている状態で0.0.0.0を許可したが変化無し。
- Cogentのドメイン設定ミスったか?→合ってそう
- ...わからん
→ElasticBeanstalkで作成されたALBにはこの記載があるみたいです。ターゲットグループのポートだけってことなんでしょう。
なぜダメなのか考察
(違ってたらご指摘いただけると嬉しいです)ALBからCognitの方に認証情報を取得する際のリクエストがhttpsなんだと思いました。
別のALBでうまく行っていたのは、ElasticBeanstalkから作ったわけではなく、セキュリティグループもALBと一緒に作ったので(←これが良くなかった…)アウトバウンドに0.0.0.0がいたんですねー。
コメント
コメントを投稿