Application Load Balancer 認証の ID プロバイダー (IDP) として Meta と Amazon Cognito を使用したいと考えています。
簡単な説明
アプリケーションにアクセスするユーザーを安全に認証するには、Application Load Balancer を設定します。アプリケーションがビジネスロジックに集中できるようにするには、ロードバランサーにユーザーを認証させます。バックエンドターゲットは、ユーザープロファイルや支払いなど、他のビジネスロジックまたはサービスのみを実行します。Application Load Balancer は認証ステップのみを担当し、ユーザー情報は保存しません。ユーザーを管理および認証するように Amazon Cognito と Meta を設定します。
解決策
Meta アプリケーションをセットアップする
- Meta のウェブサイトで開発者向け Meta にアクセスします。
- ナビゲーションペインで [マイアプリ] を選択します。
- [アプリの作成] を選択します。
- [Facebook アカウントでのログインをユーザーに許可する] を選択し、[次へ] を選択します。
- [詳細] ページで、次の情報を入力します。
[アプリ名を追加] に、アプリケーションの名前を入力します。
[アプリの連絡先メールアドレス] に、アプリケーションのメールアドレスを入力します。
(オプション) ビジネスアカウントの場合は、ビジネスアカウントをアプリケーションに接続します。
- [アプリの作成] を選択します。
- ナビゲーションペインで、[製品] を選択します。
- [製品] ページの [Facebook ログイン] で、[設定] を選択し、[Quickstart] を選択します。
- 次の手順を実行します。
アプリケーションプラットフォームには [ウェブ] を選択します。
[サイト URL] に ウェブサイトのドメインを入力し、[保存] を選択してから [続行] を選択します。
[JavaScript 用 Facebook SDK をセットアップ] で [次へ] を選択します。
[ログインステータスの確認] で [次へ] を選択します。
[Facebook ログインボタンを追加] で [次へ] を選択します。
設定を続けるには、Amazon Cognito IdP をセットアップする必要があります。
Application Load Balancer と Amazon Cognito を設定する
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- Application Load Balancer を作成します。
- ナビゲーションペインの [ロードバランシング] で、[ロードバランサー] を選択します。
- 作成した Application Load Balancer を選択します。
- [リスナー] を選択し、[リスナーを追加] を選択します。
- HTTPS: 443 または HTTPS プロトコルを使用する任意のポートを選択します。
- [アクション] で、 [認証] を選択します。
- [Amazon Cognito] を選択します。
- [Cognito ユーザープール] で、[新規作成] を選択します。
- [ソーシャル IDP] では、[Facebook] を選択します。
- Meta のウェブサイトで開発者向け Meta にアクセスします。
- 作成したアプリケーションを選択します。
- [設定] を選択してから、[基本] を選択します。
- アプリ ID をメモしておきます。
- [表示] を選択します。
- Facebook のパスワードを入力し、[アプリシークレット] を選択します。
- Amazon EC2 コンソールの Amazon Cognito セットアップページに戻ります。次に、[アプリ ID] と [アプリシークレット] を入力します。
- [スコープの承認] には、[public_profile] と入力します。
- [ドメインプレフィックス] で、Amazon Cognito AWS リージョナル DNS サービスに追加する一意の名前を選択します。たとえば、ドメインプレフィックスとして「abc」を指定した場合、完全修飾ドメイン名 (FQDN) は https://abc.auth.us-east-2.amazoncognito.com/ になります。
- [Cognito ユーザープールの作成] を選択します。
- 前のステップで指定した一意の名前を入力します。
- HTTPS リスナーにルールを追加します。[転送先] を選択し、Application Load Balancer のターゲットグループ名を指定します。
- [保存] を選択します。
Meta アプリケーションのセットアップを完了する
- 作成した Meta アプリケーションを開きます。
- ナビゲーションペインで、[製品] を選択します。
- [製品] ページの [Facebook ログイン] で、[構成] を選択し、[設定] を選択します。
- [クライアント OAuth 設定] の [有効な OAuth リダイレクト URI] に Amazon Cognito FQDN を入力します。/oauth2/idresponse をサフィックスとして FQDN に追加します。例えば、https://abc.auth.eu-west-1.amazoncognito.com/oauth2/idpresponse となります。
- [変更を保存] を選択します。
- ナビゲーションペインの [設定] で、[基本] を選択します。
- [アプリのドメイン] には、Application Load Balancer を指すドメイン名を入力します。
- [変更を保存] を選択します。
Amazon Cognito のセットアップを完了する
- Amazon Cognito コンソール を開きます。
- ナビゲーションペインで、**[ユーザープール] **を選択します。
- 設定したユーザープールを選択します。
- [アプリクライアント設定] を選択します。
- [コールバック URL] には、Application Load Balancer を指すドメイン名を入力します。次に、/oauth2/idpresponse をサフィックスとして追加します。例えば、https://www.example.com/oauth2/idpresponse となります。
**重要:**Facebook はサードパーティのアプリケーションです。設定手順は時間の経過ともに変更される可能性があります。最新のアップデートについては、Meta のウェブサイトにある Meta のドキュメントを参照してください。
関連情報
Application Load Balancer を使用してユーザーを認証する
Application Load Balancer の組み込み認証でログインを簡素化
Facebook (ID プール)
ソーシャル IdP に登録する