0
我需要使用不同於「用戶名」的Windows ID對用戶進行身份驗證。例如:windows ID是jSmith,但用戶名是「Joe Smith」。我需要根據Windows ID找到Joe Smith,然後檢查他是否是某個組的成員。LDAP:如何搜索Windows用戶ID
我假設或希望Windows ID是用戶的屬性,但我是新來的LDAP,不知道如何搜索所有用戶的特定屬性。
我需要使用不同於「用戶名」的Windows ID對用戶進行身份驗證。例如:windows ID是jSmith,但用戶名是「Joe Smith」。我需要根據Windows ID找到Joe Smith,然後檢查他是否是某個組的成員。LDAP:如何搜索Windows用戶ID
我假設或希望Windows ID是用戶的屬性,但我是新來的LDAP,不知道如何搜索所有用戶的特定屬性。
我假設您說Windows ID用於身份驗證時,您的LDAP實際上是Active Directory。
如果你只是想找到LanId用戶在Active Directory:
"(&(objectClass=user)(sAMAccountName=" + searchUsername + "))"
如果要對用戶進行認證:
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");// can make it variable, not needed so far
environment.put(Context.SECURITY_AUTHENTICATION, "simple"); // can make it variable, not needed so far
environment.put(Context.PROVIDER_URL, url);
environment.put(Context.SECURITY_PRINCIPAL, username + "@" + domain); // This is specific to AD
environment.put(Context.SECURITY_CREDENTIALS, password);
return new InitialLdapContext(environment, null);
如果上面的代碼無一例外成功執行,這意味着用戶提供正確的用戶名/密碼
好吧,我做了這個搜索過濾器,它工作得很好。 (顯然有些術語是由名字組成的,但你明白了)。 「(&(ObjectCategory = person)(sAMAccountName = jSmith)(memberOf = CN = Blah,OU = Company-Users,DC = BlahBlah,DC = local))」現在我想將密碼添加到過濾器中。任何人都知道密碼的「關鍵」是什麼?例如(passwordKey =「MyDogName13」)其中passwordKey是...在這個相同的主題...有什麼辦法來獲得可用屬性(鍵名稱)的列表回來?謝謝。 – ClimberChick
即使您可以檢索密碼,然後通過匹配進行身份驗證,我也會推薦使用上面提到的「綁定身份驗證」。我創建了一個簡單的API來使用Active Directory進行身份驗證和屬性檢索,您可以從這裏獲得:https://github.com/kdabir/active-directory-lookup(我剛剛簽入,將寫入自述文件不久) – kunal