2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Cognitoでのユーザープールの設定方法

Posted at

はじめに

SESエンジニアをしております。masahiroと申します。
本記事では、AWSの認証サービスCognitoでの接続方法について記述しております。

AWS コンソールでCognitoを開く

AWSマネージメントコンドールにログイン出来たら、画面左上の検索欄で「cognito」を検索してください。
スクリーンショット 2023-05-19 14.01.40.png

cognitoを選択後に、cognitoのメインページでユーザープールの作成を選択してください。
スクリーンショット 2023-05-19 14.02.43.png

認証プロバイダーの設定

選択すると、認証プロバイダーを聞かれるので、下記のように設定してください。
スクリーンショット 2023-05-19 14.04.39.png

今回はフェデレーテッドアイデンティティプロバイダーを使用しない構成です。
使用する場合は適宜変更してください。

フェデレーテッドアイデンティティプロバイダーとは、ソーシャルメディアのアカウントを利用した、ソーシャルログインを実装する機能です。
今回は使用しないため、チェックを外します。

セキュリティ要件の設定

パスワードポリシーは、今回デフォルト設定です。
自身の定義でカスタムされる方は適宜変更してください。
スクリーンショット 2023-05-19 14.08.01.png

多要素認証の設定をします。
これは、サインイン時のMFA認証の設定です。

今回はSMSメッセージでの、認証機能で設定します。

スクリーンショット 2023-05-19 14.08.15.png

アカウント復旧に関する設定をします。

今回の復旧設定はEメールを利用した復旧方法にします。

スクリーンショット 2023-05-19 14.08.32.png

サインアップ時の設定

セルフサービスのサインアップは、画面上から新規ユーザーを登録したい場合は有効化にします。

今回は有効化にすることで、画面上からの登録を許可します。

スクリーンショット 2023-05-19 14.15.07.png

属性検証とユーザーアカウントの確認は、サインアップ時の検証メッセージの送信方法を設定します。
検証には、SMSやメールアドレス、両方を使用するなどの設定が可能です。

今回はメールアドレスでの検証を選択します。

スクリーンショット 2023-05-19 16.02.14.png

必須の属性として、必要な属性値を選択します。

usernameとpasswordは必須条件なので、属性値とは異なります。

今回はMFA認証とサインアップ時のメールアドレスでの検証があるので、
必須属性として、phone_numberと、emailが自動的に設定されています。

カスタム属性は今回は設定しておりません。
スクリーンショット 2023-05-19 16.10.36.png

メッセージ配信設定

メールの設定は、今回は開発時に使用するだけなので、AWS SESでのメール設定は適応しません。
SESを設定すると、上限なく送信などが可能になる本番使用のワークロードへと切り替わります。
「cognitoからの送信」で設定する場合では、送信元などは変更せずに返信先を自身のアドレスに変更してください。

「返信先Eメールアドレス」が検証メールなどが送られるメールアドレスになります。

スクリーンショット 2023-05-19 16.17.14.png

SMSの設定では、初回の作成段階では機能しません。
適切なロールのポリシーを設定して、cognitoに紐づけてください。
:::note
MFA認証の設定時にロールは定義するので、一旦任意のものを作成してください。
:::
スクリーンショット 2023-05-19 16.22.57.png

MFA認証にはAWS SNSを使用します。
こちらは別途、MFA認証を実装する際に設定してください。

MFA認証の設定方法は下記の記事に記載しております。
サインイン機能作成時に参照してみてください。
【Go】AwsCognitoを利用した認証機能を作ってみた(後編)

アプリケーションとの統合

アプリケーションと統合する時の設定は下記のようにしてください。

スクリーンショット 2023-05-19 21.34.37.png

次はアプリケーションのクライアント設定を行います。
今回はブラウザアプリケーションでの認証を考えているので下記のように設定してください。

スクリーンショット 2023-05-19 21.38.43.png

高度な設定の中で認証フローを変更します。

デフォルトではSRPの設定が選択されていますが、今回はユーザー名とパスワードでの認証を実装します。
下記のように設定してください。

スクリーンショット 2023-05-19 21.41.52.png

各セッションやトークンの有効期限は適宜変更してください。

最後に各項目の設定内容確認ページが表示されます。
問題なければ、ユーザープールを作成してください。
スクリーンショット 2023-05-19 21.43.48.png

ユーザープールの設定完了

ユーザープールの設定はこれで完了です。

認証機能を使用する際に必要な設定情報は下記の3つになります。
・aws_region
・user_pool_id
・client_id"

これらは、AWSマネージメントコンソールですぐに確認できると思うので、認証時に確認して設定してください。

おわりに

以上でAWSマネージメントコンソール上での、ユーザープールの設定について説明させていただきました。
Go言語で実際に認証機能を実装するための手順を下記の記事に記載しております。
興味があればご覧になってください。

【Go】AwsCognitoを利用した認証機能を作ってみた(前編)

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?