本記事ではCognito Managed Loginについての紹介を行います。
Amazon Cognito Managed Loginとは
AWSが提供するAmazon Cognitoの認証画面です。
Cognitoを用いた認証システムに必要な操作が一通り実装されており、マネジメントコンソールから確認できるURLにアクセスすれば認証画面を作成せずともCognitoの認証を使用することができます。
Cognitoに外部IdP(GoogleやAppleなど)を追加すれば、Managed Login画面からも外部IdP認証を行うことができるようになります。
画像を見ていただくとわかる通りデフォルトデザインとは思えないほどデザインがしっかりしています。
Hosted UIとの違い
Hosted UIはManaged Loginが実装される前から存在しているAWS提供のCognito認証画面です。
Managed Loginは機能、デザインともにHosted UIから大きくアップデートされています。
今から使用するならManaged Login一択でよいかと思います。
Hosted UIからの変更点は以下の通りです。
- デフォルトデザイン面で大幅なアップデート
- マネジメントコンソールからノーコードで画面デザインの変更が可能になった
- パスキー、パスワードレス等の認証フローにも対応可能になった
ノーコードでの画面デザインの変更
Managed Loginはマネジメントコンソールからノーコードでデザインを変更することができます。
以下は変更できる内容の一部です。
- ページ背景(画像挿入または背景色の設定)
- フォーム(入力部分)の位置変更
- ロゴ挿入
- ボタンの形、色の変更
- ヘッター、フッターの追加
以下簡単に設定を変更してみました。
Managed Loginのメリット
Managed Loginのメリットは以下の通りです。
〇認証画面の作成が不要になる
画面設計だけでなくAPIでの認証フロー実装も不要で認証機能を利用できます。
サインアップ、サインイン、パスワード変更など認証機能を実装しようとすると複数画面、複数機能の実装が必要になります。
それぞれ別種のAPIを1~3個ほど呼び出す必要があり認証フローを成立させるだけでもそこそこの作りこみを要求されますが、それらをすべて省略することができます。
〇ブラウザにセッションが残る
実はManaged Loginはセッション管理もしてくれます。
そのため、コード実装いらずでOkta等より低コストにSSOを実装することができます。
Managed Loginのデメリット
Managed Loginのデメリットは以下の通りです。
〇画面デザインの変更に制限がある
画面デザインの変更はAWSが提供するコンポーネントでしかできないため複雑なデザイン等は難しいです。
簡単な文章の追加やボックス内に表示される文字列の変更ができないため、ぱっと見の印象を変える以上の変更はできないくらいの塩梅になります。
サイドバーの追加やリンクの埋め込み等もできないため、デザインにこだわる場合は独自に認証画面を実装する必要があります。
〇認証フローを制御できない
AWSが提供するデフォルト画面遷移にしか対応しておりません。
独自認証フローを追加するためカスタム認証トリガー等を設定していてもManaged Loginでは利用できません。
まとめ
Managed LoginはAWSが提供するCognitoの認証画面です。
自前で認証画面を用意せずとも認証システムをアプリに組み込むことができます。
最低限の認証しか要求されない場合や個人レベルの認証システムとしては十二分に機能します。


