Kerberos SSO
This article explains how to configure authentication to an Exasol database with Kerberos SSO.
Exasol supports single sign-on (SSO) functionality using Kerberos in JDBC and ODBC connections. This allows users to authenticate to Exasol using their Kerberos credentials for a seamless user experience.
To enable Kerberos SSO in Exasol, you must have a keytab file provided by a Kerberos Key Distribution Center (KDC) or by your Active Directory administrator in Windows. The keytab file consists of service principals for Exasol databases and must be uploaded to Exasol using
To learn how to configure a database user to authenticate with Kerberos, see CREATE USER and ALTER USER.
Configure Kerberos in Exasol
Prerequisites
-
You must have a Kerberos keytab file.
-
You must have root access to the Exasol system.
This procedure uses the c4 and confd_client command-line tools in a Linux terminal. To learn more about these tools, see Exasol Deployment Tool (c4) and ConfD.
-
Connect to the cluster operating system (COS) using
c4 connect -i PLAY_ID -s cos.Example:
Copy./c4 connect -i c3275f84 -s cosTo find the play ID, you can use
c4 ps.For more information about how to use c4 commands, see How to use c4.
-
To find the database name when you are connected to COS, use the ConfD job db_list.
Example:
Copyconfd_client db_list
- MY_DATABASE -
To configure the Kerberos service in Exasol, use the ConfD job db_configure_kerberos with the following parameters:
Parameter Data type Description db_namestring The name of the Exasol database. keytabstring The Kerberos keytab file. To pass the file name, use the syntax {<filename}.realm(optional)string Realm of the Kerberos principal. Sets the database parameter
-kerberosRealm.If the parameter is set, then only users of the specified realm will be accepted, even if the uploaded keytab contains entries for other realms.
If the parameter is not set, then users from all realms in the keytab file are accepted.
service(optional)string Kerberos service name. Sets the database parameter
-kerberosServiceName.If the parameter is set, only the specified Kerberos service can be requested by the client.
If the parameter is not set, any Kerberos service requested by the client is accepted as long as it exists in the uploaded keytab file.
host(optional)string Hostname of the Kerberos principal. Sets the database parameter
-kerberosHostname.If the parameter is set, then only the specified host is accepted by the client, even if the uploaded keytab file contains entries for other hostnames.
If the parameter is not set, then the hostname will not be checked during Kerberos authentication.
Example:
confd_client db_configure_kerberos db_name: MY_DATABASE keytab: '"{< ./my_keytab_file}"' realm: EXAMPLE.COM service: MY_SERVICE host: MY_HOSTNAME