検索
連載

OpenIG、OpenDJと連携したOpenAMの新機能OSSによるアイデンティティ管理(3)(2/2 ページ)

今回は、OpenAMの姉妹製品で既存アプリケーションを改修せずにシングルサインオンを可能にする「OpenIG」と、OpenAMのデフォルトデータストアである「OpenDJ」について解説します。

Share
Tweet
LINE
Hatena
前のページへ |       

高機能なディレクトリサーバー、「OpenDJ」

 OpenDJ(Open Source Directory Services in Java)は、OpenAM同様にフォージロックが提供するOSSの1つで、REST API先進的なレプリケーションアーキテクチャを実装した高機能なディレクトリサーバーです。アプリケーションへの組み込みを容易にする仕組みが実装されており、OpenAMの組み込みデータストアとしても採用されています。

概要 内容
初版 2.4 / 2010年12月21日
最新版 Release 2.6.0 / 2013年6月26日
実装言語 Java
対応OS クロスプラットフォーム
対応言語 英語、フランス語、ドイツ語、スペイン語、日本語、中国語
サポート フォージロックによるサブスクリプション、日本国内でも幾つかの企業が有償サポートを提供
機能 ディレクトリサービス
ライセンス CDDL
公式サイト http://www.forgerock.com/opendj.html
表2 OpenDJの主な情報

 OpenDJはサーバーとしての機能だけでなく、クライアントツールも充実しています。CUIのツールもありますが、以下のような洗練されたGUIの管理ツールも備えており、直感的な操作が可能になっています。


図5 OpenDJの管理コンソール

 OpenDJは多くのOSにインストールでき、その作業は非常に簡単です。Java Web Startがインストールされていれば、jnlpファイルをダウンロードするだけでインストールが開始されます。またWindowsインストーラーやrpm、debパッケージなども提供されています。

OpenDJによるパスワードポリシー制御

 OpenAMはバージョン10.0.0から、LDAPサーバーのパスワードポリシー機能と連携できるようになりました。IETFが標準化したLDAPサーバーのパスワードポリシーを処理するための規約(LDAP Beheraパスワードポリシー)に準拠しています。

 これにより、パスワードの履歴チェックやアカウント作成後のパスワードの強制変更の設定などが行えるようになります。OpenAM管理コンソールのLDAP認証のページに、以下の項目が追加されています。


図6 パスワードポリシー制御の有効化

 デフォルトで有効になっていますので、LDAPサーバーのパスワードポリシー制御を有効にすれば、OpenAMのLDAP認証モジュールはそれに従うようになります。OpenDJの場合は、dsconfigコマンドなどでパスワードポリシーとACI(アクセス制御命令)の設定変更を行うと、OpenAMで機能が有効になります。

 この機能はLDAP Beheraパスワードポリシーの仕様に準拠しているOpenLDAPなどのディレクトリサーバーでも機能します。デフォルトのOpenDJを利用した場合は、以下の機能が動作することを確認しています(注3)

設定項目 デフォルト値 概要
allow-expired-password-changes false パスワードが有効期限切れになっているユーザーに対し、自身のパスワード変更を許可するかどうかを示します。
expire-passwords-without-warning false ユーザーが期限切れの警告通知を見たことがない場合でも、ユーザーのパスワードを失効させるかどうかを示します。
force-change-on-add false アカウント作成後の最初の認証の際に、パスワードの変更を強制するかどうかを示します。
grace-login-count 0 ユーザーが新しいパスワードを設定できるように、有効期限が切れた後、ユーザーに許可されているログイン猶予回数を指定します。
idle-lockout-interval 0 s ログイン試行がされないユーザーをロックアウトするまでの時間を指定します。
lockout-duration 0 s 認証失敗を繰り返してロックされた場合のロック時間を指定します。
lockout-failure-count 0 ユーザーに許可されているの最大連続認証失敗回数を指定します。この値を超えるとユーザーはロックアウトされます。
lockout-failure-expiration-interval 0 s 認証失敗回数が保存される時間を指定します。
max-password-age 0 s 同じパスワードを使用し続けることができる最大時間を指定します。
max-password-reset-age 0 s 管理者によってパスワードリセットされた後に、ユーザーがパスワードを変更できる時間を指定します。この時間を超えるとロックアウトされます。
password-change-requires-current-password false ユーザーが新しいパスワードを設定するときに、現在のパスワードを入力する必要があるかどうかを示します。
password-expiration-warning-interval 5 d パスワードの有効期限切れの警告通知が転送され始める日数を指定します。
password-history-count 0 パスワード履歴に保持する旧パスワードの最大数を指定します。履歴に残っているパスワードには変更できません。
password-history-duration 0 s パスワードをパスワード履歴に保持する時間を指定します。
require-change-by-time - ユーザーにパスワード変更を強制するまでの猶予(時間)を指定します。
表3 OpenAMで利用可能なパスワードポリシー

注3:現在最新のOpenAM 11.0.0において、パスワードポリシーは認証モジュール内のみで機能します。そのため認証モジュール以外の機能(例えば、エンドユーザーのパスワード変更時など)ではポリシーが効きません。この仕様に関してはエンハンス要望としてJIRAにも登録されており、今後改善される可能性があります。


OpenDJによる新しいセッションフェールオーバー

 OpenAM 10.1.0-Xpressから、高可用性を実現するセッションフェールオーバーの実装が簡単な仕組みに変更されました。

 以前のバージョンでは、セッションフェールオーバーを機能させるために、Open Message QueueとBerkeley DBの利用が必須でした。この構成は多くの時間を必要とし、複雑さを増加させる原因になっていたため、実装が修正されました。


図7 OpenAM 10.0以前のセッションフェールオーバー

 OpenAM 10.1.0-Xpress以降では、Message Queueの代わりに設定データストアにセッションデータを書き込み、それをOpenDJがレプリケーションするようになっています。この実装により、前述の問題が解決されるだけでなく、OpenAMサーバー再起動後もセッションを持続できるようになっています。


図8 OpenAM 10.1以降のセッションフェールオーバー構成

 設定方法は非常に簡単です。2台目以降のOpenAMの初期設定の際に、手順5の「サイト設定」で、「サイト名」と「ロードバランサーのURL」を入力し、「セッション HA 永続化とフェイルオーバーを有効にします」のチェックボックスにチェックを入れるだけです。


図9 新しいセッションフェールオーバーの設定方法

OpenDJによる新しいCTS

 OpenAM 11.0.0では、コアトークンサービス(CTS)機能が強化されました。CTSとは、OAuth 2.0やSAML 2.0トークンをOpenDJに保存し、冗長構成となっているOpenDJ間でレプリケーションを行うサービスのことです。図のようにトークンの情報をOpenDJに保持します。


図10 OpenDJに保存されたトークン

 保存されたトークンはOpenDJのレプリケーション機能により、冗長構成となっている別のOpenDJに送信され、同期が取られます。これにより、一方のサーバーがダウンしても、SAML 2.0やOAuth 2.0/OpenID Connectの認証処理が継続できるようになっています。

 なお、この機能はOpenDJの機能に依存しており、OpenDJ以外のディレクトリサーバーを使用した場合では使用できません。

まとめ

 今回はOpenIGおよびOpenDJの概要と、これらのソフトウェアを利用したOpenAMの新機能について紹介しました。

 次回は、OpenAMが対応している認証・認可のプロトコルと、クラウドサービスへのSSO(フェデレーション)について説明します。OpenAMはSAML 1.1/2.0、WS-Federation、WS-Trust、OpenID、OAuth 2.0に対応しており、最新バージョンの11.0.0ではOpenID Connectにも対応しました。これらによりGoogle Apps、Salesforce、FacebookなどさまざまなクラウドサービスへのSSOが実現できます。

著者プロフィール

和田 広之(わだ ひろゆき)

野村総合研究所のオープンソースサポートサービス OpenStandiaで、オープンソースを使ったサポートや製品開発の業務に従事。

Twitter: @wadahiro

田村 広平 (たむら こうへい)

OpenAM コミッタ。

野村総合研究所のオープンソースサポートサービス OpenStandiaで、OpenAMを中心としたOSSの研究開発・テクニカルサポートを担当。

Twitter: @tamura__246


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る