Java言語でLDAP認証を実現しようと思っています。
ApacheDS
http://directory.apache.org/
を用いてLDAPアクセス用サーバを以下のように用意しました。
・クライアント
→ MacOS
・サーバ
→ vagrant内のCentOS7
→ ApacheDSは最新ものをダウンロード
通常のLDAPによる認証自体は
java
1import java.util.Hashtable; 2 3import javax.naming.AuthenticationException; 4import javax.naming.Context; 5import javax.naming.directory.DirContext; 6import javax.naming.directory.InitialDirContext; 7 8public class Sample01 { 9 10 public static void main(String[] args) { 11 System.out.println(auth("uid=admin;ou=system", "secret")); 12 System.out.println(auth("uid=admin;ou=system", "ddddddddd")); 13 } 14 15 public static boolean auth(String uid, String password) { 16 boolean res = false; 17 18 //LDAP接続情報 19 Hashtable env = new Hashtable(); 20 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 21 env.put(Context.PROVIDER_URL, "ldap://192.168.33.10:10389/"); //LDAPサーバ 22 env.put(Context.SECURITY_AUTHENTICATION, "simple"); 23 env.put(Context.SECURITY_PRINCIPAL, uid); //ID, 組織 24 env.put(Context.SECURITY_CREDENTIALS, password); //パスワード 25 26 try { 27 DirContext ctx = new InitialDirContext(env); 28 ctx.close(); 29 System.out.println("auth ok"); 30 res = true; 31 } catch (AuthenticationException ae) { 32 //認証エラー 33 System.out.println("auth ng"); 34 } catch (Exception e) { 35 //その他のエラー 36 } 37 38 return res; 39 }
で接続できることは確認しました。
ですがSSL(LDAPS)を使用として躓いています。
・自己証明書の設定方法
・設定場所
など
教えていただけないでしょうか?
よろしくお願いします。
あなたの回答
tips
プレビュー