Facebook と Amazon Cognito を ID プロバイダー (IdP) として使用して Application Load Balancer 認証を設定する方法を教えてください。
簡単な説明
Application Load Balancer 認証では、Application Load Balancer はクライアントが認証されたことを確認するか、クライアントに対して認証するように求めます。バックエンドターゲットは、ユーザープロファイルや支払いなど、他のビジネスロジックやサービスの実行のみを行います。Application Load Balancer は、クライアントアクセスを拒否および許可するためのゲートキーパーですが、クライアントのログイン認証情報を保存しないため、Amazon Cognito と Facebook を設定してユーザーを管理および認証できます。
解決方法
Facebook アプリケーションのセットアップ
- Facebook サイトの Facebook for Developers に移動します。
- 右上の [マイアプリ]、[新しいアプリの追加] の順にクリックします。
- [Display name] を指定し、[Create App ID] を選択します。
- [Facebook Login] を選択します。
- [Web (www)] を選択します。
- サイトのドメイン名を指定します。この名前は、Application Load Balancer の DNS へのエイリアスに使用する名前と同じです。
- [次へ] をクリックします。
- JavaScript SDK をスキップし、[Next] を選択します。
- [次へ] をクリックします。
ウィザードのステップ 5 に進んだら、Amazon Cognito の設定に進みます。Facebook アプリケーションを設定するための最後のステップが 1 つありますが、その前に Amazon Cognito を設定する必要があります。
認証のために Application Load Balancer を設定し、Amazon Cognito を IdP/IdP アグリゲータとして設定する
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- Application Load Balancer を作成します。
- ナビゲーションペインの [ロードバランシング] 下で、[ロードバランサー] を選択します。
- ステップ 2 で作成した Application Load Balancer を選択します。
- [リスナー] を選択し、リスナーを追加します。
- HTTPS:443 (または HTTPS プロトコルの任意のポート) を選択します。
- [アクション] で、[認証] を選択します。
- [Amazon Cognito] を選択したままにします。
- [Cognito ユーザープール] で、[新規作成] を選択します。
- [ソーシャル IDP] で、[Facebook] を選択します。
- Facebook サイトの Facebook for Developers に移動します。
- この手順の Facebook アプリケーションのセットアップセクションで作成したアプリケーションを選択します。
- [Settings]、[Basic] の順にクリックします。
- [App ID] をコピーします。
- [Show] を選択し、Facebook パスワードを入力して [App Secret] を選択します。
- Amazon EC2 コンソールの Amazon Cognito セットアップページに戻ります。次に、App ID を貼り付け、App Secretを入力します。
- [承認スコープ] に「public_profile」と入力します。
- [ドメインのプレフィックス] で、Amazon Cognito リージョン DNS サービスに追加する一意の名前を選択します。たとえば、ドメインプレフィックスとして「abc」を指定した場合、完全修飾ドメイン名 (FQDN) は https://abc.auth.us-east-2.amazoncognito.com/ です。
- [Cognito ユーザープールの作成] を選択します。
- ステップ 18 で指定したドメイン名をコピーします。
- HTTPS リスナーに別のルールを追加します。[転送先] を選択し、Application Load Balancer のターゲットグループ名を指定します。
- [保存] を選択します。
Facebook アプリケーションのセットアップを完了する
- Facebook アプリケーションを開きます。
- [Facebook Login]、[Settings] の順に選択します。
- [Valid OAuth Redirect URIs] で、Amazon Cognito FQDN を貼り付け、/oauth2/idpresponse というサフィックスを追加します。たとえば、https://abc.auth.eu-west-1.amazoncognito.com/oauth2/idpresponse のように。
- [Save changes] をクリックします。
- [Settings]、[Basics]、[App domains] の順に選択します
- Application Load Balancer を指すドメイン名を追加します。
- [Save changes] をクリックします。
Amazon Cognito のセットアップを完了する
- Amazon Cognito コンソールを開きます。
- 設定したユーザープールを選択します。
- [アプリクライアント設定] を選択します。
- [コールバック URL] で、Route53 で Application Load Balancer を指すエイリアスレコードを作成したドメイン名を指定し、/oauth2/idpresponse サフィックスを追加します。https://www.example.com/oauth2/idpresponse などです。
重要: Facebook はサードパーティ製アプリケーションのため、上記の設定手順は後に変更される可能性があります。最新の更新については、Facebook サイトの Facebook のドキュメントをご参照ください 。
関連情報
Application Load Balancer を使用したユーザーの認証
Simplify login with Application Load Balancer built-in authentication
Facebook (Identity pools)
Register with a social IdP