ホストされた UI への独自のドメインの使用 - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ホストされた UI への独自のドメインの使用

アプリクライアントをセットアップしたら、Amazon Cognito がホストする UI および auth APIエンドポイントのカスタムドメインを使用してユーザープールを設定できます。カスタムドメインを使用すると、ユーザーは、独自のウェブアドレスを使用して、アプリケーションにサインインできるようになります。

ユーザープールへのカスタムドメインの追加

カスタムドメインをユーザープールに追加するには、Amazon Cognito コンソールでドメイン名を指定し、AWS Certificate Manager (ACM) を使用してユーザー管理の証明書を提供します。ドメインを追加したら、Amazon Cognito がエイリアスターゲットを提供するので、これを DNS 設定に追加します。

前提条件

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

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

  • 所有するウェブドメイン。その親ドメインには、DNS に有効な A レコードが必要です。このレコードには任意の値を割り当てることができます。親は、ドメインのルート、またはドメイン階層の 1 つ上の子ドメインです。例えば、カスタムドメインが auth.xyz.example.com の場合、Amazon Cognito は xyz.example.com を IP アドレスに解決できる必要があります。お客様のインフラストラクチャへの偶発的な影響を防ぐため、Amazon Cognito は、最上位ドメイン (TLD) のカスタムドメインへの使用をサポートしていません。詳細については、「ドメイン名」を参照してください。

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

    注記

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

  • ACM によって管理されている Secure Sockets Layer (SSL) 証明書。

    注記

    証明書をリクエストまたはインポートする前に、ACM コンソールで AWS リージョンを米国東部 (バージニア北部) に変更する必要があります。

  • ユーザープール認証サーバーがユーザーセッションに Cookie を追加することを許可するアプリケーション。Amazon Cognito は、ホストされた UI に必要な複数の Cookie を設定します。たとえばcognitocognito-fl、およびXSRF-TOKENに適用されます。個々の Cookie はブラウザのサイズ制限に準拠していますが、ユーザープールの設定を変更すると、ホストされた UI Cookie のサイズが大きくなる可能性があります。カスタムドメインの前の Application Load Balancer (ALB) などの中間サービスでは、最大ヘッダーサイズまたは合計 Cookie サイズが適用される場合があります。アプリケーションが独自の Cookie も設定している場合、ユーザーのセッションはこれらの制限を超える可能性があります。サイズ制限の競合を避けるため、アプリケーションはホストされた UI サブドメインに Cookie を設定しないことをお勧めします。

  • Amazon CloudFront ディストリビューションを更新するアクセス許可。そのためには、次の IAM ポリシーステートメントを AWS アカウントのユーザーにアタッチします。

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

    でのアクションの承認の詳細については CloudFront、「 でのアイデンティティベースのポリシー (IAM ポリシー) の使用 CloudFront」を参照してください。

    Amazon Cognito は、最初は IAM アクセス許可を使用してディストリビューションを設定します CloudFrontが、ディストリビューションは によって管理されます AWS。Amazon Cognito がユーザープールに関連付けた CloudFront ディストリビューションの設定を変更することはできません。例えば、セキュリティポリシーでサポートされている TLS バージョンを更新することはできません。

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

ドメインは、Amazon Cognito コンソールまたは API を使用することでユーザープールに追加できます。

Amazon Cognito console
Amazon Cognito コンソールからユーザープールにドメインを追加する。
  1. Amazon Cognito コンソールにサインインします。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. [User pools] (ユーザープール) を選択します。

  3. ドメインを追加するユーザープールを選択します。

  4. [App integration] (アプリケーションの統合) タブを選択します。

  5. [Domain] (ドメイン) の横にある[Actions] (アクション) を選択し、[Create custom domain] (カスタムドメインの作成) を選択します。

    注記

    ユーザープールドメインを既に構成している場合は、新しいカスタムドメインを作成する前に、[Delete Cognito domain] (Cognito ドメインの削除) または [Delete custom domain] (カスタムドメインの削除) を選択して既存のドメインを削除します。

  6. [Custom domain] (カスタムドメイン) には、Amazon Cognito で使用するドメインの URL を入力します。ドメイン名で使用できるのは、小文字の英文字、数字、およびハイフンのみです。最初または最後の文字にハイフンを使用しないでください。サブドメイン名は、ピリオドで区切ります。

  7. [ACM certificate] (ACM 証明書) には、ドメインに使用する SSL 証明書を選択します。ユーザープールの に関係なく、Amazon Cognito カスタムドメインで使用できるのは、米国東部 (バージニア北部) AWS リージョン の ACM 証明書のみです。

    利用可能な証明書がない場合は、ACM を使用して米国東部 (バージニア北部) にプロビジョニングできます。詳細については、AWS Certificate Manager ユーザーガイドの「使用開始」を参照してください。

  8. [作成] を選択します。

  9. Amazon Cognito は、[App integration] (アプリケーションの統合) タブに戻ります。メッセージ「Create an alias record in your domain's DNS」(ドメインの DNS にエイリアスレコードを作成する) が表示されます。コンソールに表示される [Domain] (ドメイン) と [Alias target] (エイリアスターゲット) を書き留めます。これらは、次のステップでカスタムドメインにトラフィックを転送するために使用します。

API
Amazon Cognito API を使用して、ドメインをユーザープールに追加する

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

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

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

  1. Route 53 コンソールにサインインします。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. Route 53 にホストゾーンがない場合は、カスタムドメインの親であるルートでホストゾーンを作成します。詳細については、以下を参照してください。

    1. [ホストゾーンの作成] を選択します。

    2. ドメイン名のリストから、カスタムドメイン myapp.auth.example.com の親ドメイン auth.example.com を入力します。

    3. ホストゾーンの説明を入力します。

    4. パブリックホストゾーンのホストゾーン [Type] (タイプ) を選択して、パブリッククライアントがカスタムドメインを解決できるようにします。Private hosted zone (プライベートホストゾーン) はサポートされていません。

    5. 必要に応じてタグを適用します。

    6. [ホストゾーンの作成] を選択します。

      注記

      また、カスタムドメインの新しいホストゾーンを作成し、親ホストゾーンに委任セットを作成して、サブドメインのホストゾーンにクエリを送信することもできます。それ以外の場合は、A レコードを作成します。この方法により、ホストゾーンの柔軟性とセキュリティが向上します。詳細については、「Amazon Route 53 を通してホストされるドメインのサブドメインの作成」をご覧ください。

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

  4. カスタムドメインの親ドメインの DNS レコードがまだない場合は、追加します。親ドメインの DNS Aレコードを追加し、レコードの作成 を選択します。以下に、ドメイン auth.example.com のレコードの例を示します。

    auth.example.com. 60 IN A 198.51.100.1

    注記

    Amazon Cognito は、本番ドメインの予想外の乗っ取りから保護するために、カスタムドメインの親ドメインで使用する DNS レコードがあることを確認します。親ドメインの DNS レコードがない場合、カスタムドメインを設定しようとすると、 Amazon Cognito はエラーを返します。Start of Authority (SOA) レコードは、親ドメインの検証のために十分な DNS レコードではありません。

  5. カスタムドメインの DNS レコードを追加します。レコードは、カスタムドメインエイリアスターゲット をポイントする必要があります123example.cloudfront.net。例えば、。[Create Record] (レコードの作成) を選択します。

  6. カスタムドメインに一致する [レコード名] (レコード名) を入力します。例えば、myapp は、myapp.auth.example.com のレコードを作成します。

  7. Alias (エイリアス) オプションを有効にします。

  8. [Route traffic to] (トラフィックのルーティング先) で、[Alias to CloudFront distribution] (CloudFront ディストリビューションへのエイリアス) を選択します。カスタムドメインの作成時に、Amazon Cognito から提供された [Alias target] (エイリアスターゲット) を入力します。

  9. [レコードを作成] を選択します。

    注記

    新しいレコードがすべての Route 53 の DNS サーバーに伝播されるまでに約 60 秒かかる場合があります。Route 53 GetChange API メソッドを使用して、変更が反映されたことを確認できます。

ステップ 3: サインインページを検証する

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

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

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

カスタムドメインの SSL 証明書を変更する

必要な場合は、Amazon Cognito を使用して、カスタムドメインに適用した証明書を変更することができます。

通常、これは ACM での定期的な証明書更新後には不要です。ACM で既存の証明書を更新するときは、証明書の ARN がそのまま維持され、カスタムドメインは自動的に新しい証明書を使用します。

ただし、既存の証明書を新しい証明書に置き換える場合は、ACM が新しい証明書に新しい ARN を提供します。新しい証明書をカスタムドメインに適用するには、この ARN を Amazon Cognito に提供する必要があります。

新しい証明書の提供後、Amazon Cognito では、それがカスタムドメインに配布されるまで最大 1 時間かかります。

開始する前に

Amazon Cognito で証明書を変更する前に、証明書を ACM に追加する必要があります。詳細については、AWS Certificate Manager ユーザーガイドの「使用開始」を参照してください。

証明書を ACM に追加するときは、 AWS リージョンとして米国東部 (バージニア北部) を選択する必要があります。

証明書は、Amazon Cognito コンソールまたは API を使用して変更できます。

AWS Management Console
Amazon Cognito コンソールで証明書を更新する
  1. にサインイン AWS Management Console し、 で Amazon Cognito コンソールを開きますhttps://console.aws.amazon.com/cognito/home

  2. [User Pools] (ユーザープール) を選択します。

  3. 証明書を更新するユーザープールを選択します。

  4. [App integration] (アプリケーションの統合) タブを選択します。

  5. [Actions] (アクション) 、[Edit ACM certificate] (ACM 証明書の編集) を選択します。

  6. カスタムドメインに関連付ける新しい証明書を選択します。

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

API
証明書を更新する (Amazon Cognito API)