Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated Apr 30, 2024

Maintenance ModeYou are viewing Amplify Gen 1 documentation. Amplify Gen 1 has entered maintenance mode and will reach end of life on May 1, 2027. New project should use Amplify Gen 2. For existing Gen 1 projects, a migration guide and tooling are available to help you upgrade. Switch to the latest Gen 2 docs →

既存の Cognito ユーザープールとアイデンティティプールを使用する

既存の Amazon Cognito リソースを Amplify プロジェクトにインポートします。amplify import auth コマンドを実行して、既存の Cognito ユーザープール & アイデンティティプールを検索してインポートします。

amplify import auth

amplify import auth コマンドは以下を実行します:

  • Amplify ライブラリ設定ファイル(aws-exports.js、amplifyconfiguration.json)に選択した Amazon Cognito リソース情報を自動的に設定します
  • 指定した既存の Cognito リソースを、すべての認証関連カテゴリ(API、ストレージなど)の認証 & 認可メカニズムとして提供します
  • 許可する場合、Lambda 関数が選択した Cognito リソースにアクセスできるようにします

amplify push を実行してインポートプロセスを完了し、このバックエンド変更をクラウドにデプロイします。

この機能は特に以下の場合に役立ちます:

  • 既存のユーザーベースに対して Amplify カテゴリ(API、ストレージ、関数など)を有効にする場合
  • アプリケーションスタックに Amplify を段階的に導入する場合
  • Amplify を使用しながら Cognito リソースを独立して管理する場合

注意: Amplify はインポートされたリソースのライフサイクルを管理しません。

既存の Cognito ユーザープールをインポートする

amplify import auth を実行したときに「Cognito User Pool only」オプションを選択します。ユーザープールを正常にインポートするために、ユーザープールには以下の条件を満たす少なくとも 1 つのアプリクライアントが必要です:

  • 「Web アプリクライアント」: クライアントシークレットなしのアプリクライアント

amplify push を実行してインポート手順を完了します。

For social sign-in, required attributes such as email will need to be both mutable on the User Pool as well as writable on the User Pool Client.

Learn more about mapping social sign-in provider attributes.

アプリクライアントのホステッド UI にサインアウト URL が定義されていることを確認してください。これを省略すると、Amplify CLI が aws-exports.js ファイルに OAuth scopesredirectSignInredirectSignOutresponseType を生成しない可能性があります。

Cognito ユーザープールにネイティブクライアントと Web クライアントが定義されている場合、クライアントは一致する OAuth プロパティを持っていることを確認してください。

既存のアイデンティティプールをインポートする

amplify import auth を実行したときに「Cognito User Pool and Identity Pool」オプションを選択します。アイデンティティプールを正常にインポートするために、それはこれらの要件を満たす 2 つのユーザープールアプリクライアントを認証プロバイダーとして関連付けている必要があります。

アイデンティティプールには以下が必要です:

  • アイデンティティプールとの信頼関係を持つ認証済みロール
  • アイデンティティプールとの信頼関係を持つ未認証ロール

これらのロールは通常、新しいアイデンティティプールを作成するときに、「Unauthenticated」アクセスを有効にして Cognito ユーザープールを認証プロバイダーとして持つ際に自動的に設定されます。

Amplify CLI は、ロールにアタッチされたポリシーを更新して、Amplify カテゴリが正しく機能することを確認します。たとえば、認証済みユーザーとゲストユーザーのストレージを有効にすると、S3 バケットのプライベート、保護、パブリック、読み取り、アップロードアクセス許可が未認証ロールと認証済みロールに追加されます。

amplify push を実行してインポート手順を完了します。

マルチ環境サポート

amplify env add を通じて新しい環境を作成すると、Amplify CLI はデフォルトで、アプリの Cognito リソースを Amplify プロジェクト外で管理していると想定します。異なる Cognito リソースをインポートするか、アプリの認証カテゴリに対して同じ Cognito リソースを維持するかを聞かれます。

新しい環境で Amplify にライフサイクルを管理させたい場合は、amplify remove auth を実行してインポートされた Cognito リソースのリンクを解除し、amplify add auth を実行して新しい環境で新しい Amplify 管理認証リソースを作成します。

既存の Cognito ユーザープールまたはアイデンティティプールをリンク解除する

既存の Cognito リソースをリンク解除するには、amplify remove auth を実行します。これは Amplify プロジェクトから参照されている Cognito リソースのリンクのみを解除します。Cognito リソース自体は削除しません。

amplify push を実行してリンク解除手順を完了します。

Amplify Console ビルドに環境変数を追加する

Amplify Console でアプリケーションを正常にビルドするには、次の環境変数をビルド環境に追加します:

環境変数説明
AMPLIFY_USERPOOL_ID認証用にインポートされた Amazon Cognito ユーザープールの ID
AMPLIFY_WEBCLIENT_IDWeb アプリケーション用に使用されるアプリクライアントの ID。アプリクライアントは、AMPLIFY_USERPOOL_ID 環境変数で指定された Amazon Cognito ユーザープールにアクセスするように設定する必要があります。
AMPLIFY_NATIVECLIENT_IDネイティブアプリケーション用に使用されるアプリクライアントの ID。アプリクライアントは、AMPLIFY_USERPOOL_ID 環境変数で指定された Amazon Cognito ユーザープールにアクセスするように設定する必要があります。
AMPLIFY_IDENTITYPOOL_IDAmazon Cognito アイデンティティプールの ID