【シングルサインオン解説】シングルサインオン実装「リバースプロキシ編」
シングルサインオン実装の1つである「リバースプロキシ」方式の概要について紹介します。
「シングルサインオン」とは
「シングルサインオン(SSO:Single Sign-On)」とは、1回のユーザー認証処理によって、それぞれ独立した複数のソフトウェアシステムにログインすることを可能とする仕組みを指します。
シングルサインオンの概要についてはこちらも参照ください。
→シングルサインオンの概要
「リバースプロキシ」方式とは
リバースプロキシ方式とは、認証を実施する中継サーバである「リバースプロキシサーバ」経由で対象システムにアクセスすることでシングルサインオンを実現する方式です。
リバースプロキシ方式では、クライアントからのすべてのアクセスがリバースプロキシサーバ経由となるようにネットワークを構成する必要があります。
「リバースプロキシ」方式の仕組み
リバースプロキシサーバ
リバースプロキシサーバは、クライアントからのアクセスを受け取り、そのリクエストをバックエンドに配置されたWebアプリケーションサーバに中継します。
認証サーバへの問い合わせ
クライアントからのリクエストは必ずリバースプロキシサーバを経由するため、リバースプロキシサーバは「対象ユーザーは現在ログイン状態なのか?」「対象ユーザーはリクエスト先Webアプリケーションサーバにアクセスできる権限を持っているのか?」などについて認証サーバに問い合わせながら中継処理を実施します。
認証済ユーザー情報はHTTPリクエストに付加され、アプリケーションに連携されます。
「リバースプロキシ」方式の特徴
メリット
エージェントの導入が不要
リバースプロキシ方式の場合、シングルサインオンの対象となるWebサーバやアプリケーションサーバにエージェントを導入する必要はありません。
既存サーバに対する構成変更などの作業実施は不要であるため、導入および展開がやりやすいメリットがあります。
特に対象サーバ台数が多いほど、リリースまでの工数を短縮できる効果が大きくなります。
プラットフォーム非依存
アプリケーションサーバなどにエージェント導入が必要ないため、サーバで動作しているOSに縛られることなく、シングルサインオン環境を構築できます。
セキュリティ向上
すべてのアクセスがリバースプロキシサーバ経由となることで、Webアプリケーションサーバを隠蔽できることになり、システム全体のセキュリティを向上できます。
また、システムを外部公開することが必要な場合には、リバースプロキシサーバを介することでより安全にシステムを公開できます。
デメリット
ネットワーク設計に影響
リバースプロキシ方式では、クライアントからのすべてのアクセスがリバースプロキシサーバを経由するようにネットワーク構成を変更する必要があります。
複雑なネットワークである場合には、事前調査などに膨大なコストがかかるケースもあるため、他のシングルサインオン実装方式(エージェント方式など)の検討も必要となります。
負荷集中によるパフォーマンス低下
リバースプロキシ方式では、すべてのアクセスをリバースプロキシサーバが処理しなければならない構成であるため、負荷が集中した場合には、リバースプロキシサーバの処理能力がボトルネックになる場合があります。
ネットワーク負荷が大きくなることが想定される場合には、ロードバランサーなどの導入による負荷分散構成も検討対象となります。
最後に
「リバースプロキシ」はエージェントを導入する必要がないため、シングルサインオン構築において一般的な方法として採用されています。
しかし、対象環境により適合が難しいケースもあるため、事前調査が重要となります。
弊社にご連絡いただければ「リバースプロキシを組み合わせたシングルサインオンについてのご提案」など、トータルサポートでご支援できます。
まずは、お気軽にお問い合わせください。
参考元サイト
- https://www.ashisuto.co.jp/product/theme/security/sso.html
- https://h50146.www5.hpe.com/products/software/security/icewall/sso/about/method.html
- https://www.ogis-ri.co.jp/pickup/themistruct/note/note_sso01.html
- https://kfep.jp/openam-news-2019-05-17-4315
- https://boxil.jp/mag/a2411/
- https://milestone-of-se.nesuke.com/sv-advanced/server-software/sso/