ログイン認証
認証方式について
SaaS を含む Web アプリケーションでは、代表的な認証方式として以下の 2 つがあります。
・セッションベース認証
・トークンベース認証
SaaSus Platform では、トークンベース認証 を採用しています。
以下に、それぞれの認証方式について説明します。
認証の種類
セッションベース認証
セッションベース認証は、サーバ側で生成したセッションIDを使用してクライアントが認証を行う方式 です。
この方式の特徴として、ステートフルな通信が可能 である一方、トークンベース認証と比較してサーバの負荷が高くなる 点が挙げられます。
トークンベース認証
トークンベース認証は、トークンの情報を利用してクライアントが認証を行う方式 です。
この方式の特徴として、サーバ側で認証情報を保持する必要がないため、セッションベース認証と比較してサーバの負荷が低く、ステートレスな通信が可能である 点が挙げられます。
セッションベース認証とトークンベース認証の違い
セッションベース認証は、サーバ側で認証のための情報を保持する のに対し、トークンベース認証は サーバ側に認証情報を保持せず、トークンの検証のみで認証を行う という違いがあります。
また、トークンベース認証は、ユーザー数が増加した際のサーバ負荷がセッションベース認証よりも低く、よりスケーラブルなシステムを実現できる というメリットがあります。
SaaSus Platform における認証
SaaSus Platform では トークンベース認証 を採用しています。
トークンの生成および検証は、SaaSus Platform SDK を利用し、SaaSus Platform の API を呼び出すことで実施します。
認証タイミングについて
ログインが必要な処理を実行する場合、サーバがリクエストを受けたタイミングで認証を行う必要があります。
SaaSus Platform では、SaaSus Platform SDK を利用し、リクエストごとに認証を実施します。
SDK の ユーザー情報取得処理 を実行することで、以下の情報を取得できます。
・トークンの検証
・ログインユーザの情報取得(ユーザ情報、テナント情報、権限)
ログインが必要な処理が複数ある場合、各処理の先頭で SaaSus Platform SDK を利用し、ユーザー情報を取得することで、ログイン状態を確認する必要があります。
処理数が増えると、個別に認証処理を実装することが困難になるため、フレームワークのミドルウェア機能を活用し、一律で認証をチェックする仕組みを導入することを推奨します。
トークンの種類
SaaSus Platform では、以下の3種類のトークンを生成します。
・IDトークン
・アクセストークン
・リフレッシュトークン