Configuring SSO with Kerberos for admin accounts

Configure the Windows Kerberos Authentication so that administrators can single sign on (SSO) to the Admin Console using Kerberos authentication.

Before you begin

The task requires the following:
  • You are using the Kerberos Version 5 protocol
  • You have connected the eperi sEcure Platform to your Active Directory (see Connecting your Active Directory to eperi sEcure Platform)
  • You have mapped the necessary AD groups to the respective administrator roles in the eperi sEcure Platform (see Mapping an AD group to administrator roles or Importing all AD groups of an OU at once)
  • You have created a service account in your AD which is used by Kerberos to pre-authenticate against your AD. In the account options, you have set the following:
    • This account supports Kerberos AES 128 bit encryption
    • This account supports Kerberos AES 256 bit encryption
    • Password never expires
  • In the service account as User Logon name you entered the Principal name of the user. For example: HTTP/mygateway.example.com
  • Please consider the following in a cluster setup:
    • Take the necessary steps for multiple services to be connected with Kerberos.
    • Perform the configuration described below on all eperi sEcure Platform instances of the cluster.
    • Set up Session stickiness in your loadbalancer.

Procedure

  1. Create a keytab file for the mapping of the principal user to the service account (using the ktpass command on Windows server), for example:
    ktpass /princ HTTP/mygateway.example.com /mapuser sampleuser@YOURREALM.COM /crypto AES256-SHA1 /pass * -SetPass /ptype KRB5_NT_PRINCIPAL /out example.keytab

    For details about the ktpass parameters, please refer to the Microsoft documentation.

  2. Upload the keytab file to the eperi sEcure Platform server and put it in this directory: /opt/eperi/gateway/tomcat/webapps/ROOT/etc
  3. Create a krb5.conf file according to the Kerberos standard, see the example below. (For more details, see for example the MIT Kerberos Documentation.)
  4. In the krb5.conf file configure the path to your keytab file, for example:
    [libdefaults]
        default_realm = YOURREALM.COM
        default_keytab_name=FILE:/path/to/your/keytab/file/example.keytab
        forwardable=true 
    [realms]
        YOURREALM.COM = {
            kdc = yourDomainController.yourRealm.com         
            default_domain = yourRealm.com     
        } 
    [domain_realm]     
        .yourRealm.com = YOURREALM.COM     
        yourRealm.com = YOURREALM.COM
  5. Upload the krb5.conf file to the eperi sEcure Platform server and put it in this directory: /opt/eperi/gateway/tomcat/webapps/ROOT/etc
  6. Create a login.conf file with the following contents:
    spnego-client {
            com.sun.security.auth.module.Krb5LoginModule required;
    };
    		
    spnego-server {
            com.sun.security.auth.module.Krb5LoginModule required
            storeKey=true
            isInitiator=false
            doNotPrompt=true
            principal="HTTP/mygateway.example.com@EXAMPLE.com"
            keyTab="/opt/eperi/gateway/tomcat/webapps/ROOT/etc/example.keytab"
            useKeyTab=true;
    };
  7. In the login.conf file adjust the principal name and the path to your keytab file (see the lines marked in bold above).
  8. Upload the login.conf file to the eperi sEcure Platform server and put it in this directory: /opt/eperi/gateway/tomcat/webapps/ROOT/etc
  9. Change the owner and the group of the files krb5.conf, login.conf and the keytab file to eperi:
    sudo chown eperi:eperi krb5.conf login.conf example.keytab
  10. Open the connector.properties file in an editor. The file is located in the classpath of the eperi sEcure Platform, e.g. in /opt/eperi/gateway/tomcat/webapps/ROOT/.
  11. Add the following properties to the connector.properties file:
    loginWithKerberos=true
    krb5.conf.path=/opt/eperi/gateway/tomcat/webapps/ROOT/etc/krb5.conf
    login.conf.path=/opt/eperi/gateway/tomcat/webapps/ROOT/etc/login.conf
  12. If necessary, adjust the paths to the krb5.conf and login.conf files.
  13. Restart the eperi sEcure Platform:
    systemctl restart eperi-gateway
    Important: In a cluster setup, the changes must be made on every eperi sEcure Platform instance and each eperi sEcure Platform instance must be restarted.

Results

You have successfully configured SSO for admin accounts with Kerberos. The SSO will work out of the box, if an administrator uses a current version of Google Chrome to access the Admin Console. If this is not the case or other browsers such as Firefox or Internet Explorer are used, additional configuration in the browser settings is required. Additional information about this is for example available here: Configuring Kerberos Authentication in Different Browsers.

There are other optional configuration parameters that that you can use if necessary. For details, see all the parameters that start with "kerberos" in section Configuring local system settings.