スキップしてコンテンツを表示

Application Load Balancer で設定を行い、Amazon Cognito ユーザープール経由でユーザーを認証する方法を教えてください。

所要時間2分
0

Application Load Balancer を Amazon Cognito ユーザープールと統合してユーザー認証を行いたいと思っています。

簡単な説明

Application Load BalancerAmazon Cognito ユーザープールを使用してユーザー認証を設定するには、次の手順を実行します。

  1. Application Load Balancer を作成します。
  2. Application Load Balancer の DNS 名を取得します。
  3. Amazon Cognito ユーザープールを作成して設定します。
  4. Application Load Balancer を設定します。
  5. セットアップをテストします。

解決策

Application Load Balancer を作成する

注: Application Load Balancer を設定済みの場合は、「Application Load Balancer の DNS 名を取得する」セクションに進んでください。

次の手順を実行します。

  1. Application Load Balancer を作成します
  2. Application Load Balancer 用の HTTPS リスナーを作成します

注: HTTPS リスナーのみが、authenticate-cognito および authenticate-oidc ルールアクションタイプをサポートします。

Application Load Balancer の DNS 名を取得する

次の手順を実行します。

  1. Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
  2. ナビゲーションペインの [ロードバランシング] で、[ロードバランサー] を選択します。
  3. 使用する Application Load Balancer を選択します。
  4. 後のステップで使用するために、[詳細] タブでロードバランサーの DNS 名を書き留めてください。

Amazon Cognito ユーザープールを作成、設定する

次の手順を実行します。

  1. Amazon Cognito コンソールを開きます。
  2. ナビゲーションペインで [ユーザープールの作成] を選択します。
    注: ユーザープールの作成時に、本番環境に必要な設定を構成してください。一部のユーザープール設定は、ユーザープールを作成した後は変更できません。詳細については、「Amazon Cognito ユーザープールの作成後に属性を変更する方法を教えてください」を参照してください。
  3. ユーザープール用のアプリクライアントを設定します。
    アプリクライアントの設定時に、[クライアントシークレットを生成] ラジオボタンを選択します。詳細については、「Amazon Cognito を使用するための準備」を参照してください。
  4. ナビゲーションペインで [ユーザープール] を選択し、使用するユーザープールを選択します。後のステップで使用するために、ユーザープール ID を書き留めてください。
  5. ユーザープールの [アプリ統合] タブを選択し、ユーザープールのドメインを追加します。
  6. ユーザープールの [アプリ統合] タブ内で、[アプリクライアントと分析] セクションでアプリクライアントを選択します。
  7. 後のステップで使用するために、[アプリクライアント] ページの [アプリクライアント情報] でクライアント ID を書き留めてください。
  8. [ホストされた UI] セクションで [編集] を選択します。
  9. [コールバック URL を追加] を選択し、https://load-balancer-dns-name/oauth2/idpresponse と入力します (使用する DNS 名に置き換えてください)。CNAME レコードを使用してカスタムドメインをApplication Load Balancer にマッピングした場合は、https://CNAME/oauth2/idpresponse と入力します (使用するカスタムドメイン名に置き換えてください)。
    注: DNS 名には、大文字を含めることはできません。
  10. [サインアウト URL の追加] を選択し、ユーザーがサインアウトした後にリダイレクトする URL を入力します。任意の有効な URL (例: https://example.com/) を入力すると、リダイレクトをテストできます。
  11. [ID プロバイダー][Cognito ユーザープール] を選択します。
  12. [OAuth 2.0 付与タイプ][認証コード付与] を選択します。ユースケースに応じて、追加の OAuth 付与タイプを選択してください。
  13. [OpenID Connect のスコープ][OpenID] を選択します。OpenID のスコープが ID トークンを返します。ユースケースに応じて、追加の OpenID Connect (OIDC) スコープを選択してください。
  14. [変更を保存] を選択します。

詳細については、「ユーザープールとアプリクライアント構成を更新する」および「サードパーティ ID プロバイダー経由でユーザープールにサインインする」を参照してください。

Application Load Balancer を設定する

次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインの [ロードバランシング] で、[ロードバランサー] を選択します。
  3. 使用する Application Load Balancer を選択します。
  4. [リスナーとルール] タブで HTTPS プロトコルを選択します。
  5. [ルールの管理] を選択し、[ルールを編集] を選択します。
  6. [リスナールール] セクションで更新するデフォルトルールを選択します。
  7. [アクション] を選択し、[ルールを編集] を選択します。
  8. HTTPS リスナーのデフォルトルールで次の設定を行います。
    [認証][OpenID または Amazon Cognito を使用する] を選択します。
    [ID プロバイダー] で、[Amazon Cognito] を選択します。
    [ユーザープール]ユーザープール ID を選択します。
    [アプリクライアント]クライアント ID を選択します。
    [認証の詳細設定] を展開します。
    セッションクッキーに名前を付けます。
    セッションタイムアウトを設定します。デフォルト値は 7 日です。
    [スコープ] には、ユーザープールアプリクライアントに設定したスコープをスペースで区切って入力します。スコープは、ユーザープールの OIDC 設定に表示されます。たとえば、scopes_supported 値が ["openid","email","phone","profile"] の場合は、openid email phone profile と入力します。
    [認証されていないリクエストに対するアクション] はデフォルト値から変更しないでください。
    (オプション) [追加のリクエストパラメータ - オプション] を展開し、Cognito などの ID プロバイダーの認証時に使用するパラメータを追加します。たとえば、Cognito ユーザープール自体は、ID プロバイダーに Google を使用している場合は、パラメータ {Key: identity_provider, Value: Google} を追加します。リクエストパラメータの詳細については、「リクエストパラメータ」を参照してください。
    [ルーティングアクション][ターゲットグループに転送] を選択し、ターゲットグループを選択します。
    (オプション) ユースケースで必要な場合は、[ターゲットグループのスティッキネス][ターゲットグループのスティッキネスを有効にする] を選択します。
  9. 次のセキュアリスナー設定を構成します。
    [セキュリティポリシー] で、ユースケースに適したセキュリティポリシーを選択します。
    [デフォルトの SSL/TLS サーバー証明書] で証明書のソースを選択します。
  10. [変更を保存] を選択します。

設定をテストする

ウェブブラウザで、次の URL のいずれかを入力します。

  • https://load-balancer-dns-name/
  • https://CNAME/

注: 実際のものでそれぞれ、load-balancer-dns-nameDNS 名に、CNAME をカスタムドメインに置き換えてください。

URL を入力すると、ユーザープールの Amazon Cognito がホストするウェブ UI にリダイレクトされます。ユーザーがサインインし、ユーザープールがユーザーを認証すると、ユーザーはターゲットにリダイレクトされます。

関連情報

Application Load Balancer の開始

Application Load Balancer の組み込み認証でログインを簡素化する

Application Load Balancer のリスナールール

OIDC ユーザープール IdP 認証フロー

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ