
May 10th, 2012, 04:47 AM
|
|
Registered User
|
|
Join Date: May 2012
Posts: 2
Time spent in forums: 44 m 53 sec
Reputation Power: 0
|
|
|
general - Apache authentication
Hi,
I'm trying to figure out how to authenticate users against LDAP server. The directory server does not allow searching and the authentication must be made by binding a given username to the directory. For the bind a proper username and password are required. The problem is that I don't know how to do this in Apache. The mod_auth_ldap module always tries to search the directory and that ends up in errors.
I've made a simple Java program to test the authentication and it works. How could I implement this same functionality in Apache. Is it possible using the current modules? Here's the Java code that works:
Code:
public class Attempt {
public static void main(String[] args) {
String host = "some.host.com";
String authType = "simple";
String baseDN = "";
String username = "username"; // user inputs this
String bindPassword = "userpassword"; // user inputs this
String bindDN = username + "@" + host;
try {
// Environment settings for the connection
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "LDAP://"+ host +":389/" + baseDN);
env.put(Context.SECURITY_AUTHENTICATION, authType);
env.put(Context.SECURITY_PRINCIPAL, bindDN);
env.put(Context.SECURITY_CREDENTIALS, bindPassword);
// If this (bind) works the user is authenticated properly
DirContext ctx = new InitialDirContext(env);
System.out.println("OK, authentication was succesful");
// Close the connection
ctx.close();
} catch(NamingException ne) {
System.out.println("Error, authentication failed");
}
}
}
|