How NetScaler implements Kerberos for client authentication
Important
Kerberos/NTLM authentication is supported only in the NetScaler 9.3 nCore release or later, and it can be used only for authentication, authorization, and auditing traffic management virtual servers.
NetScaler handles the components involved in Kerberos authentication in the following way:
Key Distribution Center (KDC)
In the Windows 2000 Server or later versions, the Domain Controller and KDC are part of the Windows Server. If the Windows Server is UP and running, it indicates that the Domain Controller and KDC are configured. The KDC is also the Active Directory server.
Note
All Kerberos interactions are validated with the Windows Kerberos Domain Controller.
Authentication service and protocol negotiation
A NetScaler appliance supports Kerberos authentication on the authentication, authorization, and auditing traffic management authentication virtual servers. If the Kerberos authentication fails, the NetScaler uses the NTLM authentication.
By default, Windows 2000 Server and later Windows Server versions use Kerberos for authentication, authorization, and auditing. If you create an authentication policy with NEGOTIATE as the authentication type, the NetScaler attempts to use the Kerberos protocol for authentication, authorization, and auditing and if the client’s browser fails to receive a Kerberos ticket, the NetScaler uses the NTLM authentication. This process is referred to as negotiation.
The client may fail to receive a Kerberos ticket in any of the following cases:
- Kerberos is not supported on the client.
- Kerberos is not enabled on the client.
- The client is in a domain other than that of the KDC.
- The Access Directory on the KDC is not accessible to the client.
For Kerberos/NTLM authentication, the NetScaler does not use the data that is present locally on the NetScaler appliance.
Authorization
The traffic management virtual server can be a load balancing virtual server or a content switching virtual server.
Auditing
The NetScaler appliance supports auditing of Kerberos authentication with the following audit logging:
- Complete audit trail of the traffic management end-user activity
- SYSLOG and high performance TCP logging
- Complete audit trail of system administrators
- All system events
- Scriptable log format
Supported Environment
Kerberos authentication does not need any specific environment on the NetScaler. The client (browser) must provide support for Kerberos authentication.
High Availability
In a high availability setup, only the active NetScaler joins the domain. In case of a failover, the NetScaler lwagent daemon joins the secondary NetScaler appliance to the domain. No specific configuration is required for this functionality.
Kerberos authentication process
The following figure shows a typical process for Kerberos authentication in the NetScaler environment.
Figure 1. Kerberos Authentication Process on NetScaler
The Kerberos authentication occurs in the following stages:
Client authenticates itself to the KDC
- The NetScaler appliance receives a request from a client.
- The traffic management (load balancing or content switching) virtual server on the NetScaler appliance sends a challenge to the client.
- To respond to the challenge, the client gets a Kerberos ticket.
- The client sends the Authentication Server of the KDC a request for a ticket-granting ticket (TGT) and receives the TGT. (See 3, 4 in the figure, Kerberos Authentication Process.)
- The client sends the TGT to the Ticket Granting Server of the KDC and receives a Kerberos ticket. (See 5, 6 in the figure, Kerberos Authentication Process.)
Note
The above authentication process is not necessary if the client already has a Kerberos ticket whose lifetime has not expired. In addition, clients such as Web Services, .NET, or J2EE, which support SPNEGO, get a Kerberos ticket for the target server, create an SPNEGO token, and insert the token in the HTTP header when they send an HTTP request. They do not go through the client authentication process.
Client requests a service.
- The client sends the Kerberos ticket containing the SPNEGO token and the HTTP request to the traffic management virtual server on the NetScaler. The SPNEGO token has the necessary GSSAPI data.
- The NetScaler appliance establishes a security context between the client and the NetScaler. If the NetScaler cannot accept the data provided in the Kerberos ticket, the client is asked to get a different ticket. This cycle repeats till the GSSAPI data is acceptable and the security context is established. The traffic management virtual server on the NetScaler acts as an HTTP proxy between the client and the physical server.
NetScaler appliance completes the authentication.
- After the security context is complete, the traffic management virtual server validates the SPNEGO token.
- From the valid SPNEGO token, the virtual server extracts the user ID and GSS credentials, and passes them to the authentication daemon.
- A successful authentication completes the Kerberos authentication.