LDAP認証
LDAPとは、LDAP認証とは、LDAP認証 with Cisco ASAより抜粋
LDAP(Lightweight Directory Access Protocol)は、Active Directoryのようなディレクトリサービスにアクセスするためのプロトコル。
なるほど
試用してみるLDAPサーバ
Downloads for Linux RPM Package — Apache Directory
※上記よりApacheDSと管理ツールのApache DS Studioをダウンロードしてインストールする
Apache DSのインストール
ダウンロード
curl -o apacheds-2.0.0-M23-x86_64.rpm http://ftp.meisei-u.ac.jp/mirror/apache/dist//directory/apacheds/dist/2.0.0-M23/apacheds-2.0.0-M23-x86_64.rpm
インストール
sudo rpm -ivh apacheds-2.0.0-M23-x86_64.rpm
起動
sudo /etc/init.d/apacheds-2.0.0_M23-default start
管理ツール
Apache Directory Studioを起動
新しくコネクションを作成
ユーザーとパスワードを設定
※テスト情報
認証 | simple |
ユーザーID | uid=admin,ou=system |
パスワード | secret |
完了
画面に表示
Javaで接続
Sample01.java
import java.util.Hashtable; import javax.naming.AuthenticationException; import javax.naming.Context; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; public class Sample01 { public static void main(String[] args) { System.out.println(auth("uid=admin;ou=system", "secret")); System.out.println(auth("uid=admin;ou=system", "ddddddddd")); } public static boolean auth(String uid, String password) { boolean res = false; //LDAP接続情報 Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://192.168.33.10:10389/"); //LDAPサーバ env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, uid); //ID, 組織 env.put(Context.SECURITY_CREDENTIALS, password); //パスワード try { DirContext ctx = new InitialDirContext(env); ctx.close(); System.out.println("auth ok"); res = true; } catch (AuthenticationException ae) { //認証エラー System.out.println("auth ng"); } catch (Exception e) { //その他のエラー } return res; } }
↓
auth ok true auth ng false
参考
Downloads for Linux RPM Package — Apache Directory
Apache Directory Serverのインストール - Qiita
LDAPとは、LDAP認証とは、LDAP認証 with Cisco ASA
JavaでLDAP認証をやってみる - 眩しいサインを見ただろう
所感
基本、Active Directory Serviceとかよくわかっていないけどこれを機会に理解を深めていきたいと思う。
まあ、使わなかったらそれまでなんですけど…
SSLを使う方法も調べて見よう。