翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザープールマネージドログイン
ユーザープールのサービスをホストするウェブドメインを選択できます。Amazon Cognito ユーザープールは、ドメインを追加すると、マネージドログインと総称して次の関数を取得します。
-
OAuth 2.0 および OpenID Connect (OIDC) で動作するアプリケーションの ID プロバイダー (IdP) として機能する認可サーバー
。認可サーバーは、JSON ウェブトークン (JWT) をルーティング、発行、管理し、ユーザー属性情報を配信します。 JWTs -
サインイン、サインアウト、パスワード管理などの認証オペレーション用のready-to-useユーザーインターフェイス (UI)。マネージドログインページは、認証サービスのウェブフロントエンドとして機能します。
-
SAML 2.0 IdPs、OIDC IdP、 IdPs Facebook、Login with Amazon、Sign in with Apple、Google へのサービスプロバイダー (SP) または証明書利用者 (RP)。
マネージドログインと一部の機能を共有する追加のオプションは、従来のホストされた UI です。クラシックホスト UI は、マネージドログインサービスの第 1 世代バージョンです。ホストされた UI IdP および RP サービスは通常、マネージドログインと同じ特性を持ちますが、ログインページは設計が簡単で機能が少なくなります。例えば、パスキーサインインはクラシックホスト UI では使用できません。Lite 機能プランでは、クラシックホスト UI がユーザープールドメインサービスの唯一のオプションです。
マネージドログインページは、ユーザープールの基本的なサインアップ、サインイン、多要素認証、パスワードリセットアクティビティ用のウェブインターフェイスのコレクションです。また、ユーザーにサインインオプションの選択を許可する場合に、ユーザーを 1 つ以上のサードパーティー ID プロバイダー (IdPs) に接続します。ユーザーの認証と認可を行う場合、アプリはユーザーのブラウザでマネージドログインページを呼び出すことができます。
マネージドログインユーザーエクスペリエンスをカスタムロゴ、背景、スタイルでブランドに適合させることができます。マネージドログイン UI に適用するブランドには、マネージドログイン用のブランドエディタと、ホストされた UI 用のホストされた UI (クラシック) ブランドという 2 つのオプションがあります。
- ブランディングエディタ
-
Amazon Cognito コンソールのup-to-date認証オプションとビジュアルエディタで更新されたユーザーエクスペリエンス。
- ホストされた UI ブランド
-
Amazon Cognito ユーザープールの以前の導入者向けの使い慣れたユーザーエクスペリエンス。ホストされた UI のブランドはファイルベースのシステムです。ホストされた UI ページにブランドを適用するには、ロゴイメージファイルと、いくつかの事前定義された CSS スタイルオプションの値を設定するファイルをアップロードします。
ブランドエディタは、ユーザープールのすべての機能プランで利用できるわけではありません。詳細については、「ユーザープール機能プラン」を参照してください。
マネージドログインおよびホストされた UI サービスへのリクエストの構築の詳細については、「」を参照してくださいユーザープールエンドポイントとマネージドログインリファレンス。
注記
Amazon Cognito マネージドログインは、カスタム認証チャレンジ Lambda トリガーによるカスタム認証をサポートしていません。
トピック
マネージドログインローカリゼーション
マネージドログインのデフォルトは、ユーザーインタラクティブページの英語です。選択した言語に合わせてローカライズされたマネージドログインページを表示できます。使用可能な言語は、 で使用可能な言語です AWS Management Console。ユーザーに配布するリンクで、次の例に示すように、lang
クエリパラメータを追加します。
https://
<your domain>
/oauth2/authorize?lang=es
&response_type=code
&client_id=<your app client id>
&redirect_uri=<your relying-party url>
Amazon Cognito は、 lang
パラメータを使用した最初のリクエスト後に、ユーザーのブラウザで言語設定で Cookie を設定します。Cookie が設定されると、言語の選択は保持され、 パラメータを表示したり、リクエストに含める必要はありません。たとえば、ユーザーが lang=de
パラメータを使用してサインインリクエストを行った後、マネージドログインページは、Cookie をクリアするか、 などの新しいローカリゼーションパラメータを使用して新しいリクエストを行うまで、ドイツ語でレンダリングされますlang=
。en
ローカリゼーションはマネージドログインでのみ使用できます。Essentials または Plus 機能プランに参加し、マネージドログインブランドを使用するようにドメインを割り当てている必要があります。
ユーザーがマネージドログインで行う選択は、カスタム E メールまたは SMS 送信者トリガーでは使用できません。これらのトリガーを実装するときは、 locale
属性などの他のメカニズムを使用して、ユーザーの優先言語を決定する必要があります。
次の言語を使用できます。
言語 | Code |
---|---|
ドイツ語 | de |
英語 | en |
スペイン語 | es |
フランス語 | fr |
バハサインドネシア語 | id |
イタリア語 | it |
日本語 | ja |
韓国語 | ko |
ポルトガル語 (ブラジル) | pt-BR |
簡体字中国語 | zh-CN |
繁体字中国語 | zh-TW |
を使用したマネージドログインの設定 AWS Amplify
AWS Amplify を使用してウェブまたはモバイルアプリに認証を追加する場合は、Amplify コマンドラインインターフェイス (CLI) のマネージドログインページと Amplify フレームワークのライブラリを設定できます。アプリに認証を追加するには、 Auth
カテゴリをプロジェクトに追加します。次に、アプリケーションで、Amplify クライアントライブラリを使用してユーザープールユーザーを認証します。
認証のためにマネージドログインページを呼び出すことも、IdP にリダイレクトする認可エンドポイントを介してユーザーをフェデレーションすることもできます。ユーザーがプロバイダーで正常に認証されると、Amplify はユーザープールに新しいユーザーを作成し、ユーザーのトークンをアプリに渡します。
次の例は、 AWS Amplify を使用してアプリでソーシャルプロバイダーによるマネージドログインを設定する方法を示しています。
Amazon Cognito コンソールを使用したマネージドログインの設定
マネージドログインとホストされた UI の最初の要件は、ユーザープールドメインです。ユーザープールコンソールで、ユーザープールのドメインタブに移動し、Cognito ドメインまたはカスタムドメインを追加します。新しいユーザープールの作成プロセス中にドメインを選択することもできます。詳細については、「ユーザープールのドメインを設定する」を参照してください。ユーザープールでドメインがアクティブな場合、すべてのアプリケーションクライアントはそのドメインでパブリック認証ページを提供します。
ユーザープールドメインを作成または変更するときは、ドメインのブランドバージョンを設定します。このブランドバージョンは、マネージドログインまたはホストされた UI (クラシック) のいずれかです。選択したブランドバージョンは、ドメインでサインインサービスを使用するすべてのアプリクライアントに適用されます。
次のステップでは、ユーザープールのアプリクライアントタブからアプリクライアントを作成します。アプリケーションクライアントを作成する過程で、Amazon Cognito はアプリケーションに関する情報を尋ね、リターン URL を選択するように求めます。戻り URL は、証明書利用者 (RP) URL、リダイレクト URI、コールバック URL とも呼ばれます。これは、 https://www.example.com
や など、アプリケーションが実行する URL ですmyapp://example
。
ユーザープールでドメインとアプリケーションクライアントをブランドスタイルで設定すると、マネージドログインページがインターネットで利用可能になります。
サインインページの表示
Amazon Cognito コンソールで、アプリクライアントメニューのアプリクライアントのログインページタブでログインページの表示ボタンを選択します。 このボタンをクリックすると、以下の基本パラメータを使用して、ユーザープールドメインのサインインページに移動します。
-
アプリクライアント ID
-
認可コード付与リクエスト
-
現在のアプリクライアント用に有効にしたすべてのスコープのリクエスト
-
現在のアプリクライアントのリストにある最初のコールバック URL
ログインページの表示ボタンは、マネージドログインページの基本機能をテストする場合に便利です。ログインページは、ユーザープールドメインに割り当てたブランドバージョンと一致します。追加および変更されたパラメータを使用してサインイン URL をカスタマイズすることできます。ほとんどの場合、ログインページの表示リンクの自動生成されたパラメータは、アプリのニーズと完全には一致しません。このような場合は、ユーザーのサインイン時にアプリが呼び出す URL をカスタマイズする必要があります。サインインパラメータのキーと値の詳細については、「ユーザープールエンドポイントとマネージドログインリファレンス」を参照してください。
サインインウェブページでは、次の URL 形式を使用します。この例では、response_type=code
パラメーターを使って認可コードの付与をリクエストしています。
https://
<your domain>
/oauth2/authorize?response_type=code
&client_id=<your app client id>
&redirect_uri=<your relying-party url>
ユーザープールのドメインメニューからユーザープールのドメイン文字列を検索できます。アプリクライアントメニューでは、アプリクライアント IDs、コールバック URLs、許可されたスコープ、およびその他の設定を識別できます。
カスタムパラメータを使用して /oauth2/authorize
エンドポイントに移動すると、Amazon Cognito は /oauth2/login
エンドポイントにリダイレクトするか、identity_provider
または idp_identifier
パラメータがある場合は、IdP サインインページにそのままリダイレクトします。
暗黙的な許可のリクエスト例
暗黙的なコード付与の次の URL を使用して、サインインウェブページを表示できますresponse_type=token
。サインインが正常に行われると、Amazon Cognito がユーザープールトークンをウェブブラウザのアドレスバーに返します。
https://
mydomain.auth.us-east-1.amazoncognito.com
/authorize?response_type=token&client_id=1example23456789
&redirect_uri=https://mydomain.example.com
ID トークンとアクセストークンは、リダイレクト URL に追加されるパラメーターとして表示されます。
ここでは、暗黙的な許可リクエストからのレスポンス例を示します。
https://
auth.example.com
/#id_token=eyJraaBcDeF1234567890
&access_token=eyJraGhIjKlM1112131415
&expires_in=3600&token_type=Bearer
認証ページのカスタマイズ
以前は、Amazon Cognito は従来のホストされた UI を使用してログインページのみをホストしていました。これは、認証ウェブページにユニバーサルな外観を付与するシンプルな設計です。ロゴイメージで Amazon Cognito ユーザープールをカスタマイズし、いくつかの CSS スタイルの値を指定したファイルでいくつかのスタイルを微調整できます。その後、Amazon Cognito は、更新されたホスト認証サービスであるマネージドログインを導入しました。マネージドログインは、ブランドエディタで更新されたlook-and-feelです。ブランドエディタはノーコードのビジュアルエディタであり、ホストされた UI カスタマイズエクスペリエンスよりも多くのオプションスイートです。マネージドログインでは、カスタム背景イメージとダークモードのテーマも導入されました。
ユーザープールでマネージドログインとホストされた UI ブランディングエクスペリエンスを切り替えることができます。マネージドログインページのカスタマイズの詳細については、「」を参照してくださいマネージドログインページにブランドを適用する。
マネージドログインとホストされた UI について知っておくべきこと
1 時間のマネージドログインとホストされた UI セッション Cookie
ユーザーがログインページまたはサードパーティープロバイダーでサインインすると、Amazon Cognito はブラウザに Cookie を設定します。この Cookie を使用すると、ユーザーは同じ認証方法で 1 時間再度サインインできます。ブラウザ Cookie を使用してサインインすると、アプリクライアント設定で指定された期間だけ新しいトークンが取得されます。ユーザー属性または認証要素を変更しても、ブラウザ Cookie で再度サインインする機能には影響しません。
セッション Cookie による認証では、Cookie の期間はさらに 1 時間にリセットされません。最後に成功したインタラクティブ認証から 1 時間以上後にサインインページにアクセスしようとする場合、ユーザーは再度サインインする必要があります。
ユーザーアカウントの確認とユーザー属性の検証
ユーザープールのローカルユーザーの場合、Cognito が確認と確認のために自動的にメッセージを送信できるようにユーザープールを設定すると、マネージドログインとホストされた UI が最適に機能します。この設定を有効にすると、Amazon Cognito は、サインアップしたユーザーに確認コードを含むメッセージを送信します。代わりにユーザープール管理者としてユーザーを確認すると、サインアップ後にログインページにエラーメッセージが表示されます。この状態で、Amazon Cognito は新しいユーザーを作成しましたが、検証メッセージを送信できませんでした。引き続きユーザーを管理者として確認することはできますが、エラーが発生すると、ユーザーはサポートデスクに連絡する可能性があります。管理者の確認の詳細については、「ユーザーにアプリケーションへのサインアップを許可するがユーザープール管理者として確認する」を参照してください。
設定の変更の表示
ページにスタイルを変更してもすぐに表示されない場合は、数分待ってからページを更新します。
ユーザープールトークンのデコード
Amazon Cognito ユーザープールトークンは、RS256 アルゴリズムを使用して署名されます。を使用して、ユーザープールトークンをデコードおよび検証できます AWS Lambda。GitHub のAmazon Cognito JWT トークンのデコードと検証
AWS WAF ウェブ ACLs
ユーザープールを設定して、ログインページと認可サーバーを提供するドメインを AWS WAF ウェブ ACLs のルールで保護できます。現在、設定したルールは、ログインブランドバージョンがホストされた UI (クラシック) である場合にのみ、これらのページに適用されます。詳細については、「AWS WAF ウェブ ACLs と Amazon Cognito について知っておくべきこと」を参照してください。
TLS のバージョン
マネージドログインページとホストされた UI ページには、転送中の暗号化が必要です。Amazon Cognito が提供するユーザープールドメインでは、ユーザーのブラウザが最小 TLS バージョン 1.2 をネゴシエートする必要があります。カスタムドメインは、TLS バージョン 1.2 でのブラウザ接続をサポートしています。ホストされた UI (クラシック) では、カスタムドメインに TLS 1.2 は必要ありませんが、新しいマネージドログインでは、カスタムドメインとプレフィックスドメインの両方に TLS バージョン 1.2 が必要です。Amazon Cognito はドメインサービスの設定を管理するため、ユーザープールドメインの TLS 要件を変更することはできません。
CORS ポリシー
マネージドログインもホストされた UI も、カスタムクロスオリジンリソース共有 (CORS) オリジンポリシーをサポートしていません。CORS ポリシーは、ユーザーがリクエストで認証パラメータを渡すことを防ぎます。代わりに、アプリケーションのフロントエンドに CORS ポリシーを実装します。Amazon Cognito は、次のエンドポイントへのリクエストにAccess-Control-Allow-Origin: *
レスポンスヘッダーを返します。
cookie
マネージドログインとホストされた UI は、ユーザーのブラウザに Cookie を設定します。Cookie は、サイトがサードパーティーの Cookie を設定しない一部のブラウザの要件に準拠しています。これらはユーザープールエンドポイントのみを対象とし、以下が含まれます。
-
各リクエストの
XSRF-TOKEN
Cookie。 -
ユーザーがリダイレクトされたときのセッション整合性のための
csrf-state
Cookie。 -
セッション整合性のための
csrf-state-legacy
Cookie。ブラウザがSameSite
属性をサポートしていない場合に Amazon Cognito がフォールバックとして読み取ります。 -
成功したサインイン試行を 1 時間保持する
cognito
セッション Cookie。 -
マネージドログインでユーザーが選択した言語ローカリゼーションを保持する
lang
Cookie。 -
ユーザーがマネージドログインページ間を移動するときに必要なデータを保持する
page-data
Cookie。
iOS では、すべての Cookie をブロック
マネージドログインバージョン変更の影響
ドメインを追加し、マネージドログインバージョンを設定する場合の以下の影響を考慮してください。
-
マネージドログインまたはホストされた UI (クラシック) ブランドを使用してプレフィックスドメインを追加する場合、ログインページが使用可能になるまでに最大 60 秒かかることがあります。
-
マネージドログインまたはホストされた UI (クラシック) ブランドを使用してカスタムドメインを追加する場合、ログインページが利用可能になるまでに最大 5 分かかることがあります。
-
ドメインのブランドバージョンを変更する場合、ログインページが新しいブランドバージョンで利用可能になるまでに最大 4 分かかることがあります。
-
マネージドログインとホストされた UI (クラシック) ブランドを切り替えると、Amazon Cognito はユーザーセッションを維持しません。新しいインターフェイスで再度サインインする必要があります。
デフォルトのスタイル
でアプリクライアントを作成すると AWS Management Console、Amazon Cognito はアプリクライアントにブランドスタイルを自動的に割り当てます。CreateUserPoolClient オペレーションを使用してプログラムでアプリケーションクライアントを作成する場合、ブランドスタイルは作成されません。マネージドログインは、CreateManagedLoginBranding リクエストでアプリケーションクライアントを作成するまで、 AWS SDK で作成されたアプリケーションクライアントでは使用できません。
マネージドログイン認証プロンプトのタイムアウト
Amazon Cognito は、5 分以内に完了しない認証リクエストをキャンセルし、ユーザーをマネージドログインにリダイレクトします。ページには、Something went
wrong
というエラーメッセージが表示されます。