我想要使用UnboundID LDAP SDK從活動目錄(AD)中獲取用戶實體的更改。Active Directory。持久搜索或條目更改通知
默認完成AD支持持續檢索或登記事項變更的通知或我必須做任何設置?
在此先感謝
我想要使用UnboundID LDAP SDK從活動目錄(AD)中獲取用戶實體的更改。Active Directory。持久搜索或條目更改通知
默認完成AD支持持續檢索或登記事項變更的通知或我必須做任何設置?
在此先感謝
你必須使用Active Directory上的擴展搜索操作,它允許您註冊當發生變化的通知。
這是微軟AD這樣做提供的OID:
https://msdn.microsoft.com/en-us/library/aa366983(v=vs.85).aspx
在UnboundID LDAP SDK而言,似乎這種控制應該做的事情,你需要成爲這個控制(但不一個Java專家):
基礎上提出的意見,LDAP_SERVER_NOTIFICATION_OID控制執行應當AD工作。看到這個非常基本的測試例子:
// LDAP_SERVER_NOTIFICATION_OID (1.2.840.113556.1.4.528)
@Test
public void test_LDAP_SERVER_NOTIFICATION_OID() throws LDAPException, InterruptedException
{
AsyncSearchResultListener myAsyncSearchResultListener = new MyLdapChangeAsyncListener();
SearchRequest searchRequest = new SearchRequest(
myAsyncSearchResultListener,
"DC=test,DC=lab,DC=com", // baseDN
SearchScope.SUB,
Filter.createPresenceFilter("objectClass"), null);
Control myControl = new Control("1.2.840.113556.1.4.528");
searchRequest.addControl(myControl);
AsyncRequestID asyncSearchId = connection.asyncSearch(searchRequest);
// Wait 15 seconds for changes to be returned
Thread.sleep(15000);
connection.abandon(asyncSearchId);
connection.close();
}
private class MyLdapChangeAsyncListener implements AsyncSearchResultListener
{
@Override
public void searchEntryReturned(SearchResultEntry searchEntry)
{
System.out.println(" >>> ldap searchEntryReturned: " + searchEntry);
}
@Override
public void searchReferenceReturned(SearchResultReference searchReference)
{
System.out.println(" >>> ldap searchReferenceReturned: " + searchReference);
}
@Override
public void searchResultReceived(AsyncRequestID requestID, SearchResult searchResult)
{
System.out.println(" >>> ldap searchResultReceived: " + requestID + "/" + searchResult);
}
}
該測試沒有太大的作用。同時等待15秒鐘,同時打印出baseDN內的任何更改。
DirSync控件是一個LDAP控件(OID 1.2.840.113556.1.4.841),因此它不同於第一個鏈接中引用的控件;但是對於期望的結果可能是一個不錯的選擇。 AFIK,UnboundID LDAP SDK不直接支持LDAP_SERVER_NOTIFICATION_OID(1.2.840.113556.1.4.528),但應該是相當直接的實現。 – jwilleke
@jwilleke感謝您指出。我不是Java專家,因此只是通過好奇心檢查UnboundID文檔而無需進一步搜索。我會編輯我的答案以包含您的觀點。 – Esteban
感謝您的回答。不需要主動直接調節?當我更改條目的任何屬性時,不會調用偵聽器的方法(根據UnboundID LDAP SDK)。我嘗試使用自定義控件(代碼與PersistentSearchRequestControl相同),但使用其他oid(1.2.840.113556.1.4.528)。不幸的是,不能安裝dirSync。 – nikelyn