- PR -

Openldap上のアカウントをActiveDirectoryへ移行

投稿者投稿内容
seiichi51
会議室デビュー日: 2007/01/18
投稿数: 5
投稿日時: 2007-06-19 19:45
現在、Linux + OpenLDAPの環境を構築して社内システムのアカウントを一元管理しています。
今回クライアント管理の為、新規にActiveDirectoryの環境を構築します。

そこで質問なのですが、既存のLinux + OpenLDAPの環境とActiveDirectory間での
アカウントの同期処理を行いたいのですが、何か良い方法はないものでしょうか?

アカウント管理のメインとなるのはLinux側となる為、Linux上でアカウント情報の
変更があった際にActiveDirectoryへ情報を流し込むような仕組みが出来ればと
考えております。

SFU等を導入すれば可能になったりするのでしょうか?
ネット上にも情報があまり無いため困ってます。。。

ご教授の程、よろしくお願いします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2007-06-19 21:07
こんばんわ.
引用:

seiichi51さんの書き込み (2007-06-19 19:45) より:

SFU等を導入すれば可能になったりするのでしょうか?
ネット上にも情報があまり無いため困ってます。。。


OpenLDAP と Active Directory の関係が逆であれば,
SFU などでも可能かもしれません.
ですが,OpenLDAP 側を master とするのは難しい気がします.

Windows を OpenLDAP で認証するようにするのではダメなのでしょうか?
であれば,GINA と LDAP で検索すると良いかもしれません.

以上,ご参考までに.
チャブーン
大ベテラン
会議室デビュー日: 2006/11/25
投稿数: 149
投稿日時: 2007-06-21 04:27
チャブーンです。

OpenLDAP との連携ということで、直球でいくなら MS 製の MIIS というエンタープライズ製品を使います。ただし MIIS は高価で、検討事項も必要になるでしょう。

http://blogs.msdn.com/dotnetinterop/archive/2005/07/07/436050.aspx
http://sourceforge.net/projects/openldap-ma

簡単な方法であれば、Linux と Windows に LDIF をベースにしたスクリプトを同期的にかけるとかいった方法になるのではないでしょうか。直接の答えではないですが、参考情報がしたにありますね。

http://www.9203.net/~takech/pukiwiki/index.php?LDAP%2FOpenLDAP%2FActiveDirectory%A4%C8%A4%CE%CF%A2%B7%C8


[ メッセージ編集済み 編集者: チャブーン 編集日時 2007-06-21 04:34 ]
seiichi51
会議室デビュー日: 2007/01/18
投稿数: 5
投稿日時: 2007-06-21 13:02
ご回答ありがとうございます。

>kazさん
社内ではOpenLDAPのSSOシステムでありとあらゆる社内システムの認証をしている為
今更ActiveDirectoryをメインとする事は難しいんですよ・・・

ADの認証を直接LDAPへ投げる方法が出来ればそれに越した事はないのですが、
その場合、AD上のアカウントはどういった扱いになるのでしょうか???

>チャブーンさん
http://www.9203.net/~takech/pukiwiki/index.php?LDAP%2FOpenLDAP%2FActiveDirectory%A4%C8%A4%CE%CF%A2%B7%C8
のページは私も参考にはしています。
やはりLDIFをベースにしたスクリプト仕掛けるしかないのですかね〜。。。
linux側から直接 ldapadd 等のコマンドを使用してAD上のアカウント操作が出来る
ようになれば一番楽なのですが。
そんな方法はないですよね?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2007-06-21 13:35
こんにちわ.
引用:

seiichi51さんの書き込み (2007-06-21 13:02) より:

ADの認証を直接LDAPへ投げる方法が出来ればそれに越した事はないのですが、
その場合、AD上のアカウントはどういった扱いになるのでしょうか???


であればなおのこと,GINA で LDAP な認証基盤に統一してしまった方が良さそうな.
Active Directory で分割してしまう必要があるのでしょうか?
※既に Active Directory な domain を作ってしまっているとか?
seiichi51
会議室デビュー日: 2007/01/18
投稿数: 5
投稿日時: 2007-06-29 19:34
OpenLDAPからアカウント情報のLdifをActiveDirectory用に生成して、
ldapadd のコマンドでActiveDirectory側登録を実施する前提で
以下の事まで可能となりました。

OpenLDAP側でLDIFファイルの生成
=========test.ldif=======================================
dn: CN=test04 User,OU=Users,DC=ad,DC=example,DC=co,DC=jp
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
sAMAccountName: test04
sn: テスト
givenName: ユーザー04
displayName: テスト ユーザー04
userPrincipalName: test04@ad.example.co.jp
=========================================================

OpenLDAPサーバーからActiveDirectory側へアカウントの追加
[コマンド]
# ldapadd -x -h server01.ad.example.co.jp -f test.ldif

上記でActiveDirectory上にアカウントの追加までは可能になりましたが、
ここで問題が発生しています。
上記はAD側で "OU=Users,DC=ad,DC=example,DC=co,DC=jp" のOUへ
匿名アクセスを許可しており、"ANONYMOUS LOGON"グループにフルコントロールを
与えている為に実現しています。

さすがに匿名アクセスは嫌なので、以下のコマンドで特定のユーザー(test01)を
使用してアカウントの追加をするとパスワードが受け付けられないようで
エラーとなってしまます。
[コマンド]
# ldapadd -x -h server01.ad.example.co.jp -D "cn=test01,ou=users,dc=ad,dc=example,dc=co,dc=jp" -f test.ldif -w test

[エラー]
ldap_bind: Invalid credentials (49)
additional info: 80090308: LdapErr: DSID-0C090334, comment:
AcceptSecurityContext error, data 531, vece

ldapaddコマンドを使用した際のADへ認証を投げるパスワードエンコードみたいな物が
AD側とOpenLDAP側で異なる為に起こっているのでしょうか?
ここが解決出来れば当初の理想にかなり近付けるのでご教授よろしくお願いします。

>kazさん
GINAを少し調べたのですが、GINAはクライアント側の認証モジュールを入れ替えないと
いけないのでしょうか?クライアント数が大量(1万台以上)にある為にそういった
作業は避けたいのですが、そういった作業が発生しないのであればもう少し詳しく
ご教授願いたく思います。
チャブーン
大ベテラン
会議室デビュー日: 2006/11/25
投稿数: 149
投稿日時: 2007-06-30 21:48
チャブーンです。

みたところ、接続時のバインド認証で蹴られている感じですね。

Active Directory の LDAP 対応ですが、Simple Bind はサポートしていますので、Simple 認証が行われた場合クリアテキストでちゃんと通るはずですよ。

パスワードに "test" という単語を当てているようですが、Active Directory アカウントでは、文字数や複雑性の要件からこのパスワードはデフォルトでは使えないはずです。まずはバインドする DN とパスワードをもう一度確認してもらったほうがいいかもしれません。もっと細かく知りたいなら、ネットワークトレース (パケットキャプチャ) をとって確認されることを奨めます。

あと、この問題と関係あるかはわかりませんが、匿名で書き込みが可能な状態にもっていった、ということですが、Windows Server 2003 だと、rootDSE 以外は匿名アクセスそのものができないようになっていて、これを直すには、OU のアクセス許可のほかに Directory Service オブジェクトの dSHeuristics 属性をいじらないといけなかったはずなんです。そのあたりはチェックされたでしょうか?

それと、GINA の入れ替えについてですが、他の方がおっしゃっているのはたぶんしたの製品ではないでしょうか。

http://www.co-conv.jp/product/co-gina/index.html

したのページにマニュアルがあるので、まずは読んでみてはどうでしょうか。

http://www.co-conv.jp/product/co-gina/shiyou.html
チャブーン
大ベテラン
会議室デビュー日: 2006/11/25
投稿数: 149
投稿日時: 2007-07-02 01:22
チャブーンです。

簡単に確認してみましたが、必要な OU とその下の ACL をきちんと制御すれば、ldapadd から任意のユーザで Simple Bind させ、その権限でオブジェクトを書き込むことはできました。

Simple Bind はもちろん匿名認証ではないので、dSHeuristics 属性の変更はとくに必要なさそうです。

パスワードに関する設定は SSL をとおさないと設定できないので、必要なら LDAPS か StartTLS を使う必要があるでしょうね。ただし、このしくみではパスワードの透過的な同期には対応できないでしょうから、この場合 SFU の NIS パスワード同期の機能あたりを使うのがよさそうです。

スキルアップ/キャリアアップ(JOB@IT)