Details
Description
In a secure environment, SSL is used to encrypt LDAP request for group mapping resolution.
We (+yoderme, +tgrayson) have found that its implementation is strange.
For information, Hadoop name node, as an LDAP client, talks to a LDAP server to resolve the group mapping of a user. In the case of LDAP over SSL, a typical scenario is to establish one-way authentication (the client verifies the server's certificate is real) by storing the server's certificate in the client's truststore.
A rarer scenario is to establish two-way authentication: in addition to store truststore for the client to verify the server, the server also verifies the client's certificate is real, and the client stores its own certificate in its keystore.
However, the current implementation for LDAP over SSL does not seem to be correct in that it only configures keystore but no truststore (so LDAP server can verify Hadoop's certificate, but Hadoop may not be able to verify LDAP server's certificate)
I think there should an extra pair of properties to specify the truststore/password for LDAP server, and use that to configure system properties javax.net.ssl.trustStore/javax.net.ssl.trustStorePassword
I am a security layman so my words can be imprecise. But I hope this makes sense.
Oracle's SSL LDAP documentation: http://docs.oracle.com/javase/jndi/tutorial/ldap/security/ssl.html
JSSE reference guide: http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html
Attachments
Attachments
Issue Links
- breaks
-
HADOOP-16245 Enabling SSL within LdapGroupsMapping can break system SSL configs
- Resolved
- is duplicated by
-
HADOOP-15315 LDAP over SSL does not work with LdapGroupMapping.java
- Resolved
- relates to
-
HADOOP-15325 Make Configuration#getPasswordFromCredentialsProvider() a public API
- Resolved
-
HADOOP-8145 Automate testing of LdapGroupsMapping against ApacheDS
- Patch Available