Jump to content 日本-日本語
日本HPホーム 製品とサービス サポートとドライバ ソリューション ご購入方法
≫  お問い合わせ
日本HPホーム
ソフトウェア  >  セキュリティ

HP IceWall SSO

技術レポート:パフォーマンス特集1

HP IceWall ファミリー

お問い合わせ
技術レポート
IceWallニュース
オンラインデモ
カタログ
イベント・セミナー情報
HP IceWall SSO
HP IceWall Identity Manager
HP IceWall MCRP
HP IceWall File Manager
HP IceWall QFS
HP IceWall SSO (English)
HP IceWall ファミリー
IceWall サイトマップ
日本HP セキュリティページ
日本HP メールニュース
日本HP サイトマップ
IceWallについてのお問い合わせ 03-6416-6660
※HP IceWall SSO は株式会社SCCとの共同開発製品です。
コンテンツに進む
SSO製品のスケーラビリティの考え方とHP IceWall SSOのアーキテクチャ
SSO製品のトラフィックパターン
HP IceWall SSO のアーキテクチャ

技術レポート一覧へ戻る
SSO製品はクライアントとアプリケーションの間のすべてのトラフィックに介在し、認証やアクセス制御を行ないます(図1)。
そのトラフィック量は、大規模のシステムであれば毎秒数千件にも及びます。つまりSSO製品は、その規模のトラフィックを処理できるスケーラビリティを持つことが要求されます。ここでは、SSO製品がどのような仕組みで、その処理を実現すべきかを述べていきたいと思います。
SSO環境でのトラフィックパターン

SSO製品のトラフィックパターン

SSO製品のトラフィックは、多数のAgentもしくはReverseProxy から認証サーバ(Policyサーバ)にアクセスに行きそこでまとめられ、認証DBまで認証や認可情報を確認する流れです(図2)。

SSO製品のトラフィックパターン2

通常すべてのトラフィックで認証・認可のチェックが必要であるため、もし何も工夫せずにSSO製品を作成すると、すべてのトラフィックが毎回認証DBにアクセスすることとなります。認証DBは、データベースやLDAPが通常用いられますが、ご存知のとおり台数を増やしスケールアウトすることは容易ではありません。また処理も重くパフォーマンスも容易な向上が難しい。つまりこの部分がボトルネックとなります。
このボトルネックをいかに解消しているかが、各SSO製品のスケーラビリティに関するアーキテクチャのポイントです。
そのボトルネックの解消方法のポイントとしては、大きく以下の2点が挙げられます。
  1. キャッシュを使用する
  2. 認証DBとの接続の効率化
1.キャッシュを使用する

キャッシュの持ち方には、次の2つのパターンがあります。

  • Agentに保持する場合
  • 認証サーバで保持する場合
Agentにキャッシュを保持した場合、ヒットすればそこで処理が完了するため、トラフィックとしては一番軽くなります。しかし、Agentのキャッシュには問題も多くあります。
ヒット率を上げるためキャッシュサイズを大きくとると、メモリ圧迫や検索によるCPU負荷が生じ、同じサーバ上のアプリケーションに影響を及ぼしてしまいます。また何十、何百ものAgentのキャッシュ間の整合性も問題です。たとえば本体でログアウトしても、Agentにキャッシュが残っている間は、アプリケーションにアクセスできてしまいます。したがってAgentのキャッシュは、そのようなことが起こらないようにアプリケーションに影響を与えず、整合性を損なわない程度に制限する必要があります。そうなるとヒット率は期待薄であり、主体は認証サーバのキャッシュとなります。

認証サーバでのキャッシュのポイントはヒット率と検索速度です。つまり認証DBになるべく問い合わせを行かせないようにすることと、多数のAgentからの大量アクセスをどう処理するかです。ヒット率を高めるためには、認証DBに近い内容をメモリに展開することになりますが、単純に展開してしまうと、今度はキャッシュの検索に時間がかかってしまいます。たとえば、10万人分のレコードがあれば、シーケンシャルに検索した場合、毎回平均5万レコード検索しなければなりません。これを解決するためには、ツリー型など高速な検索方法が必要です。また処理効率を上げるためにマルチスレッドを採用する必要があり、当然スレッド間の排他制御も巧妙に制御する必要があります。

2.認証DBとの接続の効率化

認証サーバと認証DBとの間がシーケンシャルな処理であれば、そこがまずボトルネックとなります。スケーラビリティを実現するためには、複数のDBアクセスを同時に実行可能とする必要があります。
一方、DBアクセスで最も重い処理は、DB接続です。従って、DB接続の負荷を軽減することがボトルネックの解消となります。DBアクセスを並列処理し、かつ、DB接続の負荷を軽減しスケーラビリティを実現するには、あらかじめ確保した複数のDB接続を各処理単位で共有して使用するコネクションプールの採用が必要となります。またコネクションプールを生かすためには、認証サーバが並列処理、つまりここでもマルチスレッド対応していることが必須です。

HP IceWall SSO のアーキテクチャ

HP IceWall SSO はログイン時のみ認証DBにアクセスに行き、そのユーザの情報は認証サーバにキャッシュされ、その後のアクセスは認証サーバで終端する設計です。AgentやReverseProxy ではキャッシュを持っていないため認証サーバにトラフィックが集中しますが、認証サーバではB*Tree検索やコネクションプール、マルチスレッドの採用による完全並列処理を実現しており、100万人ログインしている状態で毎秒10000件の処理に耐えられる構造をもっています。シーケンシャルでの処理と比較したのが図3です。

IceWall SSOのアーキテクチャ


また処理効率も非常に良くわずか1CPUで毎秒2000 件以上のアクセス処理*1を実現しています。

*1 RP2470 (HP-UX11.0i 750Mhz)での測定結果
2004.5.12 日本HP コンサルティング・インテグレーション統括本部 IceWallソリューション部部長 小早川 直樹
●関連技術レポート
≫ パフォーマンス特集(1) SSO製品のスケーラビリティの考え方とHP IceWall SSOのアーキテクチャ (本トピックス)
≫ パフォーマンス特集(2) IceWall+ロードバランサが実現するパフォーマンス
≫ パフォーマンス特集(3) HP IceWall SSOのパフォーマンス調査方法
≫ パフォーマンス特集(4) 新しいパフォーマンスモニタリングツール(iwpm)のご紹介
≫ パフォーマンス特集(5) HP-UX 11i v3におけるHP IceWall SSOのパフォーマンス
≫ 技術レポート一覧へ戻る
このページのトップへ
印刷用画面へ
プライバシー 本サイト利用時の合意事項 ウェブマスターに連絡
© 2008 Hewlett-Packard Development Company, L.P.