認証データベースへのHBase/Hadoopの適用

2011年2月4日(金)
湯本 勝之玉城 久頌

1. はじめに

HP IceWall SSO は、日本ヒューレット・パッカード株式会社が日本で開発した Webシングルサインオン製品です。1997年の販売開始より、合計4000万以上のユーザーライセンスが販売されており、日本国内の市場占有率も1位となっています*1。大企業のミッションクリティカルなシステムの認証基盤としても使用されている非常に実績の高い製品です。

本連載では、HP IceWall SSOの最新機能を軸とし、クラウド環境における認証システムへの新技術の適用、クラウドとの認証連携、そしてクラウドの活用事例を3回にわたり紹介していきたいと思います。

第1回はHP IceWall SSOにおける認証データベースへのHBase/Hadoopの適用に関して紹介します。

HBaseはApache Software Foundation(以下ASF)によってトップレベルプロジェクトの位置づけで開発されているソフトウエアで、同じくASFのトップレベルプロジェクトであるHadoopが提供する分散ファイルシステムを利用して動作する列指向の分散型データベースです。数千ノードにおよぶクラスター構成でも直線的にスケールし、世界規模の大手検索サイトやSNSサイトのエンジンの1つとして採用された実績があります。

2010年11月、日本HPはHBaseをHP IceWall SSOの認証データベースとして接続するためのモジュールの製品化を実現しました。従来、大規模認証基盤の認証データベースにはRDBMSが推奨されていましたが、サーバーのクラスター化や共有ディスクの増設などスケールアップ型の拡張が必要となり、多大な作業負荷とコストが課題となっていました。

これに対して、HBase はオープンソースであり、認証データベースとして使うと直線的にスケールアウトさせることができます。HP IceWall SSOとHBaseの連携は、大幅な可用性、運用性の向上とコスト削減の実現を可能としました。この記事では、HBaseを認証データベースとして適用した際の性能や特長について紹介していきます。

  • [*1] 出荷金額ベース 国内Webシングルサインオンパッケージ市場No1 日本HP:43.8%
    (出典:ミック経済研究所「個人認証型セキュリティソリューション市場の現状と将来展望 2010」2010年10月刊)

2. HP IceWall SSOとは

図1:HP IceWall SSOの構成図(クリックで拡大)

ユーザーの認証をする時には、ユーザーが打ち込んだユーザー名とパスワードを、認証データベースに保存されているものと照合する処理が必要です。認証データベースとは、IDとパスワードを保持する認証テーブルを格納するデータベースのことです。筆者らはSSO製品(HP IceWall SSO)の開発を行っており、認証データベースとして従来RDBMSやLDAPサーバーなどを使用してきましたが、今回このラインアップにHBaseが加わりました。

ここで、認証データベースがどのようにユーザー認証処理に関係するかを理解していただくために、ユーザー認証処理の流れを説明します。

ユーザーがHP IceWall SSOを通してログインする際、まずIceWallサーバーが提供するログインページでユーザーIDとパスワードを入力します。IceWallサーバーは、ユーザーが入力したユーザーIDとパスワードをユーザー認証要求メッセージに載せて認証モジュールに送ります。ユーザー認証要求を受けた認証モジュールは、認証データベースに照会してユーザーが登録されているか、またパスワードが正しいかを確認します。

ユーザーが登録されていてパスワードが正しければ、認証モジュールはユーザーにセッションIDを発行し、メモリー上にユーザーID、セッションID、ログイン時刻を記録します。また認証成功時刻を認証データベースにも記録し、最後に認証要求への応答メッセージに載せてセッションIDをIceWallサーバーに返します。以後、ユーザーがWebブラウザでサービスを提供するWebアプリケーションにアクセスする時には、認証モジュールが発行したセッションIDで認可を受けます。

3. HBaseをIceWall SSO の認証データベースとして使用するための要件

本章では、IceWall SSOが認証テーブルに要求する要件と、それに対するHBaseの特性を対比して示します。今回注目したHP IceWall SSOの認証テーブルの要件は以下の通りです。

(A) ユーザー IDを一意なキーとして、パスワードなどのユーザー属性を保持するカラムを複数持てること
(B) 行単位の一貫性があること
(C) C言語で書かれたプログラムから利用できること
(D) 可用性が高いこと
(E) 高いスループットを実現できること

図2にIceWall SSOとHBaseを接続した際の基本構成図を示します。

図2:IceWall SSOとHBaseの接続構成図(クリックで拡大)
日本ヒューレットパッカード株式会社

2004年より検疫システムソフトウェア開発、2009年よりIceWallソフトウェア開発(現職)。

日本ヒューレットパッカード株式会社

テクノロジーコンサルティング本部 IceWall ソフトウェア本部 第一部
2009 年にエンジニアとして新卒で入社。以後 IceWall ソフトウェア開発(現職)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています