翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ホストされた UI でアプリケーションクライアントを追加する
ユーザープールを作成したら、ホストされた UI の組み込みウェブページを起動するアプリケーションのアプリケーションクライアントを作成できます。ホストされた UI では、ユーザーは次のことができます。
-
ユーザープロファイルにサインアップします。
-
サードパーティーの ID プロバイダーでサインインします。
-
多要素認証の有無にかかわらずサインインします。
-
パスワードをリセットします。
ホストされた UI サインイン用のアプリケーションクライアントを作成するには
-
Amazon Cognito コンソール
に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。 -
[User Pools] (ユーザープール) を選択します。
-
リストから既存のユーザープールを選択するか、ユーザープールを作成します。新しいユーザープールを作成すると、ウィザード中にアプリケーションクライアントを設定し、ホストされた UI を構成するように求められます。
-
[App integration] (アプリケーションの統合) タブをユーザープールに設定します。
-
[ドメイン] の横で、[アクション] を選択し、[カスタムドメインの作成] または [Amazon Cognito ドメインの作成] のどちらかを選択します。ユーザープールドメインを既に設定している場合は、新しいカスタムドメインを作成する前に、[Amazon Cognitoドメインの削除] または [カスタムドメインの削除] を選択します。
-
Amazon Cognito ドメインで使用するための使用可能なドメインプレフィックスを入力します。[カスタムドメイン] のセットアップに関する詳細については、「ホストされた UI への独自のドメインの使用」を参照してください。
-
[Create] (作成) を選択します。
-
同じユーザープールの [App integration] (アプリケーションの統合) タブに移動し、[App clients] (アプリケーションクライアント) を検索します。[Create app client] (アプリケーションクライアントの作成) を選択します。
-
[Application type] (アプリケーション) を選択します。選択した内容に基づいて、いくつかの推奨設定が提供されます。ホストされた UI を使用するアプリケーションは、[Public client] (パブリッククライアント) です。
-
[App client name] (アプリケーションクライアント名) を入力します。
-
この演習では、[Don't generate client secret] (クライアントシークレットを生成しない) を選択します。クライアントシークレットは、一元化されたアプリケーションからユーザーを認証する機密アプリケーションによって使用されます。この演習では、ホストされた UI サインインページをユーザーに提示し、クライアントシークレットは必要ありません。
-
アプリで許可する認証フローを選択します。
USER_SRP_AUTH
が選択されていることを確認します。 -
必要に応じて、[token expiration] (トークン有効期限)、[Advanced security configuration] (高度なセキュリティ設定)、および[Attribute read and write permissions] (属性の読み取りと書き込みのアクセス許可) をカスタマイズします。詳細については、「アプリケーションクライアントのセッティングの構成」を参照してください。
-
アプリケーションクライアントのコールバックを追加しますURL。これは、ホストされた UI 認証の後に指示される場所です。アプリにサインアウトを実装できるようになるまで、許可されたURLサインアウトを追加する必要はありません。
iOS または Android アプリの場合は、 URLなどのコールバックを使用できます
myapp://
。 -
アプリケーションクライアントの [ID providers] (ID プロバイダー) を選択します。少なくとも、[Amazon Cognito ユーザープール] をプロバイダーとして有効にします。
注記
Facebook、Amazon、Google、Apple などの外部 ID プロバイダー (IdPs) および OpenID Connect (OIDC) または を使用してサインインするにはSAML IdPs、まず、「サードパーティー によるユーザープールサインインの追加」に示すように設定します。次に、アプリクライアント設定ページに戻り、有効にします。
-
OAuth 2.0 付与タイプ を選択します。[Authorization code grant (認証コードの付与)] を選択して、ユーザープールトークンと交換される認証コードが返されます。トークンはエンドユーザーに直接公開されないため、侵害される可能性は低くなります。ただし、ユーザープールトークンの認証コードを交換するために、バックエンドでカスタムアプリケーションが必要です。セキュリティ上の理由から、モバイルアプリケーションには認証コード付与フローをコード交換の証明キー (PKCE) と一緒に使用することをお勧めします。
暗黙的な許可を選択して、Amazon Cognito からユーザープールのJSONウェブトークン (JWT) を返します。このフローは、トークンの認証コードを交換できるバックエンドがない場合に使用でき、トークンのデバッグにも役立ちます。
注記
[Authorization code grant (認証コードの付与)] と [Implicit code grant (暗黙的コードの付与)] の両方を有効にして、必要に応じて各権限を使用することができます。
アプリがユーザーの代わりではなく自身の代わりとしてアクセストークンをリクエストする必要がある場合にのみ、[クライアント認証情報] を選択します。
-
特に除外する必要がない限り、すべての [OpenID Connect scopes] (OpenID Connect スコープ) を選択します。
-
設定したカスタムスコープを選択します。カスタムスコープは、通常、機密クライアントで使用されます。
-
[Create] (作成) を選択します。
サインインページを表示するには
アプリクライアントページ から、ホストされた UI を表示 を選択して、アプリクライアント ID、スコープ、許可、コールバックURLパラメータがあらかじめ入力されているサインインページに新しいブラウザタブを開きます。
次の を使用して、ホストされた UI サインインウェブページを手動で表示できますURL。response_type
を書き留めます。この場合は、認証コード付与の response_type=code です。
https://
your_domain
/login?response_type=code&client_id=your_app_client_id
&redirect_uri=your_callback_url
response_type=token という暗黙的なコード付与URLについては、ホストされた UI サインインウェブページを次のように表示できます。サインインが正常に行われると、Amazon Cognito がユーザープールトークンをウェブブラウザのアドレスバーに返します。
https://
your_domain
/login?response_type=token&client_id=your_app_client_id
&redirect_uri=your_callback_url
レスポンスの #idtoken=
パラメータの後にJSONウェブトークン (JWT) ID トークンがあります。
以下は、暗黙的な許可リクエストからのレスポンスの例URLです。ID トークン文字列はこれ以上に長くなります。
https://www.example.com/#id_token=123456789tokens123456789&expires_in=3600&token_type=Bearer
Amazon Cognito ユーザープールトークンは、RS256アルゴリズムを使用して署名されます。を使用してユーザープールトークンをデコードおよび検証できます AWS Lambda。詳細については、 AWS GitHub ウェブサイトのAmazon Cognito JWTトークンのデコードと検証
ドメインは [ドメイン名] ページに表示されています。アプリケーションクライアント ID とコールバックURLは、全般設定ページに表示されます。コンソールで行った変更がすぐに表示されない場合は、数分待ってからブラウザを更新します。