6

私のアプリケーションは 1 日に 1 回 LDAP クエリを実行し、特定のコンテナー内のすべてのユーザーとグループをフェッチします。フェッチされると、アプリはグループのユーザーのリストを反復処理し、アプリケーションのデータベースに新しいユーザーのみを追加します (ユーザー名のみを追加します)。

50,000 人のユーザーがいる場合、アプリケーション サーバーは毎日 45 分間、この操作を実行するためにビジー状態になります。

LDAP クエリで「デルタ」が必要であることを指定して、最後の LDAP クエリ以降に追加/変更/削除されたユーザーのみを取得する方法はありますか?

4

5 に答える 5

2

modifyTimestamp各エントリにがあるべきだと思います。softerra ldap ブラウザー ( http://download.softerra.com/files/ldapbrowser26.msi ) のようなものをのぞいてみてください。存在する場合は、ldap クエリに条件を追加して、最後に同期ジョブを実行してから変更されたエントリを検索できるはずです。

于 2009-08-17T07:28:50.230 に答える
1

変更を追跡するための主な選択肢は、ポーリングと DirSync の 2 つです。これらの記事は、背景を説明し、最適なものを選択するのに役立ちます。

http://support.microsoft.com/kb/891995

http://msdn.microsoft.com/en-us/library/ms677974(VS.85).aspx

そして、ここにいくつかの.NETのものがあります:

http://msdn.microsoft.com/en-us/library/system.directoryservices.directorysynchronization.aspx

于 2009-08-17T14:30:00.733 に答える
1

ディレクトリによって異なります。LDAP クエリのフィルタリングに使用できるタイムスタンプやシーケンス番号などの属性が必要です。たとえば、Active Directory では、値は「uSNChanged」です。

于 2009-08-17T07:45:07.247 に答える
0

Directory の操作属性を確認する必要があります。

OpenLDAP を使用すると、+ 記号を追加して操作属性を取得し、createTimestamp から確認できます。

これは常に Zulu 形式、つまり YYYYMMDDHHMMSSZ です。fedora-ds のような他の DS では、操作属性を検索する必要があります。

ldapsearch -x < その他のオプション > createTimestamp

于 2012-01-17T23:32:39.693 に答える