mattyです。今回は、SSO(シングルサインオン)を実現するJavaのオープンソース・ソフトウェアである OpenSSO に導入された「ワンタイムパスワード」の機能を検証してみたいと思います。
OpenSSOはSun Microsystemsが中心となって進められており、次期リリースのアーリー・アクセス版が3ヵ月サイクルでリリースされていますが最近リリースされた機能に「ワンタイムパスワード」が含まれています。
(OpenSSOのリリーススケジュールと追加予定機能は こちら)
ワンタイムパスワードとはその名の通り一度しか使えない使い捨てパスワードのことですが、OpenSSOでの実現方法について(上記「こちら」のページに)以下のように記載されています。
ユーザが携帯電話経由でワンタイムパスワードを取得できるようにする機能をOpenSSOに追加する予定です。(SMSのテキストメッセージを利用します。)
現在、提供している多要素認証を置き換えわけではありませんが、ワンタイムパスワードのためのソリューションを別途購入することに抵抗があるお客様に対する、簡単な代替案となります。
このソリューションの主な利点は顧客に携帯電話を物理トークンのデバイスの代わりとして使用させることで、
別途物理トークンデバイスを購入する場合に比べてより低い運用コストを実現可能なことです。
つまり携帯電話のショートメールサービスを使ってワンタイムパスワードを取得し認証をするという、
ワンタイムパスワードの簡単な代替案なのですね。では実際に設定してみたいと思います。
1) OpenSSOのダウンロードとインストール
OpenSSOダウンロードページより opensso_express_20090901.zip をダウンロードします。
インストールについては詳しく紹介されているサイトが他にありますのでこちらなどを参考にして行ってください。
今回は下記の環境で行いました。
| OS | CentOS 5.0 |
| Java | JDK 6 Update 16 |
| webコンテナ | Tomcat 6.0.20 |
2) 管理者権限でログイン

OpenSSOに管理者権限でログインします。
ログインID「amadmin」と、インストール時に設定したそのパスワードを入力してください。
3) ワンタイムパスワードの設定

「アクセス制御」タブをクリックします。

「/ (最上位のレルム)」をクリックします。

「認証」タブをクリックします。

認証タブ画面の下の方にある認証連鎖欄の「ldapService」をクリックします。
ここには現在「ID・パスワードの認証」のみが設定されてますが、「ワンタイムパスワードの認証」をこれより追加します。

「追加」ボタンを押します。

1行増えるので、増えた行のインスタンスに「HOTP」を指定してください。これが「ワンタイムパスワード」の認証追加の指定となります。指定したら「保存」ボタンを押します。
保存されると「認証連鎖プロパティーは更新されました。」と表示されるので、次に「認証へ戻る」ボタンを押してください。
4) 残念な事実

残念なことに日本ではキャリアーを超えてショートメールを送ることは現在はできないようです(来年あたり改正されるようですが)。海外から送る方法もあるようなのですが、、仮に出来ても高額となります。
ですので今回は普通のメールアドレスにワンタイムパスワード情報を送ることにします。
3つ上のキャプチャーの画面で「HOTP」をクリックすると左の画面が表示されますが、これがワンタイムパスワードの設定で、電子メールがデフォルトで送るようになっていますので何もする必要はありません。
5) ユーザーのメールアドレス設定

次にワンタイムパスワードの送信先メールアドレスの設定が出来ていないので、ユーザー情報に設定します。
「対象」タブをクリックし、今回はdemoユーザーに設定しますので「demo」をクリックしてください。

「編集」リンクをクリックしてパスワードを設定し、メールアドレス欄にアドレスを入力したら「保存」ボタンを押してください。
「プロファイルが更新されました。」と表示され、これで設定は完了なので画面右上の「ログアウト」ボタンを押してください。
ログイン画面に戻り、実際にワンタイムパスワード認証を行います。
6) ワンタイムパスワード認証

ログインIDに「demo」、パスワードに設定したパスワードを入力します。

「OTPコードの要求」ボタンを押すとワンタイムパスワードが設定したメールアドレスに送信されます。
押した後、メールを受信しパスワードを取得したら画面に入力し「OTPコードの送信」ボタンを押してください。

ログインに成功すると、ユーザー設定画面が表示されます。シングルサインオンの設定がなされていれば、目的のサイトが表示されることになります。
ログインしたら設定されたメールアドレスに一定時間有効なパスワードを送るという機能が手軽に利用できました。
携帯で利用するには、まだショートメールサービスでは利用出来ないので例えばGmailを送信先に指定して、
Gmailの転送設定(ここから来たメールはここに送る)をして携帯に送るなどの工夫が必要ですね。