728x90
JAVA에서 LDAP 연결 및 확인하는 방법은?
String ntUserId = "black-whisker";
String ntPasswd = "password1234";
String searchBase = "ou=SAMPLE,dc=black-whisker,dc=tistory,dc=com"; // 검색대상 tree
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://HOST:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, ntUserId);
env.put(Context.SECURITY_CREDENTIALS, ntPasswd);
LdapContext ctx = new InitialLdapContext(env, null);
SearchControls sc = new SearchControls();
sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
sc.setReturningAttributes(new String[] { "cn", "name" });
NamingEnumeration results = ctx.search(searchBase, "sAMAccountName=" + ntUserId, sc);
while (results.hasMoreElements())
{
SearchResult sr = (SearchResult) results.next();
Attributes attrs = sr.getAttributes();
System.out.println("attributes: " + attrs);
}
프로젝트를 진행하다보면 AD, LDAP에 연결해서 작업해야 하는 경우들이 있다.
위 소스는 java 에서 Ldap에 연결할 수 있도록 구현된 소스이다.
LDAP과 AD의 구성이 어떻게 되어있는지는 대상마다 다르지만 전체적인 큰 틀은 유사하다.
제일 기본인 연결하는 소스로 테스트 시 빠르게 활용할 수 있다.
Active Directory 또한 LDAP과 그 틀은 같기 때문에 해당 소스로 테스트 가능했다.
소스에서 신경 쓸꺼는 HOST 정보와 searceBase 정도?
389 포트를 사용한다는 것과 원하는 정보의 DN 정보를 확실히 입력을 해야지 데이터 조회가 가능하다.
자세한 내용은 역시 위키나 더 세세한 부분을 검색해서 찾아보면 잘 나온다. (위키 짱!)
링크에 영문링크를 거는 이유는 내용면에서 영문이 정보가 더 많기 때문이다. (꼭 모두가 그런 건 아니다...)
연결 시 오류 부분도 있으니 한번씩 확인해 봐야겠다.
▼▽▼▽ 링크 ▼▽▼▽
https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
https://en.wikipedia.org/wiki/Active_Directory
- 오늘의 한 줄 -
AD와 LDAP 은 거기서 거기다ㅋㅋ
공감과 구독은 저에게 크나큰 힘이 됩니다♡
함께 보면 좋은 글
ADExplorer 사용 가이드 예정
728x90
'IT > PROGRAMING' 카테고리의 다른 글
[코딩] Google 스타일 가이드 (0) | 2023.02.14 |
---|---|
[JAVA] Timestamp.before 메소드 (0) | 2020.12.04 |
[JAVA] Restful API 호출 가이드 예제 (0) | 2020.10.29 |
[JAVA] client IP 를 얻는 방법 (Proxy 환경, 127.0.0.1 로 가져오는 이유) (0) | 2020.10.26 |
JAVA. DBMS 연동을 위한 JDBC (Java Data Base Connectivity)활용 (0) | 2012.02.07 |