- 27 Oct 2023
- 3 Minutes to read
- Print
- DarkLight
How To Configure Kerberos Authentication
- Updated on 27 Oct 2023
- 3 Minutes to read
- Print
- DarkLight
How To Configure Kerberos Authentication
Introduction
Traditionally, a user has always been required to enter their username and password in order to log in to RapidIdentity. Customers may deem this process redundant when a user has already logged into their domain-joined Windows workstation.
Kerberos Authentication is supported in RapidIdentity 3.5 for On-Premise and 2022.4.5 for Cloud - verify that you are running a version that supports Kerberos Authentication. This process eliminates the username and password requirement when a user is logging in from a domain-joined Windows workstation.
Prerequisites
Prior to attempting to configure Kerberos Authentication, you should complete the following tasks:
- Ensure that you are licensed for Kerberos Authentication.
- When using RapidIdentity Cloud, install an Identity Bridge, configuring TCP port 88 at a minimum. (This is the Kerberos v5 port; Kerberos v4 is not recommended.)
Active Directory Configuration
- Create a user in Active Directory to handle Kerberos Authentication. The only requirements for this Service Account User are:
- Select the option to prevent the user from changing their password
- Select the option to indicate that the user’s password never expires
- Select the option to not require Kerberos pre-authentication
- In Powershell, execute the following command:
- setspn -a HTTP/{RapidIdentityURL} {KerberosUsername}
- RapidIdentityURL: The FQDN of your RapidIdentity server, for example, “idauto.us001-rapididentity.com”
- KerberosUsername: The username created in step 1 of this section.
- For RapidIdentity Cloud customers using a Vanity URL you will need to execute this command a second time with your Vanity URL
- setspn -a HTTP/{RapidIdentityVanityURL} {KerberosUsername}
- RapidIdentityURL: The VanityURL of your RapidIdentity server, for example, “vanity.idauto.us001-rapididentity.com”
- KerberosUsername: The username created in step 1 of this section.
- setspn -a HTTP/{RapidIdentityVanityURL} {KerberosUsername}
- setspn -a HTTP/{RapidIdentityURL} {KerberosUsername}
Group Policy Configuration
Certain configuration changes need to be made on each Windows workstation to support Kerberos Authentication. Rather than manage these individually, a group policy can be configured to automate that process.
- Add your RapidIdentity URL to the Internet Sites list
- User Configuration > Policies > Administrative Templates > Windows Components > Microsoft Edge > Internet Control Panel > Security Page > Site to Zone Assignments List
- Set this policy to Enabled
- Add an assignment for your RapidIdentity server to Intranet Sites, for example
- Value Name: https://my.example.com
- Value: 1
- User Configuration > Policies > Administrative Templates > Windows Components > Microsoft Edge > Internet Control Panel > Security Page > Site to Zone Assignments List
- Configure a batch script (see template below) to configure Firefox and store it in \\test.local\NETLOGON\kerberos.bat
- Set the Group Policy to run this batch script on user logon
- Computer Configuration > Policies > Windows Settings > Scripts > Startup
Firefox Batch Script
@echo off
FOR /F "tokens=*" %%R IN ('dir /B /AD "%APPDATA%\Mozilla\Firefox\Profiles\*.default"') DO CALL:write_settings %%R
GOTO:EOF
:write_settings
>nul DIR "%APPDATA%\Mozilla\Firefox\Profiles\%1\prefs.js" /A /B
if ERRORLEVEL 1 GOTO:EOF
REM configure the prefs.js file if it hasn't already been configured
>nul find "my.example.com" %APPDATA%\Mozilla\Firefox\Profiles\%1\prefs.js || (
echo user_pref^("network.negotiate-auth.trusted-uris", "https://my.example.com"^); >> %APPDATA%\Mozilla\Firefox\Profiles\%1\prefs.js
echo user_pref^("network.negotiate-auth.delegation-uris", "https://my.example.com"^); >> %APPDATA%\Mozilla\Firefox\Profiles\%1\prefs.js
echo user_pref^("network.automatic-ntlm-auth.trusted-uris", "https://my.example.com"^); >> %APPDATA%\Mozilla\Firefox\Profiles\%1\prefs.js
)
ATTRIB -A "%APPDATA%\Mozilla\Firefox\Profiles\%1\prefs.js"
GOTO:EOF
Appliance Configuration ( For RapidIdentity On-Premise Only)
- The RapidIdentity Appliance must be able to resolve your domain through DNS. Ideally, your appliance will be configured to use your domain controllers for DNS. Alternatively, you can configure your host's file to point to your domain, however, your appliance will be limited to using only one domain controller for Kerberos Authentication
- In RapidIdentity Appliance Configuration (idauto-apps), navigate to Core Configuration > Authentication > Kerberos Configuration and configure the following parameters with your values
- Domain: test.local
- KDC Address: test.local
- Service Principal: HTTP/my.example.com@test.local
- Service Principal Password: Configured earlier in step 1 of Active Directory Configuration
- In RapidIdentity Appliance Configuration (idauto-apps), navigate to Core Configuration > Authentication and create an authentication policy for Kerberos Authentication
- Criteria > Kerberos > Enabled: Checked
- Authentication Methods > Kerberos > Required: Checked
- Note: Additional authentication methods can be enabled (such as TOTP) to provide additional authentication.
Current Limitations
- Cloud Hosted Active Directories: It is currently unsupported to attempt Kerberos Authentication against a Cloud Hosted Active Directory.
- UPN Suffix: It is currently unsupported to attempt Kerberos Authentication using UPN Suffixes.
- Trusts: It is currently unsupported to attempt Kerberos Authentication against a trusted domain.
- Multiple Domains: It is currently unsupported to attempt Kerberos Authentication against multiple domains.