Amazon Cognito とは何ですか?

Amazon Cognito では、ユーザーのサインアップ、サインイン、アクセスコントロール、仲介された AWS サービスアクセスをウェブアプリケーションやモバイルアプリケーションに数分で追加できます。デベロッパー中心の費用対効果の高いサービスであり、数百万人のユーザーにまでスケールできる安全なテナントベースの ID ストアとフェデレーションオプションを提供します。Amazon Cognito は、ブランド化された顧客体験の創出、セキュリティの向上、顧客のニーズへの適応に役立ちます。例えば、ソーシャル ID プロバイダーによるログインや、WebAuthn パスキーや SMS、E メールのワンタイムパスワードを使用したパスワードなしのログインがサポートされています。Amazon Cognito は、さまざまなコンプライアンス標準をサポートし、オープンアイデンティティ標準に基づいて動作し、開発リソースや SDK ライブラリの広範なカタログと統合されています。

ユーザー認証

開発者はノーコードのビジュアルエディタを使用して、エンドユーザー画面 (サインアップ、ログイン、MFA など) の表示方法を調整できます。設定パラメータには、色、位置、配置、テキスト、言語、背景、画像、ロゴ、フォント、レイアウトなどが含まれます。これらの設定オプションを使用すると、コンシューマーブランドのスタイルを厳密に一致させることができ、Cognito はアプリケーションの他の部分との高い一貫性やまとまりがあるユーザーエクスペリエンスを提供することができます。

お客様は、エンドユーザーがパスワードを覚えなくてもアプリケーションにアクセスできるように Amazon Cognito を設定することができます。これにより、煩わしさが軽減され、セキュリティが向上し、ユーザーコンバージョンが増加します。サポートされているパスワードレス認証フローには、E メールによるサインイン、電話/SMS によるサインイン、およびパスキーによるサインインが含まれます。この柔軟性により、ユーザーエクスペリエンスが向上し、ログインプロセスが簡素化されます。

WebAuthn パスキーを使用すると、パスワードが不要になり、フィッシングや認証情報の盗難のリスクが軽減されるため、セキュリティが強化されます。生体認証やハードウェアトークンなど、より高速で便利な認証方法により、シームレスなユーザーエクスペリエンスをもたらします。さらに、パスキーはパブリックキー暗号化を活用することでアカウント全体のセキュリティを向上させ、機密情報がサーバーに送信されたり保存されたりすることがなくなります。Amazon Cognito では、[マネージドログイン] と API の両方をサポートしており、アカウントごとに最大 20 個のパスキーを作成して保存できます。

ユーザーアカウントで MFA を有効にして、さらに顧客のセキュリティを強化できます。ユーザーは、E メール、SMS や、Google Authenticator などの タイムベースドワンタイムパスワード (TOTP) ジェネレータを使用して自分の ID を確認できます。Amazon Cognito は、異なるユーザーのプールに異なるパスワードルールを設定することもサポートしています。

Amazon Cognito はフェデレーションハブとして、Apple、Facebook、Google、Amazon などのソーシャル ID プロバイダーや、SAML や OIDC などのエンタープライズ ID プロバイダーを経由したユーザーのログインを可能にします。Amazon Cognito は、SAML SP が開始するフロー、IDP が開始するフロー、SAML 暗号化など、さまざまな SAML プロファイルをサポートしています。ユーザーが (ローカル認証または外部フェデレーションによって) Amazon Cognito にログインすると、OAuth/OIDC を使用してフェデレーションされたリソースにアクセスすることができます。

Amazon Cognito では、AWS Lambda 関数を使用して 1 回または複数回のチャレンジ - レスポンスサイクルに基づいてユーザーを認証する、カスタム認証フローを構築できます。このフローを使用して、カスタムチャレンジに基づくカスタム認証を実装することも、追加の要素としてカスタムチャレンジを使用することもできます。

AWS Lambda トリガーを使用して、認証とサインアップの前後、またはトークン発行前などのユーザーライフサイクルステージなどで、Cognito の動作をカスタマイズできます。Lambda トリガーを使用して、さまざまな段階でユーザーに送信されるメッセージをカスタマイズしたり、サードパーティのメールや SMS プロバイダーと統合したりすることもできます。

ID 管理

顧客がサイトで最初に体験するのは、多くの場合、自己登録のプロセスを通じてです。Amazon Cognito は、カスタマイズ可能なプリパッケージのマネージドログインインターフェイスを提供し、迅速に市場に参入できるほか、完全なカスタム自己登録ソリューションを構築するための堅牢な API セットも提供します。ユーザーは、E メール、電話番号、またはユーザー名を使用してアプリケーションにサインアップできます。自己登録プロセスでは、ユーザーはカスタム属性を含むプロファイルデータの表示と更新が可能です。SMS メッセージや E メールによるパスワードリセットなど、セルフサービスオプションにより、ヘルプデスクへの問い合わせを削減できます。

Amazon Cognito には、数百万人のユーザーに拡張できる安全なテナントベースの ID ストア (ユーザープール) が用意されています。ユーザープールは、直接サインアップするユーザーと、外部 ID プロバイダーでサインインするフェデレーションユーザーのユーザープロファイルデータを安全に保存します。

Amazon Cognito の ID ストアは、API ベースのユーザーリポジトリです。このリポジトリと API は、ユーザーごとに最大 50 のカスタム属性の保存、さまざまなデータ型のサポート、および長さと変異性の制約の実施をサポートしています。サインアッププロセスの完了前にユーザーが指定する必要がある必須属性を選択します。

ユーザーは、バッチインポートまたはジャストインタイム (JIT) 移行を使用して Amazon Cognito に移行することができます。バッチによるユーザーの移行では、CSV ファイルによるインポートプロセスを使用します。JIT 移行プロセスを使用すると、AWS Lambda トリガーによって移行プロセスがサインインワークフローに統合され、ユーザーのパスワードを保持できます。

Amazon Cognito では、マルチテナントがサポートされた B2B のやり取りが可能です。アプリケーションの統合、アクセスとパスワードのポリシー、完全なテナントの分離の適用を再利用することもできます。

アクセスコントロール

Amazon Cognito は、アプリケーションとの統合のラストマイルを保護します。AWS AppSync、Amazon Application Load Balancers (ALBs) と Amazon API gateways には、Amazon Cognito のトークンとスコープに基づいたアクセスを提供するポリシーエンフォースメントポイントが組み込まれています。

Amazon Verified Permissions クイックスタートを使用すると、お客様はアクセス許可ポリシーを自動生成し、Cognito グループのメンバーシップに基づいてロールベースのアクセス制御を割り当て、きめ細かな認証を行えます。Amazon Verified Permissions には、Amazon Cognito ID とアクセストークン (複雑なトークン中のトークンコンストラクトを含む) をサポートする組み込みのトークンオーソライザーがあります。

Amazon Cognito のアイデンティティプールとしても知られている Amazon Cognito の認証情報ブローカーは、Amazon DynamoDB、Amazon S3 バケット、AWS Lambda サーバーレスコンポーネントやその他の Amazon サービスなどの AWS リソースへの Single Sign-On アクセスを提供します。ユーザーは、サービスに対する最小特権アクセスをサポートするために、異なるロールに動的にマッピングすることができます。

OAuth クライアント認証情報フローを使用して、Amazon Cognito はマシンツーマシン認証を提供し、アプリケーションコンポーネント間の安全なエクスペリエンスを確保します。

OAuth 2.0 スコープとクレームの形式のカスタム属性を使用して ID とアクセストークンを強化します。アクセストークンでカスタム属性を使用すると、アプリケーション固有の高度な承認に関する決定を行うことができます。この機能を使用して、エンドユーザーエクスペリエンスをパーソナライズし、カスタマーエンゲージメントを向上させることもできます。

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

データ駆動型のアプローチで、顧客獲得と維持を促進します。顧客アウトリーチキャンペーンを開始し、Amazon Pinpoint でエンゲージメントを追跡します。Amazon Pinpoint は、Amazon Cognito ベースのユーザーアクティビティを分析し、Amazon Cognito は Pinpoint キャンペーンのためにユーザーデータをエンリッチ化します。

AWS Amplify は、フロントエンドのウェブ/モバイルデベロッパーが AWS でフルスタックアプリケーションをすばやく簡単に構築できるようにする一連の専用ツールと機能であり、ユースケースの進化に合わせて幅広い AWS のサービスを活用できる柔軟性を備えています。Amplify を使用すると、Amazon Cognito でウェブまたはモバイルアプリケーションのバックエンドを設定し、数分の内にアプリを接続して、ウェブフロントエンド UI を視覚的に構築できます。さらに、AWS コンソールの外部でも、簡単にアプリケーションコンテンツの管理が行えます。クラウドの専門知識がなくても、より速く、簡単に拡張できます。

CIAM ソリューションはカスタムソリューションです。Amazon Cognito は、認証、登録、およびユーザー移行フローを完全にカスタマイズするための堅牢なフックと拡張機能のセットを提供します。たとえば、自己登録フローは、カスタム ID 証明とアカウント検証チェックで補強でき、ログインプロセスは、カスタム認証フローを作成したり、トークンを生成する前に修正したりするために拡張できます。

Amazon Cognito SDK は、Java、C++、PHP、Python、Golang、Ruby、.NET、および JavaScript を使用して利用可能です。

高度なセキュリティ

AWS ウェブアプリケーションファイアウォール (AWS WAF) との組み込み統合により、Amazon Cognito には高度なボット検出機能が備わっているので、組織が自動アカウントについて課金されないようにし、ボット攻撃の影響を軽減できます。

Amazon Cognito は、ユーザーのサインアップ、サインイン、パスワード変更の際に、セキュリティ侵害を受けた認証情報の再利用をリアルタイムで検出し、防止することができます。他でセキュリティ侵害を受けた認証情報を入力していることが Amazon Cognito で検出されると、パスワードの変更を促されます。

アダプティブ認証により、ユーザーのアカウントを保護し、サインインエクスペリエンスを向上させます。Amazon Cognito で、新しい場所やデバイスからの試行、IP 位置情報に基づき不可能なトラベル条件など、通常とは異なるサインインアクティビティが検出されると、そのアクティビティにリスクスコアが割り当てられます。それによって、ユーザーに対して追加の証明を求めるか、そのサインインリクエストをブロックするかを選択できます。

監査とコンプライアンス

Amazon Cognito は、AWS CloudTrail、Amazon CloudWatch メトリクス、および Amazon CloudWatch Logs Insights によるモニタリングをサポートしています。CloudTrail を使用すると、Amazon Cognito コンソールからの API コールと、Amazon Cognito API オペレーションへのコードコールをキャプチャできます。CloudWatch メトリクスを使用すると、ほぼリアルタイムでモニタリング、レポート、およびイベント発生時の自動アクションを実行できます。CloudWatch Logs Insights を使用すると、Amazon Cognito CloudTrail ログファイルをモニタリングするためのイベントを CloudWatch に送信するように CloudTrail を設定できます。

Amazon Cognito では、サインイン、サインアップ、パスワード変更などのユーザーイベントの高度なログ記録が可能で、リスクレベル、場所、ソース IP、ユーザーエージェントなどの詳細なリクエストデータを取得できます。お客様は、Amazon Kinesis Data Firehose を介して、このイベントログデータを Amazon CloudWatch、Amazon S3、またはサードパーティーのログ集約ソリューションにストリーミングできます。これにより、ユーザーアクティビティの包括的な監視と分析が可能になります。

Amazon Cognito は複数のセキュリティおよびコンプライアンス要件に適合しており、厳しい規制のある医療関連の企業や業者などの組織にも対応できます。Amazon Cognito は HIPAA に準拠し、PCI DSS、SOC、ISO/IEC 27001、ISO/IEC 27017、ISO/IEC 27018、ISO 9001 に適合しています。