Amazon CognitoでWeb管理画面の認証設定したお話

はじめに

こんにちは/こんばんはー。
クラウドCoEユニットの矢吹です。
「ファイアーエムブレム 風花雪月」が早く出て欲しすぎて2ヶ月くらいパッと経ってくれないかなって思ってる今日この頃です。

今回の話

さて、今回のお話はAmazon Cognitoの話です。(ちょー簡単にWebページに認証作れるよって話です。)
実際、AWSハンズオン等で触ってはいましたが、今回サービスに入れたということで今後は展開したいところです。

Amazon Cognito とは

AWS公式ドキュメントより
Amazon Cognito は、ウェブアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をサポートしています。
ユーザーは、ユーザー名とパスワードを使用して直接サインインするか、Facebook、Amazon、Google などのサードパーティーを通じてサインインできます。

f:id:AdwaysEngineerBlog:20190513105451p:plain

事前準備

Webサイトを見れる状態(AWS上で構築)

  • ALB(アプリケーションロードバランサー)
    • https:443のリスナーを持っている状態 ⇨ SSL証明書も設定してね
  • EC2(ApacheでもNginxでも何でも)
  • Route53(今回は持ってるドメインでALBに対してエイリアスしました。)

設定手順

ユーザープールの作成

参考:Amazon Cognito ユーザープール

全般設定

項目に沿って設定してください。 f:id:AdwaysEngineerBlog:20190513105531p:plain

f:id:AdwaysEngineerBlog:20190513105542p:plain

f:id:AdwaysEngineerBlog:20190513105558p:plain

f:id:AdwaysEngineerBlog:20190513105609p:plain

↑ ロールは別に必要なければ作らなくて良いです。
f:id:AdwaysEngineerBlog:20190513143138p:plain

f:id:AdwaysEngineerBlog:20190513143154p:plain

f:id:AdwaysEngineerBlog:20190513143212p:plain

f:id:AdwaysEngineerBlog:20190513143222p:plain ↑ アプリクライアントの作成ボタンを押し忘れないように。(後でも作れますが。)
f:id:AdwaysEngineerBlog:20190513143232p:plain

f:id:AdwaysEngineerBlog:20190513143249p:plain

f:id:AdwaysEngineerBlog:20190513143413p:plain

アプリの統合

f:id:AdwaysEngineerBlog:20190513143425p:plain

↑ コールバックURLの中に以下を設定してください
https://ドメイン名(ALBにエイリアス設定されている)/oauth2/idpresponse
参考:Amazon Cognito を使用する準備を整える

f:id:AdwaysEngineerBlog:20190513143438p:plain

ユーザーの作成

f:id:AdwaysEngineerBlog:20190513143451p:plain

f:id:AdwaysEngineerBlog:20190513143501p:plain

↑ [Eメールを検証済みにしますか?] にチェック入れないとパスワード再発行出来なくなるのでチェックは入れてください。

f:id:AdwaysEngineerBlog:20190513143513p:plain

ALB(ロードバランサー)への設定

f:id:AdwaysEngineerBlog:20190513143524p:plain

f:id:AdwaysEngineerBlog:20190513143534p:plain

f:id:AdwaysEngineerBlog:20190513143542p:plain

f:id:AdwaysEngineerBlog:20190513143552p:plain

確認

対象のドメインにアクセスして確認

f:id:AdwaysEngineerBlog:20190513143604p:plain

f:id:AdwaysEngineerBlog:20190513143616p:plain

感想

Lambdaや独自の認証環境作らなくても、コンソールぽちぽちでユーザ毎の認証ページ作れるのはすごい便利だなと思いました。
また、アプリケーションロードバランサー(ALB)とかにも設定出来ちゃうのでそれはすごい便利!
二段階認証も備えているのでそれもまた良いなと思いました。
ただ、ユーザープールの管理だとユーザー管理しないといけなくなるので、展開するならIDプールの管理側で外部認証かなー。
ではまたいつかー。