OTRS 3.3.5 und LDAP Anbindung

Hilfe zu Znuny Problemen aller Art
Locked
SnuSnu
Znuny newbie
Posts: 4
Joined: 18 Mar 2014, 10:50
Znuny Version: 3.3.5

OTRS 3.3.5 und LDAP Anbindung

Post by SnuSnu »

Hallo Zusammen

Ich habe vor kurzem OTRS 3.3.5 auf einem Windows 2008 R2 Server installiert und zusätzliche das Modul Kix4Otrs hinzugefügt. Nun versuche ich schon seit Tagen die Ldap Anbindung zu konfigurieren, jedoch ohne erfolg. Für die LDAP Anbindung habe ich folgendes How-To befolgt (http://www.otrs.com/webinar-ldap-integr ... s/?lang=de). Ich erhalte folgende Fehlermeldung im OTRS.log File

Code: Select all

[Tue Mar 18 10:02:44 2014][Error][Kernel::System::CustomerUser::LDAP::_Connect][206] First bind failed! Bad file descriptor


Hier noch meine config.pm

Code: Select all

# --
# Kernel/Config.pm - Config file for OTRS kernel
# Copyright (C) 2001-2013 xxx, http://otrs.org/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
#  Note:
#
#  -->> Most OTRS configuration should be done via the OTRS web interface
#       and the SysConfig. Only for some configuration, such as database
#       credentials and customer data source changes, you should edit this
#       file. For changes do customer data sources you can copy the definitions
#       from Kernel/Config/Defaults.pm and paste them in this file.
#       Config.pm will not be overwritten when updating OTRS.
# --

package Kernel::Config;

use strict;
use warnings;
use utf8;

sub Load {
    my $Self = shift;

    # ---------------------------------------------------- #
    # database settings                                    #
    # ---------------------------------------------------- #

    # The database host
    $Self->{'DatabaseHost'} = 'localhost';

    # The database name
    $Self->{'Database'} = "otrs";

    # The database user
    $Self->{'DatabaseUser'} = "otrs";

    # The password of database user. You also can use bin/otrs.CryptPassword.pl
    # for crypted passwords
    $Self->{'DatabasePw'} = 'Teq30uthdlrrrD';

    # The database DSN for MySQL ==> more: "perldoc DBD::mysql"
    $Self->{'DatabaseDSN'} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost}";

    # The database DSN for PostgreSQL ==> more: "perldoc DBD::Pg"
    # if you want to use a local socket connection
#    $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";
    # if you want to use a TCP/IP connection
#    $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};host=$Self->{DatabaseHost};";
    # if you have PostgresSQL 8.1 or earlier, activate the legacy driver with this line:
#    $Self->{DatabasePostgresqlBefore82} = 1;

    # The database DSN for Microsoft SQL Server - only supported if OTRS is
    # installed on Windows as well
#    $Self->{DatabaseDSN} = "DBI:ODBC:driver={SQL Server};Database=$Self->{Database};Server=$Self->{DatabaseHost},1433";

    # The database DSN for Oracle ==> more: "perldoc DBD::oracle"
#    $ENV{ORACLE_HOME} = '/u01/app/oracle/product/10.2.0/client_1';
#    $ENV{NLS_DATE_FORMAT} = 'YYYY-MM-DD HH24:MI:SS';
#    $ENV{NLS_LANG} = "american_america.utf8";

#    $Self->{DatabaseDSN} = "DBI:Oracle:sid=OTRS;host=$Self->{DatabaseHost};port=1522;";

    # ---------------------------------------------------- #
    # fs root directory
    # ---------------------------------------------------- #
    $Self->{Home} = 'C:/otrs/OTRS';

    # ---------------------------------------------------- #
    # insert your own config settings "here"               #
    # config settings taken from Kernel/Config/Defaults.pm #
    # ---------------------------------------------------- #
    # $Self->{SessionUseCookie} = 0;
    # $Self->{CheckMXRecord} = 0;



    # ---------------------------------------------------- #

    # ---------------------------------------------------- #
    # data inserted by installer                           #
    # ---------------------------------------------------- #

    $Self->{'LogModule'}          = 'Kernel::System::Log::File';
    $Self->{'LogModule::LogFile'} = 'C:/otrs/OTRS/var/log/otrs.log';
    # $DIBI$

# ----------------------------CustomerUser------------------------------
# (customer user ldap backend and settings)
    $Self->{CustomerUser} = {
        Name => 'LDAP Backend',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            # ldap host
            Host => 'server.test.intra',
            # ldap base dn
            BaseDN => 'OU=Users,OU=XY,DC=test,DC=intra',
            # search scope (one|sub)
            SSCOPE => 'sub',
            # The following is valid but would only be necessary if the
            # anonymous user does NOT have permission to read from the LDAP tree
            UserDN => 'CN=ldapuser,OU=Users,OU=XY,DC=test,DC=intra',
            UserPw => 'xy',
            # in case you want to add always one filter to each ldap query, use
            # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
            AlwaysFilter => '(mail=*)',
           # if both your frontend and your LDAP are unicode, use this:
            SourceCharset => 'utf-8',
            DestCharset   => 'utf-8',
            # if your frontend is unicode and the charset of your
            # ldap server is iso-8859-1, use these options.
            # SourceCharset => 'iso-8859-1',
            # DestCharset => 'utf-8',
            # die if backend can't work, e. g. can't connect to server
            Die => 0,
            # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
            Params => {
                port    => 389,
                timeout => 120,
                async   => 0,
                version => 3,
            },
        },
        # customer unique id
        CustomerKey => 'uid',
        # customer #
        CustomerID => 'mail',
        CustomerUserListFields => ['cn', 'mail'],
        CustomerUserSearchFields => ['uid', 'cn', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
        # show now own tickets in customer panel, CompanyTickets
        CustomerUserExcludePrimaryCustomerID => 0,
        # add a ldap filter for valid users (expert setting)
        # CustomerUserValidFilter => '(!(description=gesperrt))',
        # admin can't change customer preferences
        AdminSetPreferences => 0,
        # cache time to live in sec. - cache any ldap queries
        CacheTTL => 60*60,
        Map => [
            # note: Login, Email and CustomerID needed!
            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
            [ 'UserTitle',      'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',   'uid',             1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
            # [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
        ],
    };




    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    # end of your own config options!!!                    #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
}

# ---------------------------------------------------- #
# needed system stuff (don't edit this)                #
# ---------------------------------------------------- #

use base qw(Kernel::Config::Defaults);

# -----------------------------------------------------#


#----------- KIX tsunami framework -----------
# CustomPackageLibs ~#
use lib "C:/otrs/OTRS/KIXCore";
use lib "C:/otrs/OTRS/KIX4OTRS";
# EO CustomPackageLibs ~#
#----------- EO KIX tsunami framework -----------

1;
Ich habe bereits mit einem LDAP Browser die Verbindung und den LDAP User getestet und beides war erfolgreich. Wir haben nebenbei eine ältere OTRS Version im Einsatz, wo mit den gleichen Login Daten bzw. Verbindungsdaten, die Anbindung funktioniert. Könnt ihr mir weiterhelfen? Muss ich noch etwas bestimmtes einrichten oder in der Sysconfig etwas anpassen?

Gruss
Snu
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: OTRS 3.3.5 und LDAP Anbindung

Post by reneeb »

Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
SnuSnu
Znuny newbie
Posts: 4
Joined: 18 Mar 2014, 10:50
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by SnuSnu »

Ja diesen Link habe ich bereits angeschaut. Ich habe den Ordner StawberryPerl ausgetauscht, mit der OTRS Version bei der LDAP funktioniert. Leider funktioniert es trotzdem nicht.

Ich habe gesehen das die LDAP Vesion 0.60 installiert ist, weiss jemand wie ich diese deinstallieren kann und dafür die Version 0.56 installieren kann?
pababo
Znuny newbie
Posts: 3
Joined: 18 Mar 2014, 13:46
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by pababo »

Hallo SnuSnu,

ich schließe mich an.. Ich sitze auch schon Stunden davor und komme nicht weiter. Habe die config.pm für die Customer von nem funktionierenden System angepasst und übernommen.. Allerdings bekomme ich keine Customer angezeigt!
Wenn ich versuche die Agenten-Anmeldung via LDAP zu machen, dann bekomme ich den selben Fehler wie du (First bind failed! Bad file descriptor). Bei dem Customer bekomme ich weder einen Fehler angezeigt, noch die Kunden im Webinterface.

Ich habe auch v0.60 installiert und habe v3.3.4 auf nem Windows Server 2012 R2 laufen.

Da ein Kollege das selbe in einer anderen Domäne auch hat mit der selben OTRS und NET::LDAP Version, liegt die Vermutung nahe, dass es daran liegt. Aber genaueres konnte ich nicht rausfinden!
SnuSnu
Znuny newbie
Posts: 4
Joined: 18 Mar 2014, 10:50
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by SnuSnu »

Ich bin jetzt weiter gekommen ich habe die Datei inet6.pm aus dem Perl Ordner gelöscht. Nun scheint es irgendwie zu funktionieren, jedoch sind alle Einträge bei "Kunden" leer.

Folgende Meldung erscheint neu:

Code: Select all

[Tue Mar 18 16:06:22 2014][Error][Kernel::System::Auth::LDAP::Auth][119] Need User!
[Tue Mar 18 16:06:22 2014][Error][Kernel::System::User::UserLookup][847] Need UserLogin or UserID!
Habt ihr nochmals einen Tipp?
pababo
Znuny newbie
Posts: 3
Joined: 18 Mar 2014, 13:46
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by pababo »

Schau mal in die Kundenbenutzerverwaltung rein, steht da mehr??
dskit
Znuny newbie
Posts: 13
Joined: 18 Mar 2014, 10:52
Znuny Version: 3.2.12

Re: OTRS 3.3.5 und LDAP Anbindung

Post by dskit »

habe Ihr ActivePearl vor dem Update installiert? Wenn ja, in welches Verzeichnis? Auf C: oder in das OTRS\Strawberry?

zu dem Thema habe ich auch ein Ticket aufgemacht, komme aber nicht weiter!?!?!?!
SnuSnu
Znuny newbie
Posts: 4
Joined: 18 Mar 2014, 10:50
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by SnuSnu »

In der Kundenbenutzerverwaltung, sehe ich das Benutzer hinzugefügt wurden... alle Felder sind jedoch leer.
Wenn ich aber ein neues Ticket eröffnen und bei Kundenbenutzer einen Namen eingebe, werden mir die User aus dem AD vorgeschlagen.

Das bedeutet die Benutzer aus dem AD wurden hinzugefügt...habe ich evtl. einen Fehler im Skript?
pababo
Znuny newbie
Posts: 3
Joined: 18 Mar 2014, 13:46
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by pababo »

Also ich für meinen Teil habe soeben das Problem gelöst..

Ich habe von meiner alten OTRS Installation von vor 1-2 Monaten den PERL Ordner genommen, übergebraten und bei dem Strawberry Perl Ordner das selbe Spiel.

Danach habe ich einen Eintrag im Netz gefunden, dass der Search User in der Gruppe "Windows Authorization Access Group" sein muss.

Was genau jetzt von beidem geholfen hat kann ich leider nicht so genau sagen, aber jetzt geht es.
Eventuell hilft euch dass ja auch.

Achso ich würde nochmal checken, ob BaseDN und UserDN wirklich 100% richtig eingetragen sind, ich hatte auch einen Fehler beim SearchUser (UserDN habe ich den logon-name und nicht den CN genommen..)
dskit
Znuny newbie
Posts: 13
Joined: 18 Mar 2014, 10:52
Znuny Version: 3.2.12

Re: OTRS 3.3.5 und LDAP Anbindung

Post by dskit »

Hallo,

bei uns hat das nicht geholfen! Wir haben zudem nur eine Strawberry\Perl Verzeichnis und Active Perl war bis dato nicht installiert.
Die Search User Einträge sind auch richtig, funktionieren zumindest mit dem LDAP Administrator....

$Self->{CustomerUser} = {
Name => 'LDAP Data Source',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
# ldap host
Host => 'xxx.xxxxxx', <-Domänen Name
# ldap base dn
BaseDN => 'DC=xxx,DC=xxxxxx',
# search scope (one|sub)
SSCOPE => 'sub',
# The following is valid but would only be necessary if the
# anonymous user does NOT have permission to read from the
#LDAP tree
UserDN => 'CN=s-otrs,OU=xxxxxxxx,OU=xxxxx,OU=DSK,DC=xxx,DC=xxxxxx',
UserPw => 'xxPasswortxxx',
# in case you want to add always one filter to each ldap
#query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or
#AlwaysFilter => '(mail=*@*.de)',
#AlwaysFilter => '',
AlwaysFilter => '(objectclass=user)',
# if both your frontend and your LDAP are unicode, use
#this:
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
# if your frontend is unicode and the charset of your
# ldap server is iso-8859-1, use these options.
# SourceCharset => 'iso-8859-1',
# DestCharset => 'utf-8',
# Net::LDAP new params (if needed - for more info see
# perldoc Net::LDAP)
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,


Das Fehler muss doch irgendwie weg zu bekommen sein?!
dskit
Znuny newbie
Posts: 13
Joined: 18 Mar 2014, 10:52
Znuny Version: 3.2.12

Re: OTRS 3.3.5 und LDAP Anbindung

Post by dskit »

Gibt es denn keine Lösung?
Oder hat jemand einen Installtionsleitpfaden für den Upgrade in Windows?
blackfist
Znuny newbie
Posts: 2
Joined: 28 Mar 2014, 15:48
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by blackfist »

Hallo,

ist schon jemand weitergekommen bei der LDAP Anbindung?

Bei mir läuft OTRS 3.3.5 mit Active Perl Version 5.16.3 Build 1603 auf einem Windows Server 2012 R2 mit IIS.
Habe die Anbindung mit dem Perl NET:LDAP Modul in der Version 0.60 und 0.57 getestet - leider bei beiden Versionen der selbe Fehler:

"[Error][Kernel::System::CustomerUser::LDAP::_Connect][197] First bind failed! Bad file descriptor"

Wäre für jeden Tip dankbar,

lg
Andre
blackfist
Znuny newbie
Posts: 2
Joined: 28 Mar 2014, 15:48
Znuny Version: 3.3.5

Re: OTRS 3.3.5 und LDAP Anbindung

Post by blackfist »

Hallo,

nach einigen Stunden suchen bin ich auf den Fehler in unserem System gestoßen - hoffe das ich mit dieser Lösung auch anderen hier weiter Helfen kann.

Bei der Installation des ActivePerl sind anscheinend nicht alle Perl Handlerzuordnungen im IIS richtig angelegt worden nach manueller Konfiguration funktioniert nun die Anbindung an unser AD.

Vollständigkeit halber hier sämtliche von mir durchgeführten Konfigurationsänderungen am IIS:

Anwendungspools:

-DefaultAppPool
-32Bit Aktiviert
-Maximale Anzahl der Arbeitsprozesse auf 2 erhöt

-OTRS
-32Bit Aktiviert
-Maximale Anzahl der Arbeitsprozesse auf 2 erhöt

Server Handlerzuordnungen für folgende Anforderungspfade erstellt:
- *.pl Modul: IsapiModul -Ausführbare Datei: PerlEx30.dll
- *.plx Modul: IsapiModul -Ausführbare Datei: PerlEx30.dll
- *.plex Modul: IsapiModul -Ausführbare Datei: PerlEx30.dll
- *.cgi Modul: IsapiModul -Ausführbare Datei: PerlEx30.dll

Anpassungen an der Config.pm

Code: Select all

    $Self->{CustomerUser} = {
        Name => 'AD',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'DC-1',
            BaseDN => 'dc=xxx, dc=xxxx, dc=xx',
            SSCOPE => 'sub',
            UserDN => ''Search User,
            UserPw => 'Password',
            SourceCharset => 'utf-8',
            DestCharset   => 'utf-8',
            Die => 1,
            CustomerKey => 'sAMAccountName',
            CustomerID => 'mail',
            CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
            CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
#          CustomerUserSearchPrefix => '',
#          CustomerUserSearchSuffix => '*',
            CustomerUserSearchListLimit => 400,
            CustomerUserPostMasterSearchFields => ['mail'],
            CustomerUserNameFields => ['givenname', 'sn'],
#          CustomerUserExcludePrimaryCustomerID => 0,
           # add a ldap filter for valid users (expert setting)
           CustomerUserValidFilter => '(sAMAccountType=805306368)',
           # admin can't change customer preferences
           # AdminSetPreferences => 1,
           # cache time to live in sec. - cache any ldap queries
           # CacheTTL => 0,
           Map => [
            # note: Login, Email and CustomerID needed!
            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
            # [ 'UserTitle',      'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Login',      'sAMAccountName',  1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
            # [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
            [ 'UserMobile',   'Mobile',  'mobile',	 1, 0, 'var', '', 0 ],
            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
            [ 'UserRoom',   'Room',  'physicalDeliveryOfficeName',  1, 0, 'var', '', 0 ],
            [ 'UserManager',    'Manager',    'manager',   1, 0, 'var', '', 0 ],
        ],
    };
Avaatar
Znuny newbie
Posts: 43
Joined: 12 Feb 2009, 10:26
Znuny Version: 5.0.17

Re: OTRS 3.3.5 und LDAP Anbindung

Post by Avaatar »

Hallo zusammen,

ich stand vor dem gleichen Problem. Ich bekam auch immer diese Meldung:
[Thu Apr 3 12:38:10 2014][Error][Kernel::System::Auth::Sync::LDAP::Sync][138] First bind failed! Bad file descriptor

wenn ich mich als Agent einloggen wollte. Crythias Tip mit
inet4 => 1,

half mir nicht weiter, brachte mich aber auf die richtige Spur. Wir benutzen Active Perl, ich habe mir also den Package Manager angesehen und folgende Pakete deinstalliert:
IO-Socket-INET6 (hängt von Socket6 ab)
Socket6

Danach habe ich den IIS Appool OTRS neu gestartet(weiß nicht ob der Schritt nötig ist), danach lief alles und ich konnte mich einloggen.
Vielleicht hilft das jemandem.

Gruß Helge
Produktiv:
OTRS: 5.0.17 + ITSM
OS: Ubuntu 14.04 LTS, Exchange 2010
Test:
OTRS: 5.0.17 + ITSM
OS: Ubuntu 14.04 LTS, Exchange 2010
rexxes
Znuny newbie
Posts: 19
Joined: 01 Apr 2014, 16:00
Znuny Version: 5.0.x
Real Name: Kevin

Re: OTRS 3.3.5 und LDAP Anbindung

Post by rexxes »

Ich hatte das selber Problem wie du. Bei mir war es eine Kleinigkeit in der Config.pm.

Versuch mal folgende Zeile zu ändern : UserDN => 'CN=ldapuser,OU=Users,OU=XY,DC=test,DC=intra', und mach ldapuser@deinedomain daraus.
Desweiteren würde ich nochmal genau schauen ob du alles richtig eingetragen hast. Wir haben natürlich kein Zugriff auf dein LDAP und können dir schlecht sagen ob du eine OU ö.ä. falsch eingetragen hast. Aber wenn der first bind failed kann man ziemlich sicher davon ausgehen, dass entweder bei deinen Logindaten vom LDAP SearchUser nicht stimmen oder du deine DN falsch gesetzt hast. Hat bei mir auch n paar Tage gedauert bis man so nen kleinen Fehler in der Config findet , aber kopier dir bestenfalls nochmal alles ausm LDAP Browser raus
madse
Znuny newbie
Posts: 7
Joined: 06 Jun 2014, 13:30
Znuny Version: 3.3.7

Re: OTRS 3.3.5 und LDAP Anbindung

Post by madse »

Moin Zusammen,

der Hinweis von Avaatar hat mir geholfen, vielen Dank dafür!

Grüße,
Locked