Actions

Authentication plugins

From LimeSurvey Manual

Revision as of 19:06, 14 August 2017 by LimeAJ (talk | contribs) (→‎LDAP)

This is an overview of the authentication plugins currently shipped with LimeSurvey. If you want to extend or develop your own authentication plugin, please see Authentication_plugin development

Internal database

This plugin is the default and can not be disabled. It uses the built in LimeSurvey database. It is a fall-back mechanism so that you can always login to the installation when needed.

LDAP

By activating this plugin you can perform basic authentication against an LDAP server. Make sure your PHP configuration has LDAP support enabled.

Enabling and configuring settings for plugin AuthLDAP v2.05+

Enable LDAP in PHP.INI. Verify that shows that LDAP is enabled. Go to LimeSurvey Plugin Manager. Configure LDAP plugin.

Simple Example settings

Ldap server e.g. ldap://ldap.mydomain.com: ldap://ldap.mydomain.com Port number (default when omitted is 389): LDAP version (LDAPv2 = 2), e.g. 3: 3 Username prefix cn= or uid=: cn= Username suffix e.g. @mydomain.com or remaining part of ldap query: ,OU=people,DC=mydomain,DC=com Create a LimeSurvey administrator with the same name as a AD(active directory) user account. Log in using the AD credentials(username and password).

Example settings AD2008 & 2.05+

Settings working with Active Directory 2008 and 2.05+ (build 140520) with AuthLDAP plugin .

Authentication with LDAP and userPrincipalName attribute

Note: Authentication with userPrincipalName attribute (ie: firstname.lastname@example.intra). Create a LimeSurvey user with the same name as a AD(active directory) user account :

Username: firstname.lastname@example.intra

Email: firstname.lastname@example.intra

Full name: Firstname LASTNAME

Then configure the plugin : Plugin Manager > LDAP > Configure.

Ldap server e.g. ldap://ldap.example.intra: ldap://ldap.example.intra

Port number (default when omitted is 389): 389

LDAP version (LDAPv2 = 2), e.g. 3: LDAPv3

Username prefix cn= or uid=: cn=: empty

Username suffix e.g. @example.intra or remaining part of ldap query: empty

Log in using the AD credentials (username: firstname.lastname@example.intra and password).

Authentication with LDAP and sAMaccountName attribute

Note: Authentication with sAMaccountName attribute (ie: firstname.lastname). Create a LimeSurvey user with the same name as a AD(active directory) user account :

Username: firstname.lastname

Email: firstname.lastname@example.intra

Full name: Firstname LASTNAME

Then configure the plugin : Plugin Manager > LDAP > Configure.

Ldap server e.g. ldap://ldap.example.com: ldap://ldap.example.intra

Port number (default when omitted is 389): 389

LDAP version (LDAPv2 = 2), e.g. 3: LDAPv3

Username prefix cn= or uid=: cn=: empty

Username suffix e.g. @example.com or remaining part of ldap query: @example.intra

Log in using the AD credentials (username: firstname.lastname and password).

Authentication with LDAPS and sAMaccountName attribute

Note: Authentication with sAMaccountName attribute (ie: firstname.lastname). Create a LimeSurvey user with the same name as a AD(active directory) user account :

Username: firstname.lastname

Email: firstname.lastname@example.intra

Full name: Firstname LASTNAME

Then configure the plugin : Plugin Manager > LDAP > Configure.

Ldap server e.g. ldap://ldap.example.com: ldaps://ldap.example.intra

Port number (default when omitted is 389): 636

LDAP version (LDAPv2 = 2), e.g. 3: LDAPv3

Username prefix cn= or uid=: cn=: empty

Username suffix e.g. @example.intra or remaining part of ldap query: @example.intra

Log in using the AD credentials (username: firstname.lastname and password).

Example settings OpenLDAP & 2.05+

Settings working with OpenLDAP and 2.05+ (git version Feb. 2015) with AuthLDAP plugin .

Authentication with LDAP and uid attribute

Note: Authentication with uid attribute. Create a LimeSurvey user with the same name as a the LDAP user account.

Then configure the plugin : Plugin Manager > LDAP > Configure.

  • Ldap server e.g. ldap://ldap.mydomain.com: ldap://ldap.mydomain.com
  • Port number (default when omitted is 389): (389 or leave blank)
  • LDAP version (LDAPv2 = 2), e.g. 3: LDAPv3
  • Select true if referrals must be followed (use false for ActiveDirectory): (leave blank)
  • Check to enable Start-TLS encryption When using LDAPv3: False
  • Select how to perform authentication: Search and bind
  • Attribute to compare to the given login can be uid, cn, mail, ...: uid
  • Base DN for the user search operation: ou=people,dc=mydomain,dc=com
  • Optional extra LDAP filter to be ANDed to the basic (searchuserattribute=username) filter. Don't forget the outmost enclosing parentheses: (leave blank)
  • Optional DN of the LDAP account used to search for the end-user's DN. An anonymous bind is performed if empty.: cn=admin,dc=mydomain,dc=com
  • Password of the LDAP account used to search for the end-user's DN if previoulsy set.: password (appears!)
  • Check to make default authentication method: (as you wish)

Log in using the LDAP credentials (username: user and password).

Authentication with OpenLDAP, uid attribute, and group restriction [2.62+]

Some applications require a separate LDAP query (beyond the user search and bind to check password) to determine if the user has sufficient authorization. For example, let's assume that LDAP has a Groups OU that includes an entry identified by cn=limeusers and our policy is that for a user to be authorized to use LimeSurvey that entry must include an attribute of the form memberUid=username where username is the username (uid) entered by the user attempting to login. To configure LDAP for that, set up basic uid authentication as above and then set the following additional (optional) parameters:

  • Optional base DN for group restriction: ou=Groups,dc=mydomain,dc=com
  • Optional filter for group restriction: (&(cn=limeusers)(memberUid=$username))

Note:

  1. $username is a magic value (in the context of the filter parameter) that is replaced by the username entered by the user when logging in.
  2. Although intended for testing group membership as above, this optional "group restriction" capability can be used to add any authorization check that can be expressed as a separate filtered search like this.
  3. Before specifying a group restriction this way, verify that basic LDAP authentication is working correctly.
  4. If either of the group restriction parameters is empty then the group restriction step will not be applied.

Webserver authentication

This plugin leaves authentication to the webserver and reads the result from a configurable server setting. This method has been around for a while, and was configured from config.php. If you used this authentication, you should enable the plugin in the plugins menu and move your configuration from config.php to the plugin's settings. Feel free to contact the team via the bugtracker or irc-channel if it no longer functions the way it did before.