【IDM】パスワード同期機能の有効活用 その1 ~ パスワード同期機能とは

先日、薄暗い部屋で 掌(てのひら) をじっと見つめていたら「運命線」なるものが全く無いことに気づきました。ははぁん、どうりで...

さて、話は変わりますが、「パスワード同期」機能 をご存知でしょうか?

Active Directory と NIS のパスワードを双方向に、かつリアルタイム同期するという優れものですが、実際に運用で使用されている方は多くないようです。理由として、サポートされている OS のバージョンに制限があることや、場合によっては make しなおさなければならないといった部分で敷居が高いようです。

Windows Server 2003 以前 では、Service for UNIX をインストールすることでパスワード同期機能が使用可能になります。

Windows Services for UNIX 3.0 におけるパスワード同期
https://www.microsoft.com/japan/technet/interopmigration/unix/sfu/psync.mspx

Windows Server 2003 R2 および Windows Server 2008 以降では、「UNIX 用 ID 管理」を有効にすることでパスワード同期機能が使用可能になります。  

Windows Server 2003 R2 - UNIX 用 ID 管理 : パスワード同期
https://technet2.microsoft.com/WindowsServer/ja/library/bb1f0664-5f08-4a0c-b1cf-f7363e593c621041.mspx?mfr=true

Windows Server 2003 R2 - パスワード同期 ステップバイステップ
https://technet2.microsoft.com/WindowsServer/ja/library/70fd1e7b-902d-4d4b-af7a-c3f55a5577851041.mspx?mfr=true

Windows Server 2008 UNIX との相互運用性 - パスワード同期
https://www.microsoft.com/japan/technet/windowsserver/2008/library/6fe7d2b8-70a0-4a67-9128-cc3639fc7fd7.mspx?mfr=true

では、NIS が存在しない場合、パスワード同期機能に使い道は無いのか?

いえいえ、そうではありません。使わなければ損をするほどもったいない話です。

ちょっとの知識と工夫で、大きな効果を得ることができます。

パスワード同期機能は、大きく分けて以下の3つのコンポーネントから構成されています。

  • pswdsync.dll (Windows Server 上で動作)
  • Single Sign-on Daemon (SSOD) (UNIX コンピュータ側で動作)
  • pam_sso.so (UNIX コンピュータ側にインストールされる pam)

この中で、pswdsync.dll がWindows Server 側のキーとなるコンポーネントです。

パスワード同期機能のしかるべき環境設定が完了後、Windows ユーザーによってパスワードが変更されると、pswdsync.dll は変更したパスワードを横取りし、UNIXコンピュータ側の SSOD に渡します。その後 SSOD によってパスワードが書き込まれることで Windows と UNIX のパスワードが同期されます。

さて、面白いのはここからです。

このとき Windows Server 上に NIS Server (Server for NIS)がインストールされていると、Active Directory 上にも 一般的に NIS で使用されるパスワード(crypt or MD5) が保存されます。

Windows Server 2000 / 2003 :msSFU30UserPassword

Winodws Server 2003 R2 / 2008 :unixUserPassword

これがどんな効果をもたらすか。

もうお気づきのとおりですね。Active Directory から UNIX用に暗号化されたパスワードがゲットできてしまうのです。

では、ゲットできると何がうれしいか...

たとえば、生パスワードを取得して暗号化するといった手間を省き、OpenLDAP に直接パスワードを書き込むことができます。つまり、「同期」が可能となるわけです(もちろん、OpenLDAP側の暗号化形式を合わせておく必要があるわけですが)。

以下の画面は、Windows Server 2008 上で参照した あるユーザーの unixUserPassword 属性です。MD5 で暗号化されていることがわかると思います。

いかがでしょう。ちょっと興味がわきましたか?興味がわいた方は次回にご期待ください。