Amazon Cognitoによる認証・認可の導入[概要編]
はじめに
今までの案件でCognitoの導入を担当することがあったんですが、この辺の仕様は時が経つと忘れがちなので、備忘録として残しておこうと思います。
認証・認可の技術は結構難しいので、1記事にまとめるとわかりづらいかなと感じたので、記事をいくつかにわけて投稿していこうと思います。
今回は概要編をやっていきます。
Cognitoってなにができるの?
簡単にいうと、会員登録制のサイトなどユーザー登録が必要なアプリに対して簡単に認証・認可の仕組みを導入できます。
つまり
- ログイン画面の用意
- アプリからユーザー情報の切り離し
- ロール・権限の定義
などをやってくれるので、本質的なアプリ自体の機能の開発に集中できます。
Cognitoの実際のログイン画面
Cognitoで利用できるログイン画面は2パターンあって、AWSが用意しているHosted UIとユーザー側が独自で用意するUIがあります。
Hosted UI
ロゴやCSSは変更できるものの、HTML自体は変更できず、日本語化ができません。
しかし、このHosted UIを使わないと使用できないAPIがあります。
独自UI
ユーザー側が自分で用意するUIです。
画像はAmplify UIといって、AWSが用意しているUIテンプレート。
ユーザープールとIDプール
上記画面にあるように、CognitoにはユーザープールとIDプールという2つのリソースがあります。
ユーザープール
ユーザーのサインアップやサインイン、ユーザー属性の管理など、アプリケーションのユーザー認証に関連する機能を提供しています。
IDプール
アプリケーションの認証済みユーザーに対してAWSリソースへのアクセスを管理します。
基本的にユーザープールを使う
簡単に言うと、ユーザープールはユーザーの認証を処理して、IDプールはAWSリソースへのアクセスを許可します。
基本的にアプリケーションの認証・認可にはユーザープールを使うと覚えておいてください。
次回
次回は実践編ということで実際にサンプルアプリを用意して、そこにCognitoによる認証機能を組み込んでいきます。
Discussion