LDAP Settings
This section provides additional information about Shiro LDAP settings.
LDAP stores users and groups in a hierarchical tree structure, built from containers including the organizational unit (ou), organization (o), and domain controller (dc). The path to each entry is a Distinguished Name (DN) that uniquely identifies a user or group.
User and group names typically have attributes such as a common name (cn) or unique ID (uid).
Specify the DN as a string, for example cn=admin,dc=example,dc=com
.
White space is ignored.
Zeppelin LDAP authentication uses templates for user DNs.
-
ldapRealm
-
specifies the class name to use for LDAP authentication. You should set this to
org.apache.zeppelin.realm.LdapRealm
unless you are familiar with LDAP and prefer to useorg.apache.shiro.realm.ldap.JndiLdapRealm
. .. -
ldapRealm.contextFactory.environment[ldap.searchBase]
-
defines the base distinguished name from which the LDAP search starts. Shiro searches for
userDnTemplate
at this address.If the protocol is specified as
ldap
, SSL is not used. If the protocol is specified asldaps
, access is over SSL. -
ldapRealm.userDnTemplate
-
specifies the search location where the user is to be found. Shiro replaces
{0}
with the username acquired from the Zeppelin UI. Zeppelin uses User DN templates to configure associated realms. -
ldapRealm.contextFactory.url
-
specifies the host and port on which LDAP is running.
If the protocol element is specified as
ldap
, SSL will not be used. If the protocol is specified asldaps
, access will be over SSL.Note: If LDAP is using a self-signed certificate, import the certificate into the truststore of JVM running Zeppelin; for example:
echo -n | openssl s_client –connect ldap.example.com:389 | \ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt keytool –import \ -keystore $JAVA_HOME/jre/lib/security/cacerts \ -storepass changeit \ -noprompt \ -alias mycert \ -file /tmp/examplecert.crt
-
ldapRealm.contextFactory.systemUsername
-
ldapRealm.contextFactory.systemPassword
-
define the username and password that Zeppelin uses to connect to LDAP, to search for users and groups. These two settings are used for controlling access to UI features, not for authentication. The Bind method does not require a valid user password.
Examples:
ldapRealm.contextFactory.systemUsername=uid=guest,ou=people,dc=hadoop,dc=apache,dc=org
ldapRealm.contextFactory.systemPassword=somePassword
-
ldapRealm.authorizationCachingEnabled
-
specifies whether to use caching to improve performance. To enable caching, set this property to
true
.