Facebook と Amazon Cognito を ID プロバイダーとして使用して Application Load Balancer 認証を設定する方法を教えてください。

最終更新日: 2020 年 8 月 7 日

Facebook と Amazon Cognito を ID プロバイダー (IdP) として使用して Application Load Balancer 認証を設定する方法を教えてください。

簡単な説明

Application Load Balancer 認証では、Application Load Balancer はクライアントが認証されたことを確認するか、クライアントに対して認証するように求めます。バックエンドターゲットは、ユーザープロファイルや支払いなど、他のビジネスロジックやサービスの実行のみを行います。Application Load Balancer は、クライアントアクセスを拒否および許可するためのゲートキーパーですが、クライアントのログイン認証情報を保存しないため、Amazon Cognito と Facebook を設定してユーザーを管理および認証できます。

解決方法

Facebook アプリケーションのセットアップ

  1. Facebook サイトの Facebook for Developers に移動します。
  2. 右上の [マイアプリ]、[新しいアプリの追加] の順にクリックします。
  3. [Display name] を指定し、[Create App ID] を選択します。
  4. [Facebook Login] を選択します。
  5. [Web (www)] を選択します。
  6. サイトのドメイン名を指定します。この名前は、Application Load Balancer の DNS へのエイリアスに使用する名前と同じです。
  7. [次へ] をクリックします。
  8. JavaScript SDK をスキップし、[Next] を選択します。
  9. [次へ] をクリックします。

ウィザードのステップ 5 に進んだら、Amazon Cognito の設定に進みます。Facebook アプリケーションを設定するための最後のステップが 1 つありますが、その前に Amazon Cognito を設定する必要があります。

認証のために Application Load Balancer を設定し、Amazon Cognito を IdP/IdP アグリゲータとして設定する

  1. Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
  2. Application Load Balancer を作成します
  3. ナビゲーションペインの [ロードバランシング] 下で、[ロードバランサー] を選択します。
  4. ステップ 2 で作成した Application Load Balancer を選択します。
  5. [リスナー] を選択し、リスナーを追加します。
  6. HTTPS:443 (または HTTPS プロトコルの任意のポート) を選択します。
  7. [アクション] で、[認証] を選択します。
  8. [Amazon Cognito] を選択したままにします。
  9. [Cognito ユーザープール] で、[新規作成] を選択します。
  10. [ソーシャル IDP] で、[Facebook] を選択します。
  11. Facebook サイトの Facebook for Developers に移動します。
  12. この手順の Facebook アプリケーションのセットアップセクションで作成したアプリケーションを選択します。
  13. [Settings]、[Basic] の順にクリックします。
  14. [App ID] をコピーします。
  15. [Show] を選択し、Facebook パスワードを入力して [App Secret] を選択します。
  16. Amazon EC2 コンソールの Amazon Cognito セットアップページに戻ります。次に、App ID を貼り付け、App Secretを入力します。
  17. [承認スコープ] に「public_profile」と入力します。
  18. [ドメインのプレフィックス] で、Amazon Cognito リージョン DNS サービスに追加する一意の名前を選択します。たとえば、ドメインプレフィックスとして「abc」を指定した場合、完全修飾ドメイン名 (FQDN) は https://abc.auth.us-east-2.amazoncognito.com/ です。
  19. [Cognito ユーザープールの作成] を選択します。
  20. ステップ 18 で指定したドメイン名をコピーします。
  21. HTTPS リスナーに別のルールを追加します。[転送先] を選択し、Application Load Balancer のターゲットグループ名を指定します。
  22. [保存] を選択します。

Facebook アプリケーションのセットアップを完了する

  1. Facebook アプリケーションを開きます。
  2. [Facebook Login]、[Settings] の順に選択します。
  3. [Valid OAuth Redirect URIs] で、Amazon Cognito FQDN を貼り付け、/oauth2/idpresponse というサフィックスを追加します。たとえば、https://abc.auth.eu-west-1.amazoncognito.com/oauth2/idpresponse のように。
  4. [Save changes] をクリックします。
  5. [Settings]、[Basics]、[App domains] の順に選択します
  6. Application Load Balancer を指すドメイン名を追加します。
  7. [Save changes] をクリックします。

Amazon Cognito のセットアップを完了する

  1. Amazon Cognito コンソールを開きます。
  2. 設定したユーザープールを選択します。
  3. [アプリクライアント設定] を選択します。
  4. [コールバック URL] で、Route53 で Application Load Balancer を指すエイリアスレコードを作成したドメイン名を指定し、/oauth2/idpresponse サフィックスを追加します。https://www.example.com/oauth2/idpresponse などです。

重要: Facebook はサードパーティ製アプリケーションのため、上記の設定手順は後に変更される可能性があります。最新の更新については、Facebook サイトの Facebook のドキュメントをご参照ください 。