Kerberos (GSSAPI)
Kerberos can be used to authenticate to LDAP directory. In this case, you don’t need to store the connection password in lsc.xml.
Here are the steps to use Kerberos with LSC.
Prerequisite
You need to have configured Kerberos client on your server first. It means you are able to do a kinit to get a valid ticket from the Kerberos server.
For more convenience, this howto supposes you have generated a keytab for the LSC user. It will avoid the need to do a kinit for getting a ticket. Export the keytab to lsc.keytab
JAAS
Create /etc/lsc/gsseg_jaas.conf configuration with the following: (adapt the path to keytab)
/**
* Login Configuration for JAAS.
*
*/
org.lsc.jndi.JndiServices {
com.sun.security.auth.module.Krb5LoginModule required client=TRUE useKeyTab=true keyTab="/path/to/lsc.keytab";
};
Tip
Remove useKeyTab and keyTab parameters if you don’t want a keytab for now and plan to get a ticket with kinit
Kerberos
Soft-link the krb5.ini to your real /etc/krb5.conf:
ln -s /etc/krb5.conf /etc/lsc/krb5.ini
Java options
You need to add some options in the java command used by LSC. You can do that by exporting JAVA_OPTS:
export JAVA_OPTS="$JAVA_OPTS -Djavax.security.auth.useSubjectCredsOnly=false"
Tip
If you need to debug, set these additional Java options: -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
Tip
You can also edit /usr/bin/lsc to remember this option.
LSC
Modify the LDAP connection:
username: set the Kerberos username (the realm must be in uppercase)
password: set a dummy password
authentication: use
GSSAPIsaslQop (optional): The desired quality-of-protection, allowed values are:
auth(default value): authentication onlyauth-int: authentication plus integrity protectionauth-conf: authentication plus integrity and confidentiality protection
Example:
<ldapConnection>
<name>adsamba4-conn</name>
<url>ldaps://pdc.example.org:636/dc=ad,dc=example,dc=org</url>
<username>adminlsc@EXAMPLE.ORG</username>
<password>not_really</password>
<authentication>GSSAPI</authentication>
<referral>IGNORE</referral>
<derefAliases>NEVER</derefAliases>
<version>VERSION_3</version>
<pageSize>1000</pageSize>
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<tlsActivated>false</tlsActivated>
<saslQop>auth</saslQop>
</ldapConnection>
Kerberos init
If you didn’t used a keytab, you have to get a kerberos ticket:
kinit adminlsc@EXAMPLE.ORG
Run LSC
You can now run LSC, it will authenticate trough Kerberos.
Note
This documentation was done thanks to Francesco Malvezzi and Franck Rakotonindrainy