by

【シングルサインオン解説】シングルサインオン実装「エージェント方式」編


シングルサインオン実装の1つである「エージェント方式」の概要について紹介します。

「シングルサインオン」とは

「シングルサインオン(SSO:Single Sign-On)」とは、1回のユーザー認証処理によって、それぞれ独立した複数のソフトウェアシステムにログインすることを可能とする仕組みを指します。

シングルサインオンの概要についてはこちらも参照ください。
→シングルサインオンの概要

「エージェント方式」とは

エージェント方式とは、シングルサインオンを実現するための仕組みの1つです。

Webサーバやアプリケーションサーバに認証を代行するソフトウェアである「エージェントモジュール」を組み込みます。

「エージェントモジュール」がブラウザとアプリケーションの通信の間に入り込み、認証サーバが認証管理を実行することで、シングルサインオンを実現します。

「エージェント方式」の仕組み

エージェントモジュールの導入

エージェント方式では、シングルサインオン対象となるすべてのWebサーバ内にエージェントモジュールを組み込みます。

エージェントモジュールが対象Webサーバ環境に対応していない場合は、別のシングルサインオン方式を選択する必要があります。

認証サーバ

エージェント方式における認証サーバは、コンテンツを保持しているWebサーバ内に配置できます。

また、LDAPサーバなどの外部サーバに依存させることも可能です。

認証管理

概要

クライアントからのリクエストはWebサーバが受け取り、Webサーバ内に導入されているエージェントモジュールが対象ユーザーのログイン状態やアクセス権限を認証サーバに問い合わせます。

Webサーバは、その結果により、「コンテンツ表示」「エラーページ表示」などを実行します。

認証済Cookie管理

Webサーバ内のエージェントモジュールは、クライアントからのリクエストにおいて認証済Cookieが提示されていない場合は未認証状態とみなし、認証サーバに認証処理を要求します。

認証サーバは、認証成功となった場合、認証成功情報(ユーザーIDや端末識別情報など)を認証サーバへ格納し、エージェントモジュールに認証済Cookieを発行します。

認証済ユーザー情報はHTTPリクエストに付加され、各アプリケーションに連携されます。

各アプリケーションはこの情報を取得してセッションを管理することで、シングルサインオンが実現されます。

「エージェント方式」の利点と課題

利点

①(リバースプロキシ方式と比較した場合)既存ネットワーク環境に変更を加える必要がない
②(リバースプロキシ方式と比較した場合)パフォーマンスに優れている—リバースプロキシサーバに対するアクセス集中によるボトルネックが発生しにくい
③拡張可能—新規Webアプリケーションサーバを導入してもエージェントモジュールを導入すれば対応できる

課題

①SSO対象となるすべてのWebアプリケーションサーバにエージェントモジュールをインストールする必要がある
②Webアプリケーションサーバの改修が必要となる場合がある
③エージェントモジュールが対象Webアプリケーションサーバに対応していない場合がある
④エージェントモジュールのバージョンアップが必要な場合、対象サーバが多いとメンテナンスコストが増大する
⑤対象となるWebアプリケーションサーバがクラウド上の商用サービスなどの場合は、エージェントモジュールの組み込みができない場合がある

最後に

「エージェント方式」は、シングルサインオン構築において一般的な方法として採用されています。

しかし、対象環境により適合が難しいケースもあるため、事前調査が重要となります。

弊社にご連絡いただければ「エージェント方式を組み合わせたシングルサインオンについてのご提案」など、トータルサポートでご支援できます。

まずは、お気軽にお問い合わせください。

もっと知りたい方へ

 

参考元サイト