Javaで(正しくはJava EEから)Active Directoryに接続するための準備が終わり、実装・テストも無事完了しました。
準備の過去記事は以下に。
コードはわりとシンプルで、とりあえず今まで設定したレベルの単純なADであれば以下で認証できました。
Hashtable<String, String> env = new Hashtable<>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.PROVIDER_URL, "ldap://hogehoge:389");
env.put(Context.SECURITY_PRINCIPAL, "makimaki" + "@hogedomain.hoge");
env.put(Context.SECURITY_CREDENTIALS, "makimaki19881006");
DirContext ctx;
try {
ctx = new InitialDirContext(env);
ctx.close();
} catch (NamingException ex) {
}
Hashtable使うとNetBeans君が「ォィォィ」って警告だすのですが、InitialDirContextの引数がHashtableっていうので何とも。
ちなみに本実装では
- サンプルコードで書いた各種パラメータ値(simpleとかldapのURLとか)は外部ファイルで設定できるようにしたり
などをしました。
JavaでのAD認証、当初の想定より早く実装が終わって良かったー。