知られざるActive Directory技術の「舞台裏」

第4回 LDAPを使ってActive Directoryを制御しよう[その2:ldifde]

この記事を読むのに必要な時間:およそ 6 分

ldifdeコマンドで,LDAPの暗号化によるアカウントのインポートを行う

最後に,ldifdeコマンドを使って,先ほどのimport.ldfファイルの内容をインポートします。Windows Server 2008 R2の場合,2種類のコマンド表記で実行が可能です。

ldifde -i -u -t 636 -f %USERPROFILE%\Desktop\import.ldf

図25 上記の実行表示

図25 上記の実行表示

このコマンドはLDAP over SSLによる暗号化を行う場合に実行します。-tオプションは通信ポートを指定するもので,636/tcpを指定すると,LDAPSによる通信が可能となります。

ldifde -i -u -h -f %USERPROFILE%\Desktop\import.ldf

図26 上記の実行表示

図26 上記の実行表示

このコマンドはLDAP over TLSによる暗号化を行う場合,実行します。-hオプションはSASL(LDAPにおける汎用的な認証レイヤ)で暗号化を行うためのオプションです。389/tcpがそのまま利用されます。

どちらのコマンドでも,結果としては同じようにパスワードを含め,インポートが可能です。直接パスワードのインポートができたので,アカウントは有効な状態ですぐに利用することができます。

図27 インポートしたアカウントを確認

図27 インポートしたアカウントを確認

なお,ldifdeコマンドでもcsvdeコマンドと同じように,あるドメインコントローラからエクスポートした内容を,別のドメインコントローラにインポートすることが可能ですが(ほぼ同じ方法で行います⁠⁠,Windows Server 2008以降では注意が必要です。

Windows Server 2008以降のldifdeでは,-uオプションを含めてエクスポートした場合,DN以外のすべての属性がBASE64でエンコードされた形式で出力されます。逆に-uオプションを含めずにエクスポートした場合,Unicode文字列を含む属性(DNも含まれます)についてはやはりBASE64でエンコードされて出力されます。

図28 ldifdeの-uオプションでエクスポートしたため,属性がBASE64エンコードされてしまった

図28 ldifdeの-uオプションでエクスポートしたため,属性がBASE64エンコードされてしまった

そのため,-cオプションでドメインDNを書き替えてインポートしたい,といった場合,インポートに失敗したり,一部の属性の書き換えができない,といった問題が発生することがあります。これを防ぐ方法は残念ながらありませんので,この方法ではcsvdeコマンドを使った方がいいのかもしれません。

著者プロフィール

小鮒通成(こぶなみちなり)

Active DirectoryおよびWindows Serverに関するコンサルタント。あわせて各種コミュニティ活動や執筆活動を行っており,Microsoft Most Valuable Professional (Windows Server System - Directory Services) 表彰を5年連続で受けている。現在はNTTデータ先端技術株式会社に勤務。