![mediawiki: Ошибка аутентификации LDAP](https://rvso.com/image/1419594/mediawiki%3A%20%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8%20LDAP.png)
Я использую php5+mysql+ldap. Я настроил php и mysql с mediawiki. Все работает нормально. Но я хочу предоставить пользователям LDAP аутентификацию входа, а также общий вход пользователей.
Я установил модуль аутентификации ldap из медиа вики 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, не нужно создавать учетную запись в нашей медиа-вики, они могут войти в систему напрямую, без создания учетной записи вики.
ramkee.местныймое доменное имя.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" ;
Если у вас возникнут какие-либо ошибки, пожалуйста, дайте мне знать. Спасибо!