我正在使用 php5+mysql+ldap。我已经使用 mediawiki 配置了 php 和 mysql。它运行良好。但我想提供 LDAP 用户身份验证登录以及一般用户登录。
我安装了 ldapauthentication 模块 媒体 wiki ldapauthentication 页面
目前的情况是一般可以在我的mediawiki中创建账户,但是ldap用户却无法创建。
这里提供Localsettings.php。
######### edited by RAMKEE ################
require_once( "$IP/extensions/Ldapauthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
//require_once( "$IP/extensions/Ldapauthentication/LdapAutoAuthentication.php" );
//AutoAuthSetup();
# End of automatically generated settings.
# Add more configuration options below.
$wgLDAPDomainNames = array(
'testADdomain',''
);
$wgLDAPServerNames = array(
'testADdomain' => 'polyproxy.ramkee.local',''
);
$wgLDAPUseLocal = true;
$wgLDAPEncryptionType = array(
'testADdomain' => 'clear',''
);
$wgLDAPOptions = array(
'testADdomain' => array( LDAP_OPT_DEREF, 1)
);
$wgLDAPPort = array(
'testADdomain' => 389,''
);
$wgLDAPSearchStrings = array(
'testADdomain' => 'uid=USER-NAME,ou=people,dc=ramkee,dc=local'.''
);
$wgLDAPSearchAttributes = array(
'testADdomain' => 'uid'
);
$wgLDAPBaseDNs = array(
'testADdomain' => 'dc=LDAP,dc=ramkee,dc=local'
);
$wgLDAPGroupBaseDNs = array(
'testADdomain' => 'ou=group,dc=ramkee,dc=local'
);
$wgLDAPUserBaseDNs = array(
'testADdomain' => 'ou=people,dc=ramkee,dc=local'
);
$wgLDAPWriterDN = array(
'testADdomain' => 'ou=people,dc=ramkee,dc=local'
);
$wgLDAPWriterPassword = array(
'testADdomain' => 'KnfMdMI0qiH9HZBQw7JkqLyEni/wp34x'
);
$wgLDAPWriteLocation = array(
'testADdomain' => 'ou=people,dc=ramkee,dc=local'
);
$wgLDAPAddLDAPUsers = array(
'testADdomain' => true
);
$wgLDAPUpdateLDAP = array(
'testADdomain' => true
);
$wgLDAPRetrievePrefs = array(
'testADdomain' => true
);
$wgLDAPDisableAutoCreate = array(
'testADdomain' => false
);
$wgLDAPDebug = 10000;
$wgMinimalPasswordLength = 1;
$wgLDAPGroupUseFullDN = array( 'testADdomain' => false );
$wgLDAPLowerCaseUsername = array(
'testADdomain' => true
);
$wgLDAPGroupObjectclass = array(
'testADdomain' => 'groupofuniquenames'
);
$wgLDAPGroupUseRetrievedUsername = array( 'testADdomain' => false
);
$wgLDAPGroupNameAttribute = array(
'testADdomain' => 'cn'
);
$wgLDAPGroupsUseMemberOf = array(
'testADdomain' => false
);
$wgLDAPUseLDAPGroups = array(
'testADdomain' => true
);
$wgLDAPGroupsPrevail = array(
'testADdomain' => true
);
#wgLDAPRequiredGroups = array(
# 'testADdomain' => array(
# 'cn=admin,ou=groups,dc=ramkee,dc=local',
# 'cn=chulbul,ou=people,dc=ramkee,dc=local'
# )
#;
每当我尝试为 ldap 创建帐户时,它都会显示您没有更新数据库的权限。(我的数据库是 mysql)在创建帐户时出现以下错误
并以管理员身份登录时,它正在接受(LDAP 中没有管理员)
我的 ldap 也正常工作,端口 389 已打开,ldapsearch -x 也正常工作。但我不知道我哪里犯了错误。一个管理员可以登录,普通用户也无法登录。过去 3 天我一直在苦苦挣扎。有谁能帮助我
答案1
我发现自己犯了错误,这里提供我的 localsettings.php。如果有人需要它,按照这个你可能会成功
成功创建 mediawiki 页面后,您将获得全新的 localsettings.php。在其中只需添加以下几行。然后您将获得对 LDAP 数据库的身份验证。
那些存在于 LDAP 数据库中的人不需要在我们的 mediawiki 中创建帐户,他们可以直接登录而无需创建 wiki 帐户。
ramkee.localismy域名。polyproxy.ramkee.local是我的 LDAP 服务器名称
require_once 'extensions/LdapAuthentication/LdapAuthentication.php';
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array(
'ramkee.local',
);
$wgLDAPServerNames = array(
'ramkee.local' => 'polyproxy.ramkee.local',
);
$wgLDAPEncryptionType = array(
'ramkee.local' => 'clear',
);
$wgAuthLDAPBindDN = array( 'ramkee.local' => 'cn=admin,dc=ramkee,dc=local');
$wgAuthLDAPBindPassword = array( 'ramkee.local' => 'safesquid');
$wgLDAPPort = array(
'ramkee.local' => 389,
);
$wgLDAPSearchAttributes = array(
'ramkee.local' => 'uid'
);
$wgLDAPBaseDNs = array(
'ramkee.local' => 'dc=ramkee,dc=local',
);
$wgLDAPDebug = 3;
$wgDebugLogGroups["ldap"] = "/tmp/wikildapdebug.log" ;
如果您发现任何错误,请告诉我。谢谢!