我是LDAP API的新手。我能夠連接到LDAP服務器並搜索用戶。如何使用UnboundID LDAP API通過電子郵件/密碼驗證用戶?使用電子郵件和密碼在LDAP中驗證用戶
我還沒有看到任何使用電子郵件和密碼驗證用戶的LDAP身份驗證?
是否可以使用電子郵件和密碼來驗證用戶
我在做什麼,以給出如下
搜索用戶目錄下面和匹配的電子郵件和查找他的DN
對用戶進行認證基於DN連接用戶和如果連接成功,驗證用戶或Execption在連接時則用戶不被認證
有沒有正確的方法來驗證用戶?
我是LDAP API的新手。我能夠連接到LDAP服務器並搜索用戶。如何使用UnboundID LDAP API通過電子郵件/密碼驗證用戶?使用電子郵件和密碼在LDAP中驗證用戶
我還沒有看到任何使用電子郵件和密碼驗證用戶的LDAP身份驗證?
是否可以使用電子郵件和密碼來驗證用戶
我在做什麼,以給出如下
搜索用戶目錄下面和匹配的電子郵件和查找他的DN
對用戶進行認證基於DN連接用戶和如果連接成功,驗證用戶或Execption在連接時則用戶不被認證
有沒有正確的方法來驗證用戶?
使用UnboundID LDAP SDK,這段簡單的代碼搜索條目。如果有一個條目具有已知的電子郵件地址,則使用該DN的BIND(密碼必須來自其他地方)。沒有任何事情發生(驗證是false
)是否有更多條目與搜索參數匹配,或者沒有條目與搜索參數匹配。此代碼假設baseObject爲dc = example,dc = com,子樹需要搜索,並且該電子郵件地址的屬性具有別名郵件。該代碼還假定有一個bindDN和bindPassword有足夠的訪問權限來搜索具有該電子郵件地址的用戶。它搜索的電子郵件地址假定爲[email protected]。
例外在整個過程中都被忽略。
String baseObject = "dc=example,dc=com";
String bindDN = "dn-with-permission-to-search";
String bindPassword = "password-of-dn-with-permission-to-search";
// Exceptions ignored.
LDAPConnection ldapConnection =
new LDAPConnection(hostname,port,bindDN,bindPassword);
String emailAddress = "[email protected]";
String filterText = String.format("mail=%s",emailAddress);
SearchRequest searchRequest = new SearchRequest(baseObject,
SearchScope.SUB,filterText,"1.1");
SearchResult searchResult = ldapConnection.search(searchRequest);
boolean authenticated = false;
if(searchResult.getEntryCount() == 1)
{
// There is one entry with that email address
SearchResultEntry entry = searchResult.getSearchEntries().get(0);
// Create a BIND request to authenticate. The password has
// has to come from someplace outside this code
BindRequest bindRequest =
new SimpleBindRequest(entry.getDN(),password);
ldapConnection.bind(bindRequest);
authenticated = true;
}
else if(searchResult.getEntryCount() > 1)
{
// more than one entry matches the search parameters
}
else if(searchResult.getEntryCount() == 0)
{
// no entries matched the search parameters
}
你必須做兩個步驟。
如果兩者都不成功,則標識或密碼不正確。