「Amazon Cognito」を使ってログイン機能を作成する(SNS認証あり)
はじめに
ログイン認証機能を実装するための方法をいくつか調査中。
候補として上がっているのは大きく2つ。
- "Amazon Cognito"
- "Firebase"
まずは Cognito の調査からすることにしました。
マニュアルを読みながら設定を進めて見ましたが、文章が多く初見殺しのイメージがあったので、設定時のスクリーンショットを残しておきました。
そちらを共有したいと思います。
Cognito の設定で躓いた方の参考になれば幸いです。
準備
僕はさっと AWS のマニュアルを読みました。
実際に行った作業も以下のマニュアルを元に進めました。
( 書かれている内容通りに進められる方は当エントリを参考にする必要はないかと思います。 )
Cognito アーキテクチャ
概念として認証・認可情報を管理する "ユーザープール" と "ID プール" というものを理解する必要があります。
いずれの概念もまだ掴みきれていないのですが、 マニュアルを読みつつ、触りつつ理解していこうと思います。
今回触るのは "ユーザープール" のみになります。
設定方法
早速設定を進めていきましょう。
先にも述べたとおり、 AWS が提供してくれているマニュアル通りに進めていきます。
ステップ 1.ユーザープールを使用してユーザーディレクトリを作成する
- ステップ 1.ユーザープールを使用してユーザーディレクトリを作成する - Amazon Cognito を参考に作業を進めます。
Amazon Cognito コンソール を開きます。
[ユーザープールの管理] を選択します。
ページの右上にある [ユーザープールを作成する] を選択します。
ユーザープールの名前を入力し、[デフォルトを確認する] を選択して、名前を保存します。
[属性] ページで、[E メールアドレスおよび電話番号] および [E メールアドレスを許可] を選択します。
設定ができたら、ページの下部にある [次のステップ] を選択して属性を保存します。
ページの左側のナビゲーションバーで、[Review (確認)] を選択します。
[Review (確認)] ページの下部で、[プールの作成] を選択します。
ステップ 2.アプリケーションを追加して、ホストされたウェブの UI を有効にする
ページの左側にあるナビゲーションバーで、[全般設定] の [アプリクライアント] を選択します。
[アプリクライアントの追加] を選択します。
アプリに名前を付けます。
設定ができたら「アプリクライアントの作成」をクリックします。
[アプリクライアント ID] を書き留めます。
ここではマスキングされていますが、文字列が表示されますので忘れずにメモしておきましょう! (あとで利用します。)
コンソールページの左側にあるナビゲーションバーで、[アプリクライアントの設定] を選択します。
[Cognito ユーザープール] を [有効な ID プロバイダー] の 1 つとして選択します。
SNS 認証はもう少し設定を加えないとプロバイダの選択肢として表示されません。
このタイミングでは「Cognito User Pool」一択になります。
※(注意)上記設定について
- 「コールバック URL」は https で設定する必要があります。実際に利用できる Web サーバ環境が必要ですね。
- 「Let's Encrypt」などを使って自前で構築する必要があります。 ( 参考 : Let’s Encrypt でワイルドカード証明書を発行してすべてのサブドメインに https を適用 )
ディスカッション
コメント一覧
まだ、コメントがありません