0
0

More than 1 year has passed since last update.

CognitoユーザープールにAWS SDK for JavaScript v3でアクセス その1 - ユーザ一覧取得

Last updated at Posted at 2023-01-12

を使用してみる

Windows 11にて

Cognitoの設定は
・ユーザ名はメアド
・SMSは使用しない
・メアド・パスワードのみ保持 (他に必要なユーザ属性あれば別DBに保持)
とする

ユーザ一覧取得はCognitoのクライアントとしての接続方法は見つけられず、IAMでのアクセスとなる
(実案件ではCognitoのメンテナンス目的でしか使わないかも、しかし今回は最初の一歩ということでここから始めてみることとする)

AWS Cognitoユーザープール

  1. aws.amazon.comにサインアップ/ログイン
  2. コンソールのホームからCognitoサービスへ移動
  3. [ユーザープールの管理]押下
  4. [ユーザープールを作成する]押下
  5. ステップ1 サインインエクスペリエンス
    1. サインインオプション:Eメールのみ
    2. 他:デフォルト
  6. ステップ2 セキュリティ要件
    1. MFAの強制:オプション
    2. MFAの方法:Authenticatorアプリのみ
    3. 他:デフォルト
    4. 以下参考画像
      image.png
      image.png
      image.png
  7. ステップ3 サインアップエクスペリエンス
    1. すべてデフォルト
  8. ステップ4 メッセージ配信
    1. Eメールプロバイダー:Cognito
    2. 他:デフォルト
  9.  ステップ5 アプリケーション統合
    1. プール名:MyUserPool
    2. アプリタイプ:秘密クライアント
    3. アプリクライアント名:MyAppClient
    4. 他:デフォルト
  10.  ユーザープールIDの値をメモっておく ★1

AWS ユーザー、アクセスキー

  1. AWSコンソールのホームからIAMサービスへ移動
  2. 左ペインのユーザー
  3. 右上のユーザーを追加
    1. ステップ1
      1. ユーザー名:MyCognitoUser
      2. AWS 認証情報タイプを選択:アクセスキー
    2. ステップ2
      1. アクセス許可の設定:既存のポリシーを直接アタッチ
      2. ポリシー:AmazonCognitoPowerUserのみ選択
      3. アクセス権限の境界の設定:アクセス権限の境界を設定せずに user を作成する
    3. ステップ3、4
      1. なし
    4. ステップ5
      1. .csvのダウンロード ★2

AWS SDK for JavaScript v3でアクセス

  1. Node.jsをインストールする → https://nodejs.org/ja/
  2. 以下コマンドプロンプトで作業
  3. 作業フォルダ作成、移動、AWS SDK for JavaScript v3インストール
    mkdir myprj1
    cd myprj1
    npm install @aws-sdk/client-cognito-identity-provider
    
  4. 作業フォルダのpackage.jsonに"type": "module",を追記
    package.json
    {
      "type": "module",
      "dependencies": {
        "@aws-sdk/client-cognito-identity-provider": "^3.245.0"
      }
    }
    
    
  5. 作業フォルダに以下のファイルを作成 → 使用クラス https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cognito-identity-provider/classes/listuserscommand.html
    list-users.js
    import { CognitoIdentityProviderClient, ListUsersCommand } from "@aws-sdk/client-cognito-identity-provider";
    
    const cognitoClient = new CognitoIdentityProviderClient({ region: '<東京リージョンならap-northeast-1>' });
    const response = await cognitoClient.send(new ListUsersCommand({ UserPoolId: '<★1の値>' }));
    console.log(response);
    
  6. 実行
    set AWS_ACCESS_KEY_ID=<★2の値>
    set AWS_SECRET_ACCESS_KEY=<★2の値>
    node list-users.js
    

おまけ - 環境変数設定自動化

  1. dotenvインストール
    npm install dotenv
    
  2. list-users.jsファイルの先頭に以下を記述
    import * as dotenv from 'dotenv'
    dotenv.config();
    
  3. 作業フォルダに以下のファイルを作成
    .env
    AWS_ACCESS_KEY_ID=<★2の値>
    AWS_SECRET_ACCESS_KEY=<★2の値>
    

今後

ListUsersCommand以外も使ってユーザ登録や認証等を実施
Webアプリ化(ユーザ登録画面や認証画面)

続き

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0