Amazon Cognito user pools - Amazon Cognito

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

Amazon Cognito user pools

Amazon Cognito ユーザープールは、ウェブおよびモバイルアプリケーションの認証と認可のためのユーザーディレクトリです。アプリの観点からは、Amazon Cognito ユーザープールは OpenID Connect (OIDC) ID プロバイダー (IdP ) です。ユーザープールには、セキュリティ、ID フェデレーション、アプリ統合、ユーザーエクスペリエンスのカスタマイズなどの機能が何層も追加されます。

例えば、ユーザーのセッションが信頼できるソースからのものであることを確認できます。Amazon Cognito ディレクトリを外部 ID プロバイダーと組み合わせることができます。任意の を使用すると AWS SDK、アプリケーションに最適なAPI認証モデルを選択できます。また、Amazon Cognito のデフォルトの動作を変更またはオーバーホールする  AWS Lambda  関数を追加することもできます。

認証の概要

機能

Amazon Cognito ユーザープには次の機能があります。

サインアップ

Amazon Cognito ユーザープールには、ユーザープールにユーザープロファイルを追加するためのユーザー主導型、管理者主導型、およびプログラムによる方法があります。Amazon Cognito ユーザープールは、以下のサインアップモデルをサポートしています。アプリでは、これらのモデルを任意に組み合わせて、アプリで使用できます。

重要

ユーザープールでユーザーサインアップを有効にすると、インターネット上のすべてのユーザーがアカウントにサインアップしてアプリケーションにサインインできるようになります。アプリケーションをパブリックサインアップで開く場合を除き、ユーザープールで自己登録を有効にしないでください。この設定を変更するには、ユーザープールコンソールのサインアップエクスペリエンスタブでセルフサービスサインアップを更新するか、 CreateUserPool または UpdateUserPoolAPIリクエスト AllowAdminCreateUserOnlyの 値を更新します。

ユーザープールに設定できるセキュリティ機能については、「Amazon Cognito ユーザープールのセキュリティ機能を使用する」を参照してください。

  1. ユーザーはアプリに情報を入力し、ユーザープールにネイティブなユーザープロファイルを作成できます。API サインアップオペレーションを呼び出して、ユーザープールにユーザーを登録できます。これらのサインアップ操作は誰にでも公開することも、クライアントシークレットまたは  AWS  認証情報を使用して認可することもできます。

  2. ユーザーを Amazon Cognito への情報の受け渡しを許可できるサードパーティーの IdP にリダイレクトできます。Amazon Cognito OIDC は、ID OAuth トークン、2.0 userInfo データ、2.0 SAML アサーションをユーザープールのユーザープロファイルに処理します。Amazon Cognito に受信させる属性は、属性マッピングルールに基づいて制御します。

  3. パブリックサインアップやフェデレーションサインアップをスキップして、独自のデータソースとスキーマに基づいてユーザーを作成できます。Amazon Cognito コンソールまたは に直接ユーザーを追加しますAPI。CSV ファイルからユーザーをインポートします。既存のディレクトリで新しいユーザーを検索し、既存のデータからユーザープロファイルを入力する just-in-time AWS Lambda 関数を実行します。

ユーザーがサインアップしたら、Amazon Cognito がアクセストークンと ID トークンにリストするグループにユーザーを追加できます。ID トークンを ID プールに渡すときに、ユーザープールグループをIAMロールにリンクすることもできます。

サインイン

Amazon Cognito は、スタンドアロンのユーザーディレクトリおよび ID プロバイダー (IdP) として使用し、アプリケーションの ID プロバイダー (IdP) として使用できます。ユーザーは、Amazon Cognito がホストする UI でサインインするか、Amazon Cognito ユーザープール を通じて独自の UI でサインインできますAPI。フロントエンドのカスタム UI の背後にあるアプリケーション層は、正当なリクエストを確認するためのいくつかの方法のいずれかを使用してバックエンドのリクエストを承認できます。

外部ディレクトリ (オプションで Amazon Cognito に組み込まれたユーザーディレクトリと組み合わせる) を使用してユーザーをサインインさせるには、次の統合を追加できます。

  1. 2.0 OAuth ソーシャルサインインを使用してサインインし、コンシューマーユーザーデータをインポートします。Amazon Cognito は、2.0 OAuth を通じて Google、Facebook、Amazon、Apple でのサインインをサポートしています。

  2. SAML と OIDCでサインインし、エンタープライズユーザーデータをインポートします。SAML または OpenID Connect (OIDC) ID プロバイダー (IdP ) からのクレームを受け入れるように Amazon Cognito を設定することもできます。

  3. 外部ユーザープロファイルをネイティブユーザープロファイルにリンクします。リンクされたユーザーは、サードパーティーのユーザー ID を使用してサインインし、組み込みディレクトリのユーザーに割り当てたアクセス権を受け取ることができます。

Machine-to-machine 認証

一部のセッションはインタラクションではありません human-to-machine。自動プロセスAPIによって へのリクエストを承認できるサービスアカウントが必要になる場合があります。OAuth 2.0 スコープで認証用の machine-to-machineアクセストークンを生成するには、クライアント認証情報許可を生成するアプリケーションクライアントを追加できます。

ホストされた UI

ユーザーインターフェイスを構築しない場合は、カスタマイズされた Amazon Cognito がホストする UI をユーザーに提供できます。ホストされた UI は、サインアップ、サインイン、多要素認証 (MFA)、パスワードリセット用の一連のウェブページです。ホストされた UI を既存のドメインに追加するか、 AWS サブドメインでプレフィックス識別子を使用できます。

セキュリティ

ローカルユーザーは、SMSメッセージからのコード、または多要素認証 (MFA) コードを生成するアプリを使用して、追加の認証係数を提供できます。アプリMFAで設定して処理するメカニズムを構築したり、ホストされた UI に管理させることができます。Amazon Cognito ユーザープールは、ユーザーが信頼できるデバイスからサインインMFAするときにバイパスできます。

最初にMFAユーザーに を要求しない場合は、条件付きで要求できます。高度なセキュリティ機能により、Amazon Cognito は潜在的な悪意のあるアクティビティを検出しMFA、ユーザーに対して のセットアップ、またはサインインのブロックを要求できます。

ユーザープールへのネットワークトラフィックが悪意のある可能性がある場合は、そのトラフィックをモニタリングし、 AWS WAF ウェブ でアクションを実行できますACLs。

カスタマーユーザーエクスペリエンス

ユーザーのサインアップ、サインイン、またはプロファイル更新のほとんどの段階で、Amazon Cognito がリクエストを処理する方法をカスタマイズできます。Lambda トリガーを使用すると、ID トークンを変更したり、カスタム条件に基づいてサインアップリクエストを拒否したりできます。自分のカスタム認証フローを作成できます。

カスタムCSSとロゴをアップロードして、ホストされた UI に使い慣れたルックアンドフィールをユーザーに提供できます。

モニタリングと分析

Amazon Cognito ユーザープールは、ホストされた UI へのAPIリクエストを含むリクエストを にログに記録します AWS CloudTrail。Amazon CloudWatch Logs でパフォーマンスメトリクスを確認し、Lambda トリガー CloudWatch を使用してカスタムログを にプッシュし、Service Quotas コンソールでAPIリクエストボリュームをモニタリングできます。

API リクエストから Amazon Pinpoint キャンペーンにデバイスとセッションデータをログ記録することもできます。Amazon Pinpoint では、ユーザーアクティビティの分析に基づいて、アプリからプッシュ通知を送信できます。

Amazon Cognito アイデンティティプール統合

Amazon Cognito のもう半分はアイデンティティプールです。ID プールは AWS のサービス、ユーザーからの Amazon DynamoDB や Amazon S3 などの へのAPIリクエストを承認およびモニタリングする認証情報を提供します。ユーザープール内のユーザーをどのように分類したかに基づいてデータを保護する ID ベースのアクセスポリシーを構築できます。ID プールは、ユーザープール認証とは無関係に、さまざまな ID プロバイダーからのトークンと SAML 2.0 アサーションを受け入れることもできます。