はじめに
ベーシック認証のようなものを、ALBとCognitoを使って実現する話です。
こんなやつ。
やり方
userpoolの作成
AWSコンソールからcognitoを開き、右上の「ユーザープールを作成する」ボタンをクリックします。
プール名を入力し、「デフォルトを確認する」をクリックし、「プールの作成を」クリックします。
設定を変更したい方は、お好みで変更してから作成してください。
続いて、アプリクライアントを作成します。左側のメニューのアプリクライアントから作成します。設定内容はデフォルトのままで大丈夫です。
続いて、ALB認証時に使うドメインの登録をします。同じく左メニューの「ドメイン名」から好きなドメインを登録してください。
最後に、左メニューから「アプリクライアントの設定」をクリックし、以下のようにします。は実際に認証をかけるALBの物に書き換えてください。
- 有効なIDプロバイダの「Cognito User Pool」にチェック
- 認証されているOAuthフローの「Authorization code grant」にチェック
- 許可されている OAuth スコープの「openid」にチェック
- コールバックURLに「https:///oauth2/idpresponse」を入力
ALBの設定
httpsで接続できるALBが必要です。作成の仕方はこちらを参考にしてください。https://qiita.com/ggg-mzkr/items/9924f729df15762dda28
AWSのALB一覧から、認証をかけるALBを選択し、したのメニューから「リスナー」タブを開きます。そして、認証をかけたいリスナーに対して「ルールの表示/編集」をクリックします。
詳細画面が出てくるので、上にある鉛筆マークをクリックすると、リスナーの横に鉛筆マークが現れるので、そちらをクリックします。
「アクションを追加」 → 「認証」 を選択し、先ほど作ったuserpoolとアプリクライアントを選択して、右上の「更新」ボタンを押します。
画面表示
この時点で、ALBへアクセスを行うと、冒頭のような画面にリダイレクトされます。
ログインするためのユーザーは、cognitoの「ユーザーとグループ」から作成することができます。
以上。