💭

Amazon Cognitoによる認証・認可の導入[概要編]

2024/04/07に公開

はじめに

今までの案件で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