Amazon Cognito user pools - Amazon Cognito

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

Amazon Cognito user pools

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

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


      認証の概要

機能

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

サインアップ

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

重要

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

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

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

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

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

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

サインイン

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

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

  1. OAuth 2.0 ソーシャルサインインでサインインし、コンシューマーユーザーデータをインポートします。Amazon Cognito は、OAuth 2.0 による Google、Facebook、Amazon、および Apple へのサインインをサポートしています。

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

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

M achine-to-machine 認証

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

ホストされた UI

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

セキュリティ

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

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

ユーザープールへのネットワークトラフィックが悪質なものである可能性がある場合、これをモニタリングして AWS WAF ウェブ ACL で対処できます。

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

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