Jump to: navigation, search

External Authentication Process

This section introduces the concept of external authentication and describes how Configuration Server communicates with a third-party authentication server in this schema. It also highlights the procedure for activating external authentication.

Genesys software allows you to integrate it with a third-party authentication system. That is, you can deploy a third-party authentication system to control user access to Genesys applications. This way, you can benefit from your established security system, which can be fairly sophisticated and can provide functions that Genesys does not provide. Using an existing authentication system saves you from creating an additional security schema in your Genesys configuration environment.

To enable and configure RADIUS external authentication, see RADIUS External Authentication. To enable and configure LDAP Authentication, see LDAP External Authentication.

User Verification

To verify the identity of a user who logs in to a Genesys application, Configuration Server can:

  • Check the user’s permission in the Configuration Database.
  • Pass the user’s login information to a third-party server and perform the permission verification in the Configuration Database only in case of positive authentication results from the external system.
Important
There might be instances in which Configuration Server and the external authentication system interpret a blank password differently. To eliminate this possibility, make sure that Configuration Server does not accept a blank password as valid. Refer to the Framework Configuration Options Reference Manual for instructions on configuring the allow-empty-password option to disallow a blank password.

This document explains the authentication process that involves a third-party authentication server.

Starting in release 8.1, only users with a valid External ID will be considered for external authentication, unless the option enforce-external-auth is set to true. Genesys recommends that the default user not be configured with an External ID, to allow for system access if all external authentication servers are down.

When an external system handles the authentication process, Configuration Server communicates with the external authentication server by means of a pluggable module that Genesys has developed for a particular third-party server.

Authentication Architecture Involving an External System

Enabling External Authentication

External authentication works with Configuration Server. If you are installing Genesys software for the first time, you must first set up the Configuration Layer following the instructions in the Framework Deployment Guide .

By default, Configuration Server does not communicate with an external authentication server.

The following table summarizes how to enable external authentication.

Enabling External Authentication

Objective

Related Procedures and Information

Set up the external authentication system.

Refer to the system documentation for your RADIUS or LDAP system.

Deploy the external authentication module during the installation of Configuration Server.

Do one of the following, as appropriate:

To deploy RADIUS, follow the instructions in Deploying RADIUS Authentication.

To deploy LDAP, follow the instructions in Deploying LDAP.

Configure Configuration Server to run the selected external authentication systems:

Do one of the following, as appropriate:

For RADIUS, follow the instructions in Modifying the RADIUS Configuration Files.

For LDAP, follow the instructions in Configuring LDAP Servers

Start Configuration Server.

Refer to the Framework Deployment Guide for information about starting Configuration Server.

At startup, when external authentication is activated, Configuration Server verifies the presence of both the configuration option that points to the pluggable module, and the pluggable module itself. If either one of these is not found, Configuration Server considers external authentication to be disabled.

Configuring the Master Configuration Server

A new installation of the Master Configuration Server at its first startup reads values from its configuration file and saves those values in the Configuration Database. On all subsequent starts, it reads all values from the database and ignores those in its configuration file. (The backup Master Configuration Server, if configured, saves the information when the first switchover is completed.) As a result, you must make any changes to server-level external authentication parameters in the Options tab of the Configuration Server and Configuration Server Proxies. Any changes you make in the configuration file are ignored.

The only exception to this is the option enforce-external-auth (see enforce-external-auth). If this option is set to true in the database, but a newly installed Configuration Server reads its configuration file and finds the option set to false , Configuration Server sets it to false in the database. This ensures that all users are authenticated internally, including those without an External ID.

Synchronizing User Accounts

For Configuration Server to verify user permissions in the Configuration Database, you must synchronize the user accounts in the Configuration Database with the accounts in the external authentication system. In other words, you must create a Person object in the Configuration Database for each user who will operate in the Genesys environment. The properties of that object must correspond to the user’s parameters in the external authentication system.

To simplify the synchronization of user accounts, use the Genesys Configuration Import Wizard. For information about the wizard, refer to the Framework 8.0 Imported Configuration Data Formats Reference Manual.


Person Objects and External IDs

To be considered for external authentication, a Person must be configured with an ExternalID . In the simplest case, the External ID , it could be equal to the person's account name.

Customizing External Authentication Configuration

You can customize the configuration of external authentication for specific Person and Tenant objects. Values specified in the Configuration Server options enable External Authentication and are the default; but values defined at the Person or Tenant level can override them.

Important
In release 8.1 and later, it is possible to use the same configuration sections and options at the server-level, Tenant-level, and Person-level. Genesys recommends this approach. Furthermore, Genesys recommends that in a multi-tenant or otherwise distributed environment, external authentication be configured at the Tenant level to simplify the configuration process and ensure consistency system-wide.

Establishing the Defaults

The authentication section in Configuration Server options enables External Authentication, and defines the default External Authentication values for all Person objects within the configuration. For details, see Modifying the RADIUS Configuration Files or Configuration Server Options.

The library option in the authentication section must specify a value for each External Authentication provider that your implementation supports:

The value gauth_ldap enables LDAP authentication.

The value gauth_radius enables RADIUS authentication.

The value gauth_ldap , gauth_radius or gauth_radius , gauth_ldap enables both LDAP and RADIUS.

The value gauth_kerberos enables Kerberos authentication. This applies only to the server on which it is configured; it cannot be customized at the tenant or user level.

The value internal , available only for setting at the Tenant or Person level, means that all users associated with the object in which the option is set to this value must validate internally.

Overriding the Defaults by Tenant

Use the following procedure to override the defaults for all Person objects belonging to a specific Tenant.

Overriding defaults for Person objects by Tenant

Start

  1. Create an authentication section in that Tenant's Annex Property. You must do this for all Tenants if you specify both provider types (LDAP and RADIUS) in the Configuration Server options.
  2. In the authentication section, create the option library, and assign it one of the values in Tenant-specific External Authentication Providers.
  3.  

    Tenant-specific External Authentication Providers

    Value of library

    Description

    internal

    Authentication is performed internally, using the passwords stored in the Genesys database.

    Do not specify any additional options.

    gauth_radius

    All users of this Tenant are authenticated using the RADIUS access parameters specified in the local radiusclient.conf configuration file.

    Do not specify any additional options.

    Note that you cannot assign different Tenants to different RADIUS servers.

    gauth_ldap

    All users of this Tenant are authenticated through one or more LDAP server, each defined in a gauth-ldap or gauth_ldap_n (see Configuring LDAP Servers) and specified in the additional option ldap-url. You must specify at least one ldap-url option. You can specify other LDAP-related options, such as password, or more ldap-url options to specify a specific set of LDAP servers. You must define all valid LDAP-specific options in the Annex of the Tenant object.

    Important
    You cannot override the global option verbose or the content of ldaperrors.txt . In addition, settings defined at the Tenant level can be overridden for individual users at the Person level.
  4. If the Tenant is using LDAP external authentication (library=gauth_ldap ), create a gauth_ldap section for the first LDAP server and a gauth_ldap_n section for each additional server on the Tenant’s Annex tab, and assign appropriate values to the options in each section. Refer to Configuring LDAP Servers for detailed information about configuring multiple LDAP servers, and to Configuration Options for detailed descriptions of the options.
  5. If you have existing Tenant, server, or Person objects that use legacy options (listed in Legacy Tenant-specific External Authentication Servers—LDAP) in the authentication section, Genesys recommends that you migrate to the gauth_ldap[_n] (where n is 1 to 9 )] section format as soon as possible, for security reasons. If you have both current options (in gauth-ldap[_n] sections) and legacy options (in the authentication section) configuration, the legacy options will be ignored.

End

 

Legacy Tenant-specific External Authentication Servers—LDAP

 

Option Name

Option Value

Description

First LDAP server

ldap-url


<value>


URL of first LDAP server

app-user


<value>


Distinguished name of application user for first LDAP server.

password


<value>


Application user password for first LDAP server

cacert-path


<value>


Path to CA certificate for first LDAP server

cert-path


<value>


Path to certificate of client’s key for first LDAP server

key-path


<value>


Path to client’s private key for first LDAP server

idle-timeout

<value>


Time interval that the LDAP connection to the first LDAP server will be kept open if there are no more requests

retry-attempts

<value>


Number of authorization retries that will be generated by Configuration Server if the first LDAP server does not respond

retry-interval

<value>


Time that Configuration Server waits for an authorization reply from the first LDAP server.

connect-timeout

<value>


Time that Configuration Server waits after initial connection before deeming first LDAP server to be unavailable.

Second LDAP server

ldap-url1


<value>


URL of second LDAP server

app-user1


<value>


Distinguished name of application user for second LDAP server.

password1


<value>


Application user password for second LDAP server

cacert-path1


<value>


Path to CA certificate for second LDAP server

cert-path1


<value>


Path to certificate of client’s key for second LDAP server

key-path1


<value>


Path to client’s private key for second LDAP server

idle-timeout2

<value>


Time interval that the LDAP connection to the second LDAP will be kept open if there are no more requests.

retry-attempts2

<value>


Number of authorization retries that will be generated by Configuration Server if the second LDAP server does not respond.

retry-interval2

<value>


Time that Configuration Server waits for an authorization reply from the second LDAP server.

connect-timeout2

<value>


Time that Configuration Server waits after initial connection before deeming second LDAP server to be unavailable.

Third LDAP server

...

...

...

...

...

...

Continue configuring groups of options for each LDAP server, as required, up to a maximum of 10 servers.

Overriding the Defaults by Person Object

Important
You cannot override RADIUS defaults for individual Person objects.

To override the default or Tenant-specific LDAP access parameters for any individual Person object, specify one or more partial LDAP URLs in the External User ID field in the General section of the Configuration tab of the Person object.

You can also override the list of servers specified by default or by the Tenant by specifying LDAP servers in the Annex , in the same way as you do for a Tenant (see See If the Tenant is using LDAP external authentication (library=gauth_ldap), create a gauth_ldap section for the first LDAP server and a gauth_ldap_n section for each additional server on the Tenant’s Annex tab, and assign appropriate values to the options in each section. Refer to “Configuring LDAP Servers” on page 36 for detailed information about configuring multiple LDAP servers, and to “Configuration Options” on page 46 for detailed descriptions of the options.).

These settings override both default and Tenant-specific settings, and do not require that you restart Configuration Server.

The scope of the override depends on whether there is an LDAP server address included in the LDAP URL given in the External User ID field. Generally:

If the LDAP URL in the External User ID field includes a server address, the LDAP server given by this address is considered part of the set of servers specified in the Annex . In this case, the LDAP search parameters specified in the External User ID field URL apply only to this LDAP server.

If the LDAP URL in the External User ID field does not contain a server address (only search and scope parameters), these search parameters are used to customize the search using the current set of LDAP servers, regardless of where, or at what level, they are defined.

Examples

Example 1

The External User ID field contains only a username.

For example: user1


The username is used for authorization. If LDAP servers have been configured in the Person object’s Annex , the username will be used for authorization with only those servers.

Example 2

The External User ID field contains an LDAP URL consisting of only the server address.

For example: ldaps://luxor.us.int.vcorp.com:1636/


The server address in the External User ID field is used as the authentication server for this Person. Additional properties of the server can be specified in the Person object’s Annex .

Additional LDAP servers can also be specified in the Annex . In this case, the options for the first LDAP server (url_ldap ) are ignored, as they are overridden by the server specified in the External User ID field. Only the subsequent servers (such as ldap-url1, ldap-url2, and so on) are used.

Example 3

The External User ID field contains an LDAP URL consisting of the search parameters but no server address.

For example: ldap:///???(mail=test@vcorp.com)


The specified search parameters override the corresponding parameters for all servers used by the Person , whether they are default or defined at the Tenant or Person level.

High-Availability External Authentication Configurations

You can configure multiple external authentication servers to add to the reliability and efficiency of your system, as follows:

For LDAP, redundant configurations are supported with each additional servers configured in [gauth_ldap_n] sections. This can be done at all levels–server, tenant, and user.

For RADIUS, redundant authentication servers are configured in the redisuclient.conf configuration file of Configuration Server. This can be done only at the server level.

For Kerberos, redundant configurations are not supported, each configuration applies only to the server for which it is configured.

Disabling External Authentication

To disable external authentication at the Tenant or Person level, set the library option in the authentication section to internal in the object. For Configuration Server or Configuration Server Proxy, set the option to an empty value, and then restart the server to unload the authentication module and stop the authentication.

Refer to library (for RADIUS) or library (for LDAP) for information about the library option.).

Troubleshooting the External Authentication Connection

To obtain debugging information about the connection between any Configuration Server, including Configuration Server Proxy, and the RADIUS or LDAP server, use the configuration option verbose described in this section.

[authentication] Section

  • Description: This section must be called authentication.

verbose

  • Default Value: 0
  • Valid Values:

0


Disables this feature.

1


Produces debug information involving only unexpected situations, data, or internal states.

2

Produces debug information without OpenLDAP library output. (The newer OpenLDAP contains a much larger internal debug size, which reduces system performance. This is the recommended level.

3

Produces debug information, including all OpenLDAP library output.

  • Changes Take Effect: If switching of OpenLDAP output occurs, the changes take effect when the next connection is created (after disconnection, timeout expiry, or switch to a new LDAP server). Otherwise, the changes take effect immediately, when the next authentication request is processed.
  • Specifies the output level for debugging information for the external authentication server. This information is used to troubleshoot the connection between Configuration Server and the RADIUS or LDAP server, from the Configuration Server side.

For any Configuration Server, including Configuration Server Proxy, add this section and option to the options of the Application object.

Example

The following is an example of the authentication section, with the value set to the recommended maximum:

        [authentication] verbose=2

Specific log events may also help you determine the state of the connection between Configuration Server and those external authentication servers in your configuration. This is in addition to the troubleshooting functionality described elsewhere in this document.

The following log events provide information about connections between Configuration Server and external authentication servers:

24100—Indicates that the connection between Configuration Server and the specified external authentication server has failed, and to which alternate external authentication server Configuration Server is trying to connect.

24101—Identifies that no external authentication servers are available. In other words, the connections between Configuration Server and all external authentication servers have failed.

24102— Indicates that connection to the specified external authentication server has been restored, and that the server is available for processing authentication requests.

For more information about these log events, refer to Framework Combined Log Events Help.

This page was last edited on August 1, 2014, at 14:21.
Comments or questions about this documentation? Contact us for support!