ホストされた UI でアプリケーションクライアントを追加する - Amazon Cognito

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

ホストされた UI でアプリケーションクライアントを追加する

ユーザープールを作成したら、ホストされた UI の組み込みウェブページを表示するアプリケーションのアプリケーションクライアントを作成できます。ホストされた UI では、ユーザーは次のことができます。

Amazon Cognito ユーザープールを作成したら、次のステップはアプリケーションクライアント をセットアップすることです。アプリケーションクライアントは、1 つのアプリケーションのユーザープール設定です。そのアプリケーションは、ホストされた UI、ユーザープールへのSDKリクエストAPI、またはその両方を使用してユーザーを認証できます。この場合、ホストされた UI と OAuth 2.0 認証サーバーのアプリケーションクライアントを設定します。ホストされた UI は、サインアップ、サインイン、パスワードリセット、多要素認証など、一般的なユーザー認証フローを処理するウェブページのコレクションです。

ホストされた UI をアクティブ化すると、2.0 OAuth 認証サーバーもアクティブ化されます。認証サーバーは OpenID Connect (OIDC) と 2.0 OAuth 認証フローを処理します。タスクには、ユーザーアカウントのクエリ、トークンの発行、外部 ID プロバイダーとの統合が含まれます。ホストされた UI と認証サーバーは、カスタム UI 作成のレベルを制限し、アプリケーションが OIDC ID プロバイダーと最も連携するアプリケーションに最適です。

以下は、ホストされた UI と認証サーバーの機能の一部です。

ホストされた UI アプリケーションクライアント専用の機能
ホストされた UI と SDKベースのアプリケーションクライアント間で共有される機能
ホストされた UI サインイン用のアプリケーションクライアントを作成するには
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

  3. リストから既存のユーザープールを選択するか、ユーザープールを作成します。新しいユーザープールを作成すると、ウィザード中にアプリケーションクライアントを設定し、ホストされた UI を構成するように求められます。

  4. [App integration] (アプリケーションの統合) タブをユーザープールに設定します。

  5. [ドメイン] の横で、[アクション] を選択し、[カスタムドメインの作成] または [Amazon Cognito ドメインの作成] のどちらかを選択します。ユーザープールドメインを既に設定している場合は、新しいカスタムドメインを作成する前に、[Amazon Cognitoドメインの削除] または [カスタムドメインの削除] を選択します。

  6. Amazon Cognito ドメインで使用するための使用可能なドメインプレフィックスを入力します。[カスタムドメイン] のセットアップに関する詳細については、「ホストされた UI への独自のドメインの使用」を参照してください。

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

  8. 同じユーザープールの [App integration] (アプリケーションの統合) タブに移動し、[App clients] (アプリケーションクライアント) を検索します。[Create app client] (アプリケーションクライアントの作成) を選択します。

  9. [Application type] (アプリケーション) を選択します。選択した内容に基づいて、いくつかの推奨設定が提供されます。ホストされた UI を使用するアプリケーションは、[Public client] (パブリッククライアント) です。

  10. [App client name] (アプリケーションクライアント名) を入力します。

  11. この演習では、[Don't generate client secret] (クライアントシークレットを生成しない) を選択します。クライアントシークレットは、一元化されたアプリケーションからユーザーを認証する機密アプリケーションによって使用されます。この演習では、ホストされた UI サインインページをユーザーに提示し、クライアントシークレットは必要ありません。

  12. アプリで許可する認証フローを選択します。USER_SRP_AUTH が選択されていることを確認します。

  13. 必要に応じて、[token expiration] (トークン有効期限)、[Advanced security configuration] (高度なセキュリティ設定)、および[Attribute read and write permissions] (属性の読み取りと書き込みのアクセス許可) をカスタマイズします。詳細については、「アプリケーションクライアントのセッティングの構成」を参照してください。

  14. アプリケーションクライアントのコールバックを追加しますURL。これは、ホストされた UI 認証の後に指示される場所です。アプリにサインアウトを実装できるようになるまで、許可されたURLサインアウトを追加する必要はありません。

    iOS または Android アプリでは、 URLなどのコールバックを使用できますmyapp://

  15. アプリケーションクライアントの [ID providers] (ID プロバイダー) を選択します。少なくとも、[Amazon Cognito ユーザープール] をプロバイダーとして有効にします。

    注記

    Facebook、Amazon、Google、Apple などの外部 ID プロバイダー (IdPs) と OpenID Connect (OIDC) または を使用してサインインするにはSAML IdPs、まず、サードパーティー を介したユーザープールサインインの追加 に示すように設定します。次に、アプリクライアント設定ページに戻り、有効にします。

  16. OAuth 2.0 付与タイプ を選択します。認証コード許可を選択して、ユーザープールトークンと交換される認証コードを返します。トークンはエンドユーザーに直接公開されないため、侵害される可能性は低くなります。ただし、ユーザープールトークンの認可コードを交換するために、バックエンドでカスタムアプリケーションが必要です。セキュリティ上の理由から、モバイルアプリケーションには、認証コード許可フローをコード交換の証明キー (PKCE) とともに使用することをお勧めします。

    Amazon Cognito からユーザープールJSONウェブトークン (JWT) を返すには、暗黙的な許可を選択します。このフローは、トークンの認可コードを交換できるバックエンドがない場合に使用でき、トークンのデバッグにも役立ちます。

    注記

    認証コード許可暗黙的なコード許可の両方を有効にし、必要に応じて各許可を使用できます。

    アプリがユーザーの代わりではなく自身の代わりとしてアクセストークンをリクエストする必要がある場合にのみ、[クライアント認証情報] を選択します。

  17. 特に除外する必要がない限り、すべての [OpenID Connect scopes] (OpenID Connect スコープ) を選択します。

  18. 設定したカスタムスコープを選択します。カスタムスコープは、通常、機密クライアントで使用されます。

  19. [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は、全般設定ページに表示されます。コンソールで行った変更がすぐに表示されない場合は、数分待ってからブラウザを更新します。