2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

#まとめ

  • 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転送もできたり、かなり便利になりましたね。とても助かります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?