mediawiki/ldap-provider

Provides a mechanism for MediaWiki to retrieve information using the LDAP protocol

Installs: 1 891

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 19

Forks: 2

Type:mediawiki-extension

2.0.9 2024-09-06 12:53 UTC

README

Extension:LDAPProvider

This extension provides a common infrastructure to connect to a LDAP resource and run queries against it.

Installation

This extension can be installed by creating a composer.local.json file in your MediaWiki's installation directory containing the following (or merging this into your current composer.local.json):

{
	"require": {
		"mediawiki/ldap-provider": "dev-master"
	},
	"config": {
		"prefer": "source"
	}
}

Note that "prefer": "source" causes composer to use a clone of the git repository if it can.

Configuration

In the simplest case where you have a single LDAP server to query, you need to simply specify your LDAP server and the json file. By default LDAPProvider looks for this file in /etc/mediawiki/ldapprovider.json. If LDAProvider is installed, but cannot find it configuration file, it will fail with an error message.

LDAPProvider contains a sample configuration file that points to the Forum Systems online ldap test server in the included ldapprovider.json. This file and the server (if it is accessible on your network) will allow you to test the extension without affecting production systems or configuring your own LDAP server.

The contents of ldapprovider.json demonstrates a minimal configuration:

{
	"LDAP Demo": {
		"connection": {
				"server": "10.5.5.1",
				"user": "cn=read-only-admin,dc=example,dc=com",
				"pass": "password",
				"basedn": "dc=example,dc=com",
				"searchstring": "uid=USER-NAME,dc=example,dc=com"
		}
	}

Other configurations are possible.

If you just want to try out the sample configuration, adding the following to your LocalSettings.php should be all that is needed:

$LDAPProviderDomainConfigs = "$IP/extensions/LDAPProvider/ldapprovider.json";

Alternative configuration via PHP

In LocalSettings.php add

$LDAPProviderDomainConfigProvider = function( $ldapConfig ) {
	return new \MediaWiki\Extension\LDAPProvider\DomainConfigProvider\InlinePHPArray( [
		//Domain name
		'LDAP' => [
			'connection' => [
					'server' => '10.5.5.1',
					'user' => 'cn=read-only-admin,dc=example,dc=com',
					'pass' => 'password',
					'basedn' => 'dc=example,dc=com',
					'searchstring' => 'uid=USER-NAME,dc=example,dc=com'
				]
			]
	] );
};

Testing

Tests are provided. These can be run using the following in your MediaWiki's installation directory:

$ ./tests/phpunit/phpunit.php extensions/LDAPProvider