Amazon Cognito の認証と認可を、ウェブアプリケーションとモバイルアプリケーションに統合する
Amazon Cognito の実装は、AWS マネジメントコンソールまたは AWS SDK 管理ツールと、アプリケーション内の SDK ライブラリを組み合わせたものです。Amazon Cognito コンソールは、Amazon Cognito ユーザープールとアイデンティティプールを設定および管理するためのビジュアルインターフェイスです。
Amazon Cognito ユーザープールと最も簡単に統合するには、マネージドログインを使用します。マネージドログインは、Amazon Cognito ユーザープールを迅速にテストおよびデプロイするための、即座に使用できるウェブベースのサインインアプリケーションです。マネージドログインによるユーザープール認証には、ホストされたサインインページにユーザーを誘導する OpenID Connect (OIDC) ライブラリが必要です。この一連のユーザーインタラクティブなリダイレクトウェブエンドポイントでは、サードパーティによるサインイン、多要素認証 (MFA)、認証フローの選択などの認証フローを Amazon Cognito が処理します。アプリケーションは、Amazon Cognito がレスポンスで返す認証結果だけを処理する必要があります。
また、アプリケーションへの AWS SDK の追加、認証インターフェイスのカスタム構築、ユーザーの認証と認可のための API オペレーションの呼び出しを行うこともできます。AWS Amplify
例えば、アプリケーションは、ユーザーのサインインのためにマネージドログインを呼び出し、次にアプリケーションコードからトークンエンドポイントを呼び出して、ユーザーの認可コードをトークンと交換する場合があります。この場合、アプリケーションはユーザーのトークンを解釈して保存し、認証と認可のための適切なコンテキストでトークンを提示する必要があります。Amplify は、これらのプロセス用の組み込み機能を備えたガイド付き統合ツールを追加します。
Amazon Cognito リソースをすべてコードで構築することもできます。アイデンティティプールには、ユーザープールと同じようなマネージド認証オプションはありません。アプリケーションで AWS 認証情報にアクセスするには、インポートされた SDK モジュールにアイデンティティプールのオペレーションを実装します。独自にカスタム構築したアプリケーションコードの使用を開始するには、AWS SDK
Amazon Cognito の認証と認可を使用する前に、アプリプラットフォームを選択し、サービスと統合するためのコードを準備します。AWS SDK で使用可能なプラットフォームについては、「AWS SDK による認証」を参照してください。AWS CLI は、Amazon Cognito や他の AWS のサービス向けのコマンドライン SDK であり、Amazon Cognito API オペレーションとその構文に慣れるために大変役立ちます。
注記
Amazon Cognito の一部のコンポーネントは、API でのみ設定できます。例えば、ユーザープールのカスタム SMS または E メール送信者の Lambda トリガーは、CreateUserPool または UpdateUserPool API リクエスト内の UserPool クラスの LambdaConfig プロパティを更新するリクエストでのみ設定できます。
Amazon Cognito ユーザープール API は、その名前空間を複数の API オペレーションクラスと共有します。1 つのクラスでは、ユーザープールとそのプロセス、ID プロバイダー、ユーザーを設定します。別のクラスでは、パブリッククライアントでユーザーがサインイン、サインアウト、プロファイルの管理を行うための認証されていないオペレーションを提供します。API オペレーションの最後のクラスでは、機密のサーバー側クライアントで、独自の AWS 認証情報で認可したユーザーオペレーションを実行します。アプリケーションコードの実装を始める前に、目的のアプリケーションアーキテクチャを知っておく必要があります。詳細については、「API、OIDC、マネージドログインページの認証についての理解」を参照してください。
トピック
AWS Amplify による認証
AWS Amplify は、ウェブアプリケーションおよびモバイルアプリケーションを構築するための完全なソリューションです。Amplify を使用すると、Amplify ライブラリを使用して既存のリソースに接続したり、Amplify コマンドラインインターフェイス (CLI) を使用して新しいリソースを作成および設定したりできます。Amplify には、Authenticator
フロントエンドアプリケーションで Amplify の認証機能を使用するには、プラットフォーム別の以下のドキュメントを参照してください。
Amplify ライブラリはオープンソースで、GitHub
Amplify によるユーザーインターフェイス (UI) の作成
ユーザープールのマネージドログインは、ウェブまたはモバイルアプリの認証フロントエンドの最も重要なニーズを満たすことができます。マネージドログインで対応できるパラメータを超えてユーザーインターフェイス (UI) をカスタマイズするには、アプリケーションをカスタム構築します。Amplify UI
カスタム認証コンポーネントの使用を開始するには、Authenticator コンポーネントに関する以下のドキュメントを参照してください。
AWS SDK による認証
安全なバックエンドを使用して Amazon Cognito とやり取りする独自の ID マイクロサービスを構築するには、選択した言語の AWS SDK を使用して Amazon Cognito ユーザープールと Amazon Cognito アイデンティティプール API に接続します。
各 API オペレーションの詳細については、「Amazon Cognito ユーザープール API リファレンス」と「Amazon Cognito API リファレンス」を参照してください。これらのドキュメントには、サポートされているプラットフォームでさまざまな SDK を使用するためのリソースに関する、「以下の資料も参照してください」セクションが含まれています。