ALB Authentication + Cognitの500エラーに対処する

ALB Authentication + Cognitの500エラーに対処する:


まとめ

  • 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...


色々思案

  1. もともとステージングへはセキュリティグループでアクセスできるIPを制限していたので、それがだめなのか?→認証かかっている状態で0.0.0.0を許可したが変化無し。
  2. Cogentのドメイン設定ミスったか?→合ってそう
  3. ...わからん
ググってもいい情報が当たらず、色々設定眺めていた結果、セキュリティグループのアウトバウンドに80ポートしか記述が無いことに気づく。

→ElasticBeanstalkで作成されたALBにはこの記載があるみたいです。ターゲットグループのポートだけってことなんでしょう。


なぜダメなのか考察

(違ってたらご指摘いただけると嬉しいです)

ALBからCognitの方に認証情報を取得する際のリクエストがhttpsなんだと思いました。

別のALBでうまく行っていたのは、ElasticBeanstalkから作ったわけではなく、セキュリティグループもALBと一緒に作ったので(←これが良くなかった…)アウトバウンドに0.0.0.0がいたんですねー。


対応

ALBのセキュリティグループに443ポートの0.0.0.0を追加してアクセスしたところ、うまく認証が機能しました。めでたしめでたし。


あとがき

それにしてもALBってHTTPS転送もできたり、かなり便利になりましたね。とても助かります。

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)