投稿 2024年1月28日
更新 2024年1月28日
専門用語の数:少
ユーザは何もしなくとも、内部的にサインアップさせて
認証や認可の仕組みを使用したいので、AWSのCognitoを使用していきます。
Cognitoには「ユーザープール」と「IDプール」があります。
ユーザープールはAWSが管理する認証の仕組みで、
IDプールは、IDを発行して他のサービスへのアクセスを許可する認可の仕組みです。
今回はその「ユーザープール」の作成をやっていきます。
※AWSの画面はころころ変わるので、参考程度に
その前に、知っておいた方がわかりやすくなる単語を紹介しておきます。
認証とは、その人が本人かどうかを確かめることです。
例えば、スマホ。
指紋認証か顔認証(フェイスID)は、おそらく設定されているのではないでしょうか。
「認証」という言葉が出てきましたね。
※それがない場合もパスワードを設定しますよね。
スマホはその人が本人かどうかを確かめ、本人であればロックを解除します。
これが認証です。
認可とは、その人が行ってもよいかを確かめることです。
例えば、お酒を購入するのは20歳になってからです。
お酒を買うときに年齢確認をされるのは、20歳未満だと販売してはいけないルールがあるからです。
これが認可です。
AWSの画面上部にある検索画面に「cognito」と入力します。
入力して出てきた「Cognito」をクリックします。
左上のハンバーガーボタン(三)をクリックします。
ユーザープールをクリックします。
ユーザープール作成をクリックします。
フェデレーテッドアイテンティティプロバイダーとは、
GoogleやApple等、AWSとは別のサービスを使用して認証させることができる機能です。
今回はAWSだけで認証させるので、チェックは不要です。
サインイン(ログイン)するときに、何を入力してもらうかを決めます。
今回はメールアドレスでサインインするので、Eメールを選択します。
要求するパスワードのルールを決めます。
もっと簡単にしたりもっと強固にしたい場合は、カスタムを選択し調整しましょう。
Google Authenticatorなどの認証アプリや、電話番号を用いたSMSで多要素認証を必要とするかを選択します。
今回は不要のため「なし」を選択します。
パスワードを忘れたときにどうやって復旧させるかを選択します。
登録されているメールや電話番号を利用して、ユーザーにPINコードを送信し、
パスワードを変更できるようになる仕組みです。
今回は不要のため無効にしておきます。
ユーザー側からサインアップを許可するかを選択します。
無効にしてしまうと、AWSのCognito画面からしか登録できないようになります。
Cognitoにはいくつかの属性(データ)を保持できます。
メールアドレス等の属性を、本当に正しいものなのか検証を行います。
その際、自動で送信してもよいか?という許可です。
送信する場合は、送信手段等を選択します。
メールアドレスの検証では、リンク付きのメールが送られ、クリックすると検証済みになります。
今回は不要のため無効にしておきます。
必須の属性(データ)がある場合、入力していなければサインアップできないように制御できます。
Cognitoが用意している属性があるので、必須なものがある場合は選択しておきましょう。
Cognitoが用意していない独自の属性(データ)を持たせたい場合は、
カスタム属性を作って、受け取れる枠を用意しましょう。
Cognitoからユーザーにメッセージを送信する際に、SESかCognito
どちらから送信するかを選択します。
メッセージを送信する予定がある場合は、SESを選択したほうが良いでしょう。
主に、サインアップ時のメールアドレス検証だったり、多要素認証だったりです。
今回は特に必要ないため、Cognitoを選択します。
ユーザープールの名前を決めます。
日本語は使用できません。
Cognitoが用意してくれているページを使って、サインアップやサインインを行うか、
独自に作った画面やAPIで行うかを選択します。
今回はAPIで行うので、使用しません。
Cognitoからではなく、独自に用意した環境からAPIを使用する際に、
ユーザープールに許可させるための設定です。
パブリッククライアントだと、ユーザープール作成時に払い出される
「ユーザープールID」と「クライアントID」で、APIを叩くことができます。
秘密クライアントは、そのほかに「シークレットID」が必要になります。
アプリケーションクライアントの名前を決めます。
日本語は使用できません。
ここはアプリケーションタイプを選択したときに、デフォルトで選択されます。
基本的にはデフォルトのままでよいです。
認証フローを選択できます。
基本的にはデフォルトの「ALLOW_USER_SRP_AUTH」で、問題ないと思います。
必要に応じて変更しましょう。
各種トークンの有効期限等を細かく設定できます。
オプションの設定なので、変更の必要がある方だけ変更しましょう。
必要のある属性だけ、読み取りや書き込みを許可しましょう。
タグを設定します。
コスト管理やアクセスコントロールに使用します。
最後に入力内容の確認を行い、ユーザープールの作成は完了です。
AWSのCognitoでユーザープールを作成してみました。
本当にいろいろな設定ができるため、難しいですね…。
もっとAWS勉強して使いこなせるようになりたいです。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。
コメント一覧
↳管理者 より
2024/07/02 18:27:04
名無し より
2024/07/02 16:13:47