メニュー
Amazon Cognito
開発者ガイド

カスタムドメインをユーザープールに追加する

アプリクライアントを設定したら、サインアップおよびサインインのウェブページアドレスを設定できます。カスタムユーザープールドメインを使用すると、ユーザーは、独自のウェブアドレスで Amazon Cognito にサインインできるようになります。

前提条件

開始する前に、以下が必要です。

  • アプリのクライアントを持つユーザープール。詳細については、「ユーザープールの開始方法。」を参照してください。

  • 所有するウェブドメイン。このルートには、DNS の有効なレコードが含まれます。詳細については、「ドメイン名」を参照してください。

  • カスタムドメインのサブドメイン。サブドメインとして auth を使用することをお勧めします。たとえば、「auth.example.com」を使用します。

    注記

    ワイルドカード証明書」がない場合は、カスタムドメインのサブドメイン用に新しい証明書の取得が必要な場合があります。

  • AWS Certificate Manager」によって管理されている Secure Sockets Layer (SSL) 証明書。証明書をリクエストまたはインポートするには、ACM コンソールで AWS リージョンを米国東部 (バージニア北部) に変更する必要があります。

  • カスタムドメイン名の設定や、その証明書の更新を行うには、Amazon CloudFront ディストリビューションを更新するためのアクセス許可が必要です。そのためには、次の IAM ポリシーステートメントを AWS アカウントの IAM ユーザー、グループ、またはロールにアタッチします。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }

    CloudFront でアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。

ステップ 1: カスタムドメイン名を選択する

AWS Certificate Manager からカスタムドメイン名を選択するには

  1. Amazon Cognito コンソールにサインインします。AWS 認証情報を求められる場合があります。

  2. ナビゲーションペインで [Manage your User Pools] を選択してから、編集するユーザープールを選択します。

  3. ページの左側のナビゲーションバーで、[ドメイン名] を選択します。

  4. [ドメインの使用] を選択します。

  5. カスタムドメイン名を入力します。ドメイン名は、英数字の ASCII 文字 (a-z、A-Z、0-9) から構成できます。また、ハイフン (U+002D) も使用できますが、ドメイン名の先頭または末尾には使用できません。

  6. [Amazon Certificate Manager] から [AWS-managed certificate (AWS が管理する証明書)] を選択します。この証明書は、指定したカスタムドメインの作成や更新を含め、AWS によって管理されます。

    証明書がリストに表示されない場合は、https://console.aws.amazon.com/acm/ から [証明書のプロビジョニング] を選択して取得します。

  7. [変更の保存] を選択します。

  8. [エイリアスターゲット] を書き留めます。[エイリアスターゲット] は、IP アドレスまたはドメイン名の代わりに、Amazon CloudFront ディストリビューションを指すエイリアスリソースレコードです。

ステップ 2: エイリアスターゲットとサブドメインを追加する

このステップでは、ドメイン名サーバー (DNS) サービスプロバイダーを使用して、前のステップのエイリアスターゲットを指すエイリアスを設定します。DNS アドレスの解決に Amazon Route 53 を使用している場合は、[Route 53 を使用してエイリアスターゲットおよびサブドメインを追加する] セクションを選択します。

エイリアスターゲットおよびサブドメインを現在の DNS 設定に追加するには
  • DNS アドレスの解決に Route 53 を使用していない場合は、DNS サービスプロバイダーを使用して、前のステップのエイリアスターゲットをユーザープールのカスタムドメインのエイリアスとして追加する必要があります。また、DNS プロバイダーで、カスタムドメインのサブドメインを設定する必要があります。

Route 53 を使用してエイリアスターゲットとサブドメインを追加するには
  1. Route 53 コンソールにサインインします。AWS 認証情報を要求される場合があります。

  2. ホストゾーンが Route 53 にない場合は設定します。それ以外の場合は、この手順をスキップしてください。

    1. [Create Hosted Zone] を選択します。

    2. [ドメイン名] リストからカスタムドメインリストを選択します。

    3. [コメント] に、ホストゾーンに関するオプションのコメントを入力します。

    4. [Create (作成)] を選択します。

  3. [ホストゾーン] ページで、ホストゾーンの名前を選択します。

  4. [Create Record Set] を選択します。

  5. [エイリアス] オプションで [Yes (はい)] を選択します。

  6. 前のステップで書き留めたエイリアスターゲット名を [エイリアスターゲット] に入力します。

  7. [Create (作成)] を選択します。

    注記

    新しいレコードが Route 53 DNS サーバーに伝達されるまでに、しばらく時間がかかります。現在、変更が伝達されたことを確認するには、Route 53 の GetChange API メソッドを使用する方法しかありません。通常、変更は 60 秒以内にすべての Route 53 ネームサーバーに伝達されます。

  8. エイリアスターゲットを使用してサブドメインを Route 53 に追加します。

    1. [ホストゾーン] ページで、ホストゾーンの名前を選択します。

    2. [レコードセットの作成] を選択し、次の値を入力します。

      1. [名前] に、目的のサブドメイン名を入力します。たとえば、作成しようとしているサブドメインが auth.example.com の場合は auth と入力します。

      2. [Type] で、[A - IPv4 address] を選択します。

      3. [エイリアス] オプションで [Yes (はい)] を選択します。

      4. 前のステップで書き留めたエイリアスターゲット名を [エイリアスターゲット] に入力します。

    3. [Create (作成)] を選択します。

      注記

      または、新しいホストゾーンを作成して、サブドメインに関連付けられているレコードを保持します。クライアントがサブドメインのホストゾーンを参照する親のホストゾーンに委任セットを作成することもできます。このメソッドでは、ホストゾーンを管理する場合 (例: ゾーンを編集できるユーザーを制限する場合) の柔軟性が向上します。現在、プライベートホストゾーンへの NS レコードの追加はサポートされていないため、このメソッドは、パブリックホストゾーンにのみ使用することができます。詳細については、「Amazon Route 53 を使用してホストされたドメインのサブドメインを作成する」を参照してください。

ステップ 3: サインインページの確認

  • カスタムドメインでサインインページが表示できることを確認します。

    このアドレスをブラウザに入力して、カスタムドメインとサブドメインでサインインします。以下は、サブドメイン auth を使用したカスタムドメイン example.com のサンプル URL です。

    https://auth.example.com/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>