概念
1. CAS
CAS(Central Authentication Service、中央認証サービス)
イェール大学が開発したオープンソースのWeb SSO(シングルサインオン)実装フレームワークです。
2. SSO(シングルサインオン)
複数のWebシステムの本人確認を一つの拠点に集約して認証を行う仕組みです。
- 特徴:各アプリケーションはHTTPSといったWebプロトコルで通信し、グローバルに唯一のログイン入口を持ちます
- 平易な説明:同一ブラウザで認証センターに1回ログインすれば、信頼済みの各サイトへは再ログイン不要でアクセスできます
3. SSOシステムの3つの役割
- User:エンドユーザー(ブラウザ)
- Webアプリケーション(複数の業務システム)
- SSO認証センター(唯一)
4. SSOの3つの核心原則
- アカウントによるログイン処理はすべてSSO認証センターで実行する;
- 認証センターは各Webアプリケーションに対し、ユーザーが認証済みかどうかを通知する仕組みを提供する;
- 認証センターは全ての業務Webアプリケーションと事前に信頼関係を確立しておく。
二つの中核コンポーネント
CAS Server(認証サーバー側)
- 独立してデプロイされるWebプログラム、唯一の認証拠点
- 役割:ID・パスワードを受け取りユーザー認証を実施;チケット(Ticket)の発行、グローバルセッションCookie(TGC)の管理
CAS Client(各業務システムに埋め込むクライアント)
- 各業務Webアプリケーション内部に配置、普通はFilterフィルターとして実装される
- 役割:保護対象リソースへのリクエストを遮断;未ログイン時はブラウザをCAS Serverのログイン画面へ自動的にリダイレクト
処理フロー
- ユーザーが業務システムのリソースにアクセス → CAS Clientがリクエストを捕捉し、
Service Ticketが存在しないことを検知 - ClientがブラウザをリダイレクトしCAS ServerのログインURLへ遷移、業務システムのアドレス(Service)を付与
- ユーザーはCASサーバー上でID・パスワードを入力しログイン認証を完了
- ログイン成功:CAS ServerがブラウザへTGC(Ticket Granting Cookie)グローバルセッションCookieを書き込む
- ワンタイムチケットService Ticket(ST)を生成
- CAS Serverが再度ブラウザをリダイレクト、業務システムURLへ戻りURLパラメータに
Ticket=xxxを付加 - 業務システム側のCAS Clientがバックエンドからサーバー間リクエストを実行、ServiceアドレスとTicketを渡しCAS Serverにチケットの正当性を検証
- CAS Serverがチケット有効を確認し、ユーザー名などの本人情報を返却
- 検証合格、業務システムがローカルセッションを作成しユーザーがページを閲覧可能になる
TGCの役割:ブラウザにTGC Cookieが残っている限り、CAS連携済みの別システムにアクセスしてもログイン画面は表示されず、自動でシングルサインオンが実行されます。
紹介
Next: インストール