最近在弄wiki,采用的开源代码是mediawiki,由于需要公司内部所有员工能够用公司的用户及密码登陆,而公司的用户及密码全部保存在LDAP中。所以我首先想到的事搭建mediawiki的环境,于是去官网下载源码搭建环境,而后便在google和官网上搜寻资料,很快就找到了解决LDAP认证的办法。mediawiki本生是支持插件开发的,而且官网上本生就有LDAP认证的插件。
1、下载插件
2、修改php.ini配置是得PHP支持LDAP;
3、初始化LdapAuthentication
require_once(
"extensions/LdapAuthentication.php"
)
;
$
wgAuth
=new LdapAuthenticationPlugin(
)
;
4、配置
- $wgLDAPDomainNames = array( "test" );
- $wgLDAPServerNames = array( "test" => "192.168.0.118");
- $wgLDAPSearchStrings = array( "test"=>"mail=USER-NAME@test.com,ou=Users,domainName=test.com,o=domains,dc=test,dc=com");
- $wgLDAPUseSSL = false;
$wgLDAPUseLocal = true;
$wgLDAPAddLDAPUsers = false;
$wgLDAPUpdateLDAP = false;
$wgLDAPMailPassword = false;
$wgLDAPRetrievePrefs = false;
$wgMinimalPasswordLength = 1;
其中$wgLDAPServerNames为ldap服务器的位置,$wgLDAPSearchStrings为用户所在的节点(USER-NAME是写死的最终将被你输入的用户名取代)最终通过$wgLDAPSearchStrings找到用户节点,与用户的userPassword属性进行密码验证。根据ldap结构不同相应的配置也就不同
5、我的LDAP用户节点为mail=USER-NAME@test.com,ou=Users,domainName=test.com,o=domains,dc=test,dc=com
6、由于官网上的文件经常更新,把我所使用的LdapAuthentication.php特上传 链接如下:
http://download.csdn.net/source/2465231