Product Documentation

Configuring external user authentication

Authentication in a Citrix ADC appliance can be local or external. For authenticating external users, the appliance uses an external authentication server such as LDAP, RADIUS and TACACS+. In order to authenticate an external user and grant user access into the appliance, you must use an authentication policy. The Citrix ADC system authentication supports two types of authentication polices – Classic authentication policy and Advanced authentication policy. You can configure either a classic or advanced policy depending on your authentication need. Classic authentication policies use classic policy expressions and Advanced authentication policies use Citrix ADC advanced policy expressions. Advanced authentication policies are used for system user management in a partitioned Citrix ADC appliance.

Once you create an authentication policy, you must bind it to system global entity. You can configure an external authentication server (for example, TACACS) by binding a single authentication policy to the system global entity. Or, you can configure a cascade of authentication servers by binding multiple policies to the system global entity.

Configuring LDAP authentication

You can configure the Citrix ADC appliance to authenticate user access with one or more LDAP servers. LDAP authorization requires identical group names in Active Directory, on the LDAP server, and on the appliance. The characters and case must also be the same.

By default, LDAP authentication is secured by using SSL/TLS protocol. There are two types of secure LDAP connections. In the first type, the LDAP server accepts the SSL/TLS connection on a port separate from the port used to accept clear LDAP connections. After users establish the SSL/TLS connection, LDAP traffic can be sent over the connection. The second type allows both unsecure and secure LDAP connections and is handled by a single port on the server. In this scenario, to create a secure connection, the client first establishes a clear LDAP connection. Then the LDAP command StartTLS is sent to the server over the connection. If the LDAP server supports StartTLS, the connection is converted to a secure LDAP connection by using TLS.

The port numbers for LDAP connections are:

  • 389 for unsecured LDAP connections
  • 636 for secure LDAP connections
  • 3268 for Microsoft unsecure LDAP connections
  • 3269 for Microsoft secure LDAP connections

LDAP connections that use the StartTLS command use port number 389. If port numbers 389 or 3268 are configured on the appliance, it tries to use StartTLS to make the connection. If any other port number is used, connection attempts use SSL/TLS. If StartTLS or SSL/TLS cannot be used, the connection fails.

When configuring the LDAP server, the case of the alphabetic characters must match that on the server and on the appliance. If the root directory of the LDAP server is specified, all of the subdirectories are also searched to find the user attribute. In large directories, this can affect performance. For this reason, Citrix recommends that you use a specific organizational unit (OU).

The following table lists examples of the base distinguished name (DN).

LDAP server Base DN
Microsoft Active Directory DC=citrix, DC=local
Novell eDirectory dc=citrix, dc=net
IBM Directory Server cn=users
Lotus Domino OU=City, O=Citrix, C=US
Sun ONE directory (formerly iPlanet) ou=People, dc=citrix, dc=com

Table 2. Examples of Base Distinguished Name

The following table lists examples of the bind distinguished name (DN).

LDAP server Bind DN
Microsoft Active Directory CN=Administrator, CN=Users, DC=citrix, DC=local
Novell eDirectory cn=admin, dc=citrix, dc=net
IBM Directory Server LDAP_dn
Lotus Domino CN=Notes Administrator, O=Citrix, C=US
Sun ONE directory (formerly iPlanet) uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot

Table 3. Examples of Bind Distinguished Name |LDAP server|Bind DN| |— |— | |Microsoft Active Directory|CN=Administrator, CN=Users, DC=citrix, DC=local| |Novell eDirectory|cn=admin, dc=citrix, dc=net| |IBM Directory Server|LDAP_dn| |Lotus Domino|CN=Notes Administrator, O=Citrix, C=US| |Sun ONE directory (formerly iPlanet)|uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot|

Configure LDAP authentication by using the command line interface

To configure LDAP classic policy

At the command prompt, do the following:

  1. Create an LDAP action.

    add authentication ldapAction <name> {-serverIP <ip_addr|ipv6_addr|*> | {-serverName <string>}} >] [-authTimeout <positive_integer>] [-ldapBase <string>] [-ldapBindDn <string>] {-ldapBindDnPassword } [-ldapLoginName <string>] [-groupAttrName <string>] [-subAttributeName <string>]

    Example:

    add authentication ldapAction ldap_act -serverIP <IP> -authTimeout 30 -ldapBase "CN=xxxxx,DC=xxxx,DC=xxx" -ldapBindDn "CN=xxxxx,CN=xxxxx,DC=xxxx,DC=xxx" -ldapBindDnPassword abcd -ldapLoginName sAMAccountName -groupattrName memberOf -subAttributeName CN
  1. Create an LDAP policy.

    Creating an LDAP Classic authentication policy: 

    add authentication ldapPolicy <name> <rule> [<reqAction>]

    Example:

    add authentication ldappolicy ldap_pol_classic ns_true ldap_act

  2. Create an LDAP policy Creating an LDAP advanced authentication policy:

add authentication ldapPolicy <name> <rule> [<reqAction>]

**Example**:

```
add authentication policy ldap_pol_advance -rule true -action ldap_act
```

3. Bind the LDAP policy to the following bind points at which the policy will be evaluated.

-  `System Global: bind system global <policyName> [-priority <positive_integer]`

-  `VPN Global: bind vpn global <policyName> [-priority <positive_integer>]`

-  `Authentication Server: bind authentication vserver <name> [-policy <string> [-priority <positive_integer>]`

-  `VPN Server: bind vpn vserver <name> [-policy <string> [-priority <positive_integer>]`

To configure LDAP classic policy

At the command prompt, type:

add authentication Policy <name> -rule <expression> -action <string>

Example:

add authentication policy ldap_pol_classic -rule true -action ldap_act

To configure LDAP authentication by using the GUI

Navigate to System > Authentication > LDAP, and create the LDAP authentication policy.

Determining attributes in the LDAP directory

If you need help determining your LDAP directory attributes, you can easily look them up with the free LDAP browser from Softerra.

You can download the LDAP browser from the Softerra LDAP Administrator Web site at http://www.ldapbrowser.com. After the browser is installed, set the following attributes:

  • The host name or IP address of your LDAP server.
  • The port of your LDAP server. The default is 389.
  • The base DN field can be left blank.
  • The information provided by the LDAP browser can help you determine the base DN needed for the Authentication tab.
  • The Anonymous Bind check determines whether the LDAP server requires user credentials for the browser to connect to it. If the LDAP server requires credentials, leave the check box cleared.

After completing the settings, the LDAP browser displays the profile name in the left pane and connects to the LDAP server.

Configuring RADIUS authentication

You can configure the Citrix ADC appliance to authenticate user access with one or more RADIUS servers. If you are using RSA SecurID, SafeWord, or Gemalto Protiva products, use a RADIUS server.

Your configuration might require using a network access server IP address (NAS IP) or a network access server identifier (NAS ID). When configuring the appliance to use a RADIUS authentication server, use the following guidelines:

  • If you enable use of the NAS IP, the appliance sends its configured IP address to the RADIUS server, rather than the source IP address used in establishing the RADIUS connection.
  • If you configure the NAS ID, the appliance sends the identifier to the RADIUS server. If you do not configure the NAS ID, the appliance sends its host name to the RADIUS server.
  • When the NAS IP is enabled, the appliance ignores any NAS ID that was configured by using the NAS IP to communicate with the RADIUS server.

To configure RADIUS authentication by using the GUI

Navigate to System > Authentication > Radius, and create the RADIUS authentication policy.

Choosing RADIUS authentication protocols

The Citrix ADC appliance supports implementations of RADIUS that are configured to use any of several protocols for user authentication, including:

  • Password Authentication Protocol
  • Challenge-Handshake Authentication Protocol (CHAP)
  • Microsoft Challenge-Handshake Authentication Protocol (MS-CHAP Version 1 and Version 2)

If your deployment of the appliance is configured to use RADIUS authentication and your RADIUS server is configured to use Password Authentication Protocol, you can strengthen user authentication by assigning a strong shared secret to the RADIUS server. Strong RADIUS shared secrets consist of random sequences of uppercase and lowercase letters, numbers, and punctuation, and are at least 22 characters long. If possible, use a random character generation program to determine RADIUS shared secrets.

To further protect RADIUS traffic, assign a different shared secret to each appliance or virtual server. When you define clients on the RADIUS server, you can also assign a separate shared secret to each client. If you do this, you must configure separately each policy that uses RADIUS authentication.

Shared secrets are configured on the appliance when a RADIUS policy is created.

Configuring IP address extraction

You can configure the appliance to extract the IP address from a RADIUS server. When a user authenticates with the RADIUS server, the server returns a framed IP address that is assigned to the user. The following are attributes for IP address extraction:

  • Allows a remote RADIUS server to supply an IP address from the internal network for a user logged on to the appliance.
  • Allows configuration for any RADIUS attribute using the type ipaddress, including those that are vendor encoded.

When configuring the RADIUS server for IP address extraction, you configure the vendor identifier and the attribute type.

The vendor identifier enables the RADIUS server to assign an IP address to the client from a pool of IP addresses that are configured on the RADIUS server. The vendor ID and attributes are used to make the association between the RADIUS client and the RADIUS server. The vendor ID is the attribute in the RADIUS response that provides the IP address of the internal network. A value of zero indicates that the attribute is not vendor encoded. The attribute type is the remote IP address attribute in a RADIUS response. The minimum value is one and the maximum value is 255.

A common configuration is to extract the RADIUS attribute framed IP address. The vendor ID is set to zero or is not specified. The attribute type is set to eight.

To configure IP address extraction by using the GUI

  1. Navigate to System > Authentication > Radius, and select a policy.
  2. Modify the server parameters and set relevant values in Group Vendor Identifier and Group Attribute Type fields.

Configuring TACACS+ authentication

You can configure a TACACS+ server for authentication. Similar to RADIUS authentication, TACACS+ uses a secret key, an IP address, and the port number. The default port number is 49. To configure the appliance to use a TACACS+ server, provide the server IP address and the TACACS+ secret. The port needs to be specified only when the server port number in use is something other than the default port number of 49.

To configure TACACS+ authentication by using the GUI

Navigate to System > Authentication > TACACS, and create the TACACS authentication policy.

After the TACACS+ server settings are configured on the appliance, bind the policy to the system global entity.

Binding authentication policies to the system global entity

When the authentication policies are configureS, bind the policies to the system global entity.

To bind a classic authentication policy to system global using the command line interface

At the command line prompt, do the following:

bind system global <policyName> [-priority <positive_integer>]

Example:

bind system global ldap_pol_classic -priority 10

To bind advanced authentication policy to system global using the command line interface

At the command line prompt, do the following:

bind system global <policyName> [-priority <positive_integer>]

Example:

bind system global ldap_pol_advanced -priority 10

To bind an authentication policy to system global using the GUI

  1. Navigate to System > Authentication, and select the authentication type.
  2. On the Policies tab, click Global Bindings and bind the authentication policies.