2013-07-12 2 views
0

에서 전체 CN/DN없이 Active Directory와 연결하기 위해 어떻게 구현 방법 :자바 코드

public static LdapContext buildContext(String username, String password) { 

    LdapContext context = null; 

    Hashtable<String, String> env = new Hashtable<String, String>(); 

    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
    env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
    env.put(Context.SECURITY_PRINCIPAL, username); 
    env.put(Context.SECURITY_CREDENTIALS, password); 
    env.put(Context.PROVIDER_URL, DOMAIN_URL); 

    try { 
     context = new InitialLdapContext(env, null); 
    } catch (NamingException e) { 

    } 

    return context; 
} 

나는 전체 CN/DN 문자열을 모른다. 나는 사용자 이름 (톰)과 암호 만 전달합니다.

나는 등 그룹에 대한 아무런 정보가 없다 ..

사전에 감사합니다!

+0

사용자를 인증하려면 전체 DN 문자열이 필요하다고 생각합니다. 매우 제한된 권한 (있는 경우)으로 익명 사용자로 로그인 할 수 있습니다. – giorashc

답변

1

보유하고있는 정보를 사용하여 검색하십시오. 검색 결과에는 검색과 일치하는 항목 수와 일치하는 각 항목의 DN이 포함되므로 찾고있는 항목 하나만 반환하려면 가능한 한 검색이 제한적이어야합니다. 그런 다음 해당 DN을 사용하여 BIND 서버에 연결하십시오.