はじめに
SESエンジニアをしております。masahiroと申します。
本記事では、AWSの認証サービスCognitoでの接続方法について記述しております。
AWS コンソールでCognitoを開く
AWSマネージメントコンドールにログイン出来たら、画面左上の検索欄で「cognito」を検索してください。
cognitoを選択後に、cognitoのメインページでユーザープールの作成を選択してください。
認証プロバイダーの設定
選択すると、認証プロバイダーを聞かれるので、下記のように設定してください。
今回はフェデレーテッドアイデンティティプロバイダーを使用しない構成です。
使用する場合は適宜変更してください。
フェデレーテッドアイデンティティプロバイダーとは、ソーシャルメディアのアカウントを利用した、ソーシャルログインを実装する機能です。
今回は使用しないため、チェックを外します。
セキュリティ要件の設定
パスワードポリシーは、今回デフォルト設定です。
自身の定義でカスタムされる方は適宜変更してください。
多要素認証の設定をします。
これは、サインイン時のMFA認証の設定です。
今回はSMSメッセージでの、認証機能で設定します。
アカウント復旧に関する設定をします。
今回の復旧設定はEメールを利用した復旧方法にします。
サインアップ時の設定
セルフサービスのサインアップは、画面上から新規ユーザーを登録したい場合は有効化にします。
今回は有効化にすることで、画面上からの登録を許可します。
属性検証とユーザーアカウントの確認は、サインアップ時の検証メッセージの送信方法を設定します。
検証には、SMSやメールアドレス、両方を使用するなどの設定が可能です。
今回はメールアドレスでの検証を選択します。
必須の属性として、必要な属性値を選択します。
usernameとpasswordは必須条件なので、属性値とは異なります。
今回はMFA認証とサインアップ時のメールアドレスでの検証があるので、
必須属性として、phone_numberと、emailが自動的に設定されています。
メッセージ配信設定
メールの設定は、今回は開発時に使用するだけなので、AWS SESでのメール設定は適応しません。
SESを設定すると、上限なく送信などが可能になる本番使用のワークロードへと切り替わります。
「cognitoからの送信」で設定する場合では、送信元などは変更せずに返信先を自身のアドレスに変更してください。
「返信先Eメールアドレス」が検証メールなどが送られるメールアドレスになります。
SMSの設定では、初回の作成段階では機能しません。
適切なロールのポリシーを設定して、cognitoに紐づけてください。
:::note
MFA認証の設定時にロールは定義するので、一旦任意のものを作成してください。
:::
MFA認証にはAWS SNSを使用します。
こちらは別途、MFA認証を実装する際に設定してください。
MFA認証の設定方法は下記の記事に記載しております。
サインイン機能作成時に参照してみてください。
【Go】AwsCognitoを利用した認証機能を作ってみた(後編)
アプリケーションとの統合
アプリケーションと統合する時の設定は下記のようにしてください。
次はアプリケーションのクライアント設定を行います。
今回はブラウザアプリケーションでの認証を考えているので下記のように設定してください。
高度な設定の中で認証フローを変更します。
デフォルトではSRPの設定が選択されていますが、今回はユーザー名とパスワードでの認証を実装します。
下記のように設定してください。
各セッションやトークンの有効期限は適宜変更してください。
最後に各項目の設定内容確認ページが表示されます。
問題なければ、ユーザープールを作成してください。
ユーザープールの設定完了
ユーザープールの設定はこれで完了です。
認証機能を使用する際に必要な設定情報は下記の3つになります。
・aws_region
・user_pool_id
・client_id"
これらは、AWSマネージメントコンソールですぐに確認できると思うので、認証時に確認して設定してください。
おわりに
以上でAWSマネージメントコンソール上での、ユーザープールの設定について説明させていただきました。
Go言語で実際に認証機能を実装するための手順を下記の記事に記載しております。
興味があればご覧になってください。