Sun Identity Manager 8.1 リソースリファレンス

概要

Directory Server では、パブリックなプラグイン API を介して、サードパーティーがパスワードの変更を処理できるようになっています。カスタムプラグインであるパスワードキャプチャープラグインは、Directory Server でのパスワード変更をキャプチャーするために開発されました。

パスワードキャプチャープラグインには、次の役割があります。

パスワードキャプチャープラグインを実装する前に、Directory Server の旧バージョン形式の更新履歴ログプラグインを、ディレクトリサーバーにインストールする必要があります。旧バージョン形式の更新履歴ログプラグインは、ディレクトリサーバーコアによる操作が実行されたあと、idmpasswd 属性の変更を更新履歴ログデータベースに記録します。

Active Sync を有効にしている LDAP リソースアダプタは、定期的に更新履歴ログデータベースをポーリングし、関連した変更を解析して、それらの変更を Identity Manager に送ります。LDAP アダプタは、idmpasswd 属性を解析し、共有キーを使用してパスワードを復号化し、実際のパスワードをシステムのほかの部分で利用できるようにします。

パスワードキャプチャー処理

パスワードキャプチャープラグインは、サーバーが LDAP ADD または LDAP MODIFY 操作を処理しようとするたびに、Directory Server コアによって呼び出されます。このプラグインは変更を調べて、パスワード変更があると、idmpasswd 属性と値のペアを挿入します。この値は暗号化されたパスワードです。

パスワードキャプチャープラグインによってキャプチャーされたパスワードは、共有キーを使用して暗号化されます。設定された LDAP リソースアダプタによってそのパスワードが復号化されるときに、同じ共有キーが使用されます。

変更がサーバーに受け入れられると、旧バージョン形式の更新履歴ログプラグインは、旧バージョン形式の更新履歴ログデータベースにその変更 (idmpasswd 属性の新しい値を含む) を記録します。LDAP リソースアダプタは、idmpasswd 属性の変更を処理し、暗号化された文字列の形式で、Identity Manager 内のほかのコンポーネントがその値を利用できるようにします。

idmpasswd 属性は、ユーザーがパスワードを変更するときに Directory Server の通常のデータベースには表示されません。

旧バージョン形式の更新履歴ログデータベース内のパスワード

暗号化されたパスワードは、旧バージョン形式の更新履歴ログデータベースに記録されます。旧バージョン形式の更新履歴ログプラグインは、旧バージョンの更新履歴ログデータベースから定期的にエントリを削除するように設定することができます。データベースのエントリ削除の適切な設定は、ターゲットの環境によって異なります。削除間隔が短すぎると、短時間のネットワーク機能停止やほかのサービスの中断に対処できないことがあり、LDAP リソースアダプタは一部の変更を見逃す可能性があります。反対に、データベースのサイズが大きくなりすぎると、データベース内に暗号化されたパスワードを保持することに付随するセキュリティー上のリスクが増える可能性があります。

プラグインはハッシュされたパスワードを取得しません。

旧バージョン形式の更新履歴ログデータベースのサフィックス (cn=changelog) の内容へのアクセスを制限するようにしてください。そのために、読み取りアクセス権は、LDAP リソースアダプ タのみに許可します。

スキーマの変更

idmpasswd 属性は、オペレーショナル属性として定義されます。オペレーショナル属性は、ターゲットエントリのオブジェクトクラス定義の変更を一切必要としません。そのため、パスワード同期機能を使用するために Directory Server の既存ユーザーまたは新規ユーザーを変更する必要はありません。

idmpasswd 属性は、スキーマで次のように定義されます。

attributeTypes: ( idmpasswd-oid NAME ’idmpasswd’ DESC ’IdM Password’ 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} USAGE directoryOperation X-ORIGIN ’
Identity Manager’ )

プラグインのログレベル

プラグインがサポートするログレベルは、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、および FINEST です。SEVERE では最小限の情報が記録され、FINEST ではもっとも詳細なログが記録されます。デフォルトのレベルは INFO ログレベルです。