本地域上的LDAP与Debian 10上的Mediawiki

本地域上的LDAP与Debian 10上的Mediawiki,mediawiki,Mediawiki,我有一个MediaWiki(1.34)在本地网络上的Debian10Linux虚拟机上运行。我们有一个由Win Server 2008 R2管理的本地域(abc.local)。我正在尝试实现LDAP,以便只有abc.local域用户可以使用我们的wiki。我安装了所有必要的扩展,当我使用此测试进行测试时,似乎一切都正常。我不知道此测试域的凭据,因此我得到以下信息: 这似乎告诉我LDAP正在工作,并试图根据我提供的虚假用户信誉进行身份验证。因此,现在我尝试修改本地域的ldapprovider.j

我有一个MediaWiki(1.34)在本地网络上的Debian10Linux虚拟机上运行。我们有一个由Win Server 2008 R2管理的本地域(abc.local)。我正在尝试实现LDAP,以便只有
abc.local
域用户可以使用我们的wiki。我安装了所有必要的扩展,当我使用此测试进行测试时,似乎一切都正常。我不知道此测试域的凭据,因此我得到以下信息:

这似乎告诉我LDAP正在工作,并试图根据我提供的虚假用户信誉进行身份验证。因此,现在我尝试修改本地域的
ldapprovider.json
。第一次尝试时,我所做的只是更改“服务器”、“用户”和“通行证”。5.5.5.5是我们的内部本地域控制器

{
    "LDAP": {
            "connection": {
                    "server": "5.5.5.5",
                    "user": "cn=Administrator,dc=example,dc=com",
                    "pass": "XXXXXXXXXX",
                    "options": {
                            "LDAP_OPT_DEREF": 1
                    },
                    "basedn": "dc=example,dc=com",
                    "groupbasedn": "dc=example,dc=com",
                    "userbasedn": "dc=example,dc=com",
                    "searchattribute": "uid",
                    "searchstring": "uid=USER-NAME,dc=example,dc=com",
                    "usernameattribute": "uid",
                    "realnameattribute": "cn",
                    "emailattribute": "mail"
            },
            "userinfo": {
                    "attributes-map": {
                            "email": "mail",
                            "realname": "cn",
                            "nickname": "uid",
                            "language": "preferredlanguage"
                    }
            },
            "groupsync": {
                    "mapping": {
                            "mathematicians": "ou=mathematicians,dc=example,dc=com",
                            "scientists": "ou=scientists,dc=example,dc=com"
                    }
            }
    }
}
这一次,当我输入用户凭据时,出现以下错误:

[f66f7d40890c442c71165a80] /index.php/Special:PluggableAuthLogin MWException from line 157 of /var/www/html/mediawiki/extensions/LDAPProvider/src/Client.php: Could not bind to LDAP: (49) Invalid credentials

Backtrace:

#0 /var/www/html/mediawiki/extensions/LDAPProvider/src/Client.php(80): MediaWiki\Extension\LDAPProvider\Client->establishBinding()
#1 /var/www/html/mediawiki/extensions/LDAPProvider/src/Client.php(313): MediaWiki\Extension\LDAPProvider\Client->init()
#2 /var/www/html/mediawiki/extensions/LDAPAuthentication2/src/PluggableAuth.php(76): MediaWiki\Extension\LDAPProvider\Client->canBindAs(string, string)
#3 /var/www/html/mediawiki/extensions/PluggableAuth/includes/PluggableAuthLogin.php(30): MediaWiki\Extension\LDAPAuthentication2\PluggableAuth->authenticate(NULL, string, NULL, NULL, NULL)
#4 /var/www/html/mediawiki/includes/specialpage/SpecialPage.php(575): PluggableAuthLogin->execute(NULL)
#5 /var/www/html/mediawiki/includes/specialpage/SpecialPageFactory.php(611): SpecialPage->run(NULL)
#6 /var/www/html/mediawiki/includes/MediaWiki.php(296): MediaWiki\Special\SpecialPageFactory->executePath(Title, RequestContext)
#7 /var/www/html/mediawiki/includes/MediaWiki.php(900): MediaWiki->performRequest()
#8 /var/www/html/mediawiki/includes/MediaWiki.php(527): MediaWiki->main()
#9 /var/www/html/mediawiki/index.php(44): MediaWiki->run()
#10 {main}
我不知道如何为我的本地域
abc.local
修改
ldapprovider.json
。不知道这是否有帮助,但当我将计算机加入域时,我使用“abc.local”,当用户登录时使用“abc\username”

p、 我之所以能走到这一步,是因为我得到了认真的帮助/辅导。只是不想放弃

EDIT1:我将我的linux计算机转到windows域,并在
领域发现
领域加入
id
命令中获得以下结果。工作正常-可以识别用户rjsmith(他是用户,也在工程师组中)

EDIT2:这是我的
LocalSettings.php
文件中的
LDAPProviderDomainConfigProvider
函数。仍然获取
无法绑定到LDAP:(49)无效凭据。
错误

$LDAPProviderDomainConfigProvider = function() {
    $config = [
        'LDAP' => [
            'connection' => [
                "server" => "5.5.5.5"
                "user" => "cn=Administrator@abc.local,dc=abc,dc=local",
                "pass" => 'password',
                "options" => [
                    "LDAP_OPT_DEREF" => 1
                ],
                "basedn" => "dc=abc,dc=local",
                "groupbasedn" => "dc=abc,dc=local",
                "userbasedn" => "dc=abc,dc=local",
                "searchattribute" => "uid",
                "searchstring" => "uid=USER-NAME,dc=abc,dc=local",
                "usernameattribute" => "uid",
                "realnameattribute" => "cn",
                "emailattribute" => "mail"
            ]
        ]
    ];

    return new \MediaWiki\Extension\LDAPProvider\DomainConfigProvider\InlinePHPArray( $config );
};

根据注释,您的错误似乎是需要将ldap连接绑定到的用户名不是
cn=Administrator@abc.local,dc=abc,dc=local
而是
Administrator@abc.local

因此,在扩展的ldap配置中将其更改为:

$LDAPProviderDomainConfigProvider = function() {
    $config = [
        'LDAP' => [
            'connection' => [
                "server" => "5.5.5.5"
                "user" => "Administrator@abc.local",
                "pass" => 'password',
                "options" => [
                    "LDAP_OPT_DEREF" => 1
                ],
                "basedn" => "dc=abc,dc=local",
                "groupbasedn" => "dc=abc,dc=local",
                "userbasedn" => "dc=abc,dc=local",
                "searchattribute" => "uid",
                "searchstring" => "uid=USER-NAME,dc=abc,dc=local",
                "usernameattribute" => "uid",
                "realnameattribute" => "cn",
                "emailattribute" => "mail"
            ]
        ]
    ];

    return new \MediaWiki\Extension\LDAPProvider\DomainConfigProvider\InlinePHPArray( $config );
};

应该在登录时使用技巧(查看更改的
user
属性)从LDAP检索用户信息。

根据注释,您的错误似乎是需要绑定LDAP连接的用户名不是
cn=Administrator@abc.local,dc=abc,dc=本地
而不是
Administrator@abc.local

因此,在扩展的ldap配置中将其更改为:

$LDAPProviderDomainConfigProvider = function() {
    $config = [
        'LDAP' => [
            'connection' => [
                "server" => "5.5.5.5"
                "user" => "Administrator@abc.local",
                "pass" => 'password',
                "options" => [
                    "LDAP_OPT_DEREF" => 1
                ],
                "basedn" => "dc=abc,dc=local",
                "groupbasedn" => "dc=abc,dc=local",
                "userbasedn" => "dc=abc,dc=local",
                "searchattribute" => "uid",
                "searchstring" => "uid=USER-NAME,dc=abc,dc=local",
                "usernameattribute" => "uid",
                "realnameattribute" => "cn",
                "emailattribute" => "mail"
            ]
        ]
    ];

    return new \MediaWiki\Extension\LDAPProvider\DomainConfigProvider\InlinePHPArray( $config );
};

应该在登录时从LDAP检索用户信息时使用技巧(查看已更改的
user
属性)。

您是否可以检查用户名和密码组合是否与
ldapsearch
:您是否尝试为端口添加
-p
参数,为服务器名添加
-h
参数?确定,如果它与ldapsearch使用的是相同的凭据,那么我不知道什么在这里不起作用,抱歉。您需要首先解决凭据问题。可能是配置丢失或错误。是的,而不是
“user”=>“cn=Administrator@abc.local,dc=abc,dc=local“,
使用
“用户”=>”Administrator@abc.local“,
。我不确定,为什么这会如此奇怪,我目前还不是Ldap相关方面的专家,但当你在ldapsearch中这样使用它时,我至少会在MW扩展中尝试一下,还有。您可以检查用户名和密码组合是否与ldapsearch配合使用吗:您是否尝试为端口添加
-p
参数,为服务器名添加
-h
参数?好的,如果它与ldapsearch配合使用的凭据非常相同,那么我不知道什么不起作用,抱歉。您需要首先解决凭据问题。可能是配置丢失或错误。是的,而不是
“user”=>“cn=Administrator@abc.local,dc=abc,dc=local“,
使用
“用户”=>”Administrator@abc.local“,
。我不确定,为什么这会如此奇怪,我目前还不是Ldap相关方面的专家,但当你在ldapsearch中这样使用它时,我至少会在MW扩展中尝试一下。