将 Linux 客户端连接到活动目录

将 Linux 客户端连接到活动目录

我有一台运行 OTRS 3.0.10 的 Linux 服务器(opensuse 12.1)。
还有一台运行 Windows Server 2008R2 的主域控制器。
我已按照操作指南页面进行操作这里这里
显然Net::LDAPperl 模块已安装。但是我实际上无法连接到 AD。

以下是 OTRS 中我的配置文件的摘录: /srv/otrs/Kernel/Config.pm

#Enable LDAP authentication for Customers / Users
  $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
  $Self->{'Customer::AuthModule::LDAP::Host'} = '10.0.1.26';
  $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'ou=D1OU,ou=D1Users,dc=domain,dc=org,dc=za';
  $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

#The following is valid but would only be necessary if the
#anonymous user do NOT have permission to read from the LDAP tree
  $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'otrs';
  $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Password';

#CustomerUser
#(customer user database backend and settings)
    $Self->{CustomerUser} = {
      Module => 'Kernel::System::CustomerUser::LDAP',
      Params => {
      Host => '10.0.1.26',
      BaseDN => 'OU=D1OU,OU=D1Users,DC=domain,DC=org,DC=za',
      SSCOPE => 'sub',
      UserDN =>'otrs',
      UserPw => 'Password',
    },

# customer unique id
    CustomerKey => 'sAMAccountName',
    # customer #
    CustomerID => 'mail',
    CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 250,
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    Map => [

      # note: Login, Email and CustomerID needed!
      # var, frontend, storage, shown, required, storage-type
      #[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
      [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
      [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
      [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
      [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
      [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
      [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
      #[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ],
      #[ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
    ],
  };

这是我得到的错误:

错误:OTRS-CGI-10 Perl:5.14.2 操作系统:linux 时间:2012 年 4 月 30 日星期一 10:50:52

消息:0000208D:NameErr:DSID-0310020A,问题 2001 (NO_OBJECT),数据 0,最佳匹配:‘DC=domain,DC=org,DC=za’^@

回溯 (13338):模块:Kernel::System::CustomerUser::LDAP::CustomerUserDataGet (v1.62) 行:614 模块:Kernel::System::CustomerUser::CustomerUserDataGet (v1.61.2.1) 行:283 模​​块:Kernel::System::CustomerAuth::Auth (v1.34.2.2) 行:166 模块:Kernel::System::Web::InterfaceCustomer::Run (v1.56.2.5) 行:203
模块:ModPerl::ROOT::ModPerl::Registry::srv_otrs_bin_cgi_2dbin_customer_2epl::handler (未知版本) 行:46 模块:(eval) (v1.43.2.1) 行:204
模块:ModPerl::RegistryCooker::run (v1.43.2.1) 行:204 模块:ModPerl::RegistryCooker::default_handler (v1.43.2.1) 行:170
模块:ModPerl::Registry::handler (v1.99) 行:31

我有一个主域控制器,10.0.1.26其名称为:servername.domain.org.za。Windows2000 之前的域名为MYSERVER,也是 Windows2000 之前的服务器名称。
我创建了一个用户otrs,该用户位于 OU(组织单位)中D1OU/D1Users,是该组的成员Domain users,并且拥有一个永不过期的密码(当然不是“密码”,而是更强大的密码)。

我尝试过
我曾尝试Winbind与 Active Directory 对话,但它拒绝,除非我使用 Windows2000 之前的凭据(MYSERVER 作品domain.org.za 不起作用)。
除此之外,Winbind 可以毫无问题地从 Active Directory 中获取数据。

我该如何解决?
我不介意在文件中提供 Windows2000 之前的域规范Config.pm,但我不知道格式。
我很想输入正确的 LDAP 参数,但也许我遗漏了一些东西。
所以问题是,我需要更改什么Config.pm才能让 OTRS 针对我的 AD 进行身份验证?

答案1

你可能会更幸运地使用集中化或者PowerBroker 开放处理 Windows 身份验证。如果 OTRS 使用 PAM,它应该可以工作。

相关内容