前回の続きです。
ADからLDAPに反映するためには
4つのプラグイン・Webアプリケーションなどを組み合わせて連携を実施します。
今回は一連のシステムすべてを検証します。
- ADアグリゲータ
ADのユーザ情報を定期的に取得し、内部DBとの差分情報をCSV化して「アグリゲータレシーバ」に送信するWebアプリケーション。 - アグリゲータレシーバ
ADアグリゲータや管理者メンテナンス、RESTful APIを通じて送信されたCSVを受け取り、暗号化して共有ファイルサーバに保存するWebアプリケーション。
最大99個のエンドポイントを持つことができ、エンドポイントごとにCSVファイルの格納先を設定できる。 - CSV→LDAP反映
CSVの情報からLDAPサーバにユーザ情報を反映するプラグイン。 - ADパスワード同期
ADのパスワード更新情報をADアグリゲータに連携するアプリケーション。
製品としては前回使用したものと同じです。
設定
アグリゲータレシーバ
任意の場所に共有フォルダを作成します。
<tomcat_home>\webapps\
以下にaggregator-rv
フォルダをコピーします。
LDAP Manager付属の設定値生成ツール(<インストールメディア>\LDAPManager\LDAPManager7\TOOL\ExgenConvert\ExgenConvert.exe
)を使用し、暗号化パスワードを生成します。
<tomcat_home>\webapps\aggregator-rv\WEB-INF\aggregatorrv.ini.templete
をaggregatorrv.ini
にコピーします。
aggregatorrv.ini
を編集します。
idXXX
には任意の値を、passwordXXX
には設定値生成ツールで暗号化したパスワードを指定します。
CIFS情報セクションでは、エンドポイントごとにCSVファイルを配置する共有フォルダと認証情報を指定します。
net_password
には設定値生成ツールで暗号化したパスワードを指定します。
ここでは、エンドポイントupload01
に送信されたCSVファイルが192.168.181.42\csv\Adaggregator
に保存される設定としています。
;認証ID,パスワード
[authentication]
id001=admin001
password001=d99145262b24cc7356fc10aff1951434
;CIFS情報
;エンドポイントupload01の共有先
[upload01]
domain=ldap-manager
net_id=administrator
net_password=dba641b113da44cf
host=192.168.181.42
upload_path=/csv/Adaggregator/
保存してTomcatを再起動します。
パスワード同期フックモジュール
ADPasswdSyncHookCfg.exe
で設定します。
連携先を「ADアグリゲータ」とし、任意の連携情報格納パス、ADアグリゲータのURLと、任意のID・パスワードを設定してサービスを起動します。
ADアグリゲータ
<tomcat_home>\webapps\
にadaggregator
フォルダをコピーします。
<tomcat_home>\webapps\adaggregator\WEB-INF\adaggregator.ini.templete
をadaggregator.ini
にコピーします。
adaggregator.ini
を編集します。
アグリゲータレシーバのURLとして設定した受信エンドポイントのURLを指定し、認証IDとパスワードもそれぞれアグリゲータレシーバでの設定値に合わせます。
ADパスワード同期サービス管理情報として、設定した認証ID、パスワードを入力します。
設定項目init_start_time=
をコメントアウトし、ADアグリゲータが起動した瞬間からポーリングを開始するようにしました。
ADへの接続情報、ベースDN、フィルタ等も指定します。
ADから取得した情報と比較するDBにはPostgreSQLとSQLiteが使えますが、今回はSQLiteとしました。
adaggregator.ini
;アグリゲータレシーバサーバ情報
[aggregator_rv]
;アグリゲータレシーバのURL
url=http://192.168.181.43:8080/aggregator-rv/upload01
;プロキシサーバ経由の接続を行うか
;on(行う)/off(行わない)
proxy_use=off
;プロキシサーバのホスト名
proxy_host=
;プロキシサーバのポート番号
proxy_port=
;認証ID
id=admin001
;パスワード(ExgenConvertで生成された値)
password=d99145262b24cc7356fc10aff1951434
;ADパスワード同期サービス管理情報
[password_hook]
;認証ID
id=admin
;パスワード(ExgenConvertで生成された値)
password=d99145262b24cc7356fc10aff1951434
;ポーリング情報
[polling]
;実行間隔分(10~1440)
per_minute_exe_interval=10
;初回実行時間(hh:mm)
:init_start_time=12:00
;AD接続情報
[ad]
;ホスト名
host_name=ad2ldap.example.com
;ポート番号
port=389
;SSL接続有無 on(する)/off (しない)
ssl=off
;ベースDN
basedn=DC=ad2ldap,DC=example,DC=com
;検索時の抽出フィルタ
filter=(&(objectclass=user)(userPrincipalName=*))
;接続ユーザDN
userdn=cn=Administrator,cn=Users,dc=ad2ldap,dc=example,dc=com
;接続ユーザパスワード(ExgenConvertで生成された値)
userpassword=dba641b113da44cf
;連携時にキーとなる属性 1:(userPrincipalName)、2(sAMAccountname)
key_attribute=1
;1回の検索での検索上限数(1~2000000000)
search_limit=1000
;比較DB情報
[db]
; 比較DBの種類 1(PostgreSQL) / 2(SQLite)
db_type=2
;比較DBがPostgreSQLの場合
;ホスト名
db_host=
;ポート番号
db_port=5432
;データベース名
db_name=adaggregator
;接続ユーザID
db_user=postgres
;パスワード(ExgenConvertで生成された値)
db_password=d99145262b24cc7356fc10aff1951434
;比較DBがSQLiteの場合
;DB(SQLite)を格納するフォルダ
directory="c:\\temp"
;アグリゲータレシーバ送信用CSVフォーマット情報
[aggregator_rv_csv]
;区切り文字 1(カンマ)/2(タブ)
delimiter=1
;複数値区切り文字 1(セミコロン)/2(タブ)
multi_delimiter=2
;ファイル出力文字コード 1(SHIFT_JIS)/2(Unicode)
character_code=2
生成するCSVファイルの設定が<tomcat_home>\webapps\adaggregator\WEB-INF\mapping.xml
で可能ですが、デフォルトでも十分な設定がされているため、今回はスキップします。
CSV → LDAP反映
プラグインをインストールします。
LDAP Manager コンソール「環境設定」> 「CSV -> LDAP反映1」を選択します。
「CSV属性名設定」にて、ADアグリゲータが作成するCSVファイル用のテンプレート(<インストールメディア>\LDAPManager\CSVLDAP&CSVLDAPGroup\Template\ADAggregator.csv
)を指定して「ファイルインポート」します。
「基本設定」にて、共有フォルダにアクセスするユーザの認証情報、フォルダ名、ファイル名、区切り文字等と、反映先LDAPサーバの情報を入力します。
マッピング設定は以下のようにしました。
確認
ADにてユーザを作成します。
Tomcatを起動します。
ADアグリゲータとアグリゲータレシーバにより、指定の場所にCSVファイルが作成されます。
このCSVファイルをCSV → LDAP反映で取り込みます。今回は手動実行で取り込み処理を行います。実運用ではスケジュール実行などを使用するのが良いでしょう。
正常に取り込み処理が実行されると、LDAPサーバ側にユーザエントリが追加されます。
その他、変更処理や削除処理も正常に行えています。
まとめ
ADからLDAPに反映する一連のシステムについて検証しました。
次の記事では、LDAP Managerの管理機能をWebアプリケーション上のGUIで使用できる
管理者ポータル について検証します。