LDAP Synchronisation der Customer

Hilfe zu OTRS Problemen aller Art
Post Reply
Boogeyman
Znuny newbie
Posts: 14
Joined: 06 May 2010, 15:26
Znuny Version: 2.4.7 / 3.0.0 Beta 4

LDAP Synchronisation der Customer

Post by Boogeyman »

Hallo erstmal,

ich bin seit dieser Woche an OTRS dran als internes Projekt in unserm Unternehmen. Prinzipiell sind die Anforderungen wie folgt:
ein Team von 5 Admins soll einen Mitarbeiterpool von 240 Mitarbeitern betreuen, deshalb wollen wir die Mitarbeiter als Customer via LDAP ins OTRS synchronisieren.

Login am Webfrontend soll es für die Customer nicht geben da wird die Tickets ausschliesslich per Hotline erfassen und selbst verfassen wollen.

Ich habe nun folgenden Quellcode in meine Config.pm eingefügt und es funktioniert leider nicht wie gewollt.

Code: Select all

 # This is an example configuration for an LDAP auth. backend.
       # (take care that Net::LDAP is installed!)
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'XXXXXXXXX';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=XXXXXXXXX,ou=XXXXX,ou=USERS,ou=IT';
    $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'} = 'administrator';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'XXXXX';

    # CustomerUser
    # (customer user ldap backend and settings)
    $Self->{CustomerUser} = {
    Name => "LDAP Datenquelle",
    Module => "Kernel::System::CustomerUser::LDAP",
    Params => {
    # ldap host
    Host => "XXXXXXXX",

    # ldap base dn
    BaseDN => "dc=XXXXX,ou=XXXXX,ou=USERS,ou=IT",

    # 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=otrs_admin,ou=Service_Batch,dc=domain,dc=de",
    UserPw => "XXXXXX",

    # in case you want to add always one filter to each ldap query, use
    # this option. e. g. AlwaysFilter => "(mail=*)" or AlwaysFilter => "(objectclass=AlwaysFilter => ´´,
    # if your frontend is e. g. iso-8859-1 and the charset of your
    # ldap server is utf-8, use this options (if not, ignore it)
    # SourceCharset => "utf-8",
    # DestCharset => "iso-8859-1",
    # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
    Params => {
    port => 389,
    timeout => 120,
    async => 0,
    version => 3,
    },
    },
    # customer uniq 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 life in sec. - cache any database queris
    # CacheTTL => 0,
    Map => [
    # note: Login, Email and CustomerID needed!
    # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-[ "UserSalutation", "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 ],
      ],
   
   
Als Fehlermeldung am Apache kommt lediglich folgendes:

Message: First bind failed! 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl?Action=Logout

UND:

ERROR: OTRS-CGI-10 Perl: 5.10.0 OS: MSWin32 Time: Fri May 7 08:05:08 2010, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl?Action=Logout

Kann mir da jemand helfen??

Grüße
Boog
OTRS 2.4.7, MySQL
Win 2008 SRV. R2
OTRS 3.0.0 Beta 4, MySQL
Win 2008 SRV. R2
jojo
Znuny guru
Posts: 15019
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: LDAP Synchronisation der Customer

Post by jojo »

Nutz den DN des Administrators und nicht den samaccountname.
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Boogeyman
Znuny newbie
Posts: 14
Joined: 06 May 2010, 15:26
Znuny Version: 2.4.7 / 3.0.0 Beta 4

Re: LDAP Synchronisation der Customer

Post by Boogeyman »

ok, also ich glaube ich habe grundlegend ein Problem mit der ganzen Geschichte :P,

also ich gebe dort an: Administrator.domainname?

Ich befürchte langsam aber sicher, dass das ganze ne nummer zu gross ist um einfach mal learning by doing einzusteigen :P.

Gruss Boogey
OTRS 2.4.7, MySQL
Win 2008 SRV. R2
OTRS 3.0.0 Beta 4, MySQL
Win 2008 SRV. R2
Boogeyman
Znuny newbie
Posts: 14
Joined: 06 May 2010, 15:26
Znuny Version: 2.4.7 / 3.0.0 Beta 4

Re: LDAP Synchronisation der Customer

Post by Boogeyman »

Ok, also ich hab mich nochmal ein wenig durchgelesen hier im Forum, habe noch ein paar ähnliche Threads gefunden und ein wenig rumgespielt,
leider ohne erfolg, bzw nu hab ich noch mehr fehlermeldungen :P

mein Quellcode sieht nun wie folgt aus:

Code: Select all

 # This is an example configuration for an LDAP auth. backend.
       # (take care that Net::LDAP is installed!)
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'domaincontroller.domain';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=domain.local,dc=de';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'administrator';

       # 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'} = 'cn=administrator,cn=IT,dc=domain,dc=de';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'XXXXX';

    # CustomerUser
    # (customer user ldap backend and settings)
    $Self->{CustomerUser} = {
    Name => "LDAP Datenquelle",
    Module => "Kernel::System::CustomerUser::LDAP",
    Params => {
    # ldap host
    Host => "domaincontroller.domain",

    # ldap base dn
    BaseDN => "dc=domain,dc=de",

    # 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=administrator,cn=IT,dc=domain,dc=de",
    UserPw => "xxxxxx",

    # in case you want to add always one filter to each ldap query, use
    # this option. e. g. AlwaysFilter => "(mail=*)" or AlwaysFilter => "(objectclass=AlwaysFilter => ´´,
    # if your frontend is e. g. iso-8859-1 and the charset of your
    # ldap server is utf-8, use this options (if not, ignore it)
    # SourceCharset => "utf-8",
    # DestCharset => "iso-8859-1",
    # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
    Params => {
    port => 389,
    timeout => 120,
    async => 0,
    version => 3,
    },
    },
    # customer uniq id
    CustomerKey => 'administrator.domain',

    # customer #
    CustomerID => 'uid',
    CustomerUserListFields => ['administrator','cn','mail','uid'],
    CustomerUserSearchFields => ['administrator', '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 life in sec. - cache any database queris
    # CacheTTL => 0,
    Map => [
    # note: Login, Email and CustomerID needed!
    # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-[ "UserSalutation", "Title", "title", 1, 0, "var", ´´, 0 ],
    [ "UserFirstname","Vorname", "Firstname", "givenname", 1, 1, "var", "", 0 ],
    [ "UserLastname","Nachname", "Lastname", "sn", 1, 1, "var", "", 0 ],
    [ "UserLogin","Benutzeranmeldename", "Username", "uid", 1, 1, "var", "", 0 ],
    [ "UserEmail","E-Mail", "Email", "mail", 1, 1, "var", "", 0 ],
    [ "UserCustomerID","Initialien", "CustomerID", "mail", 0, 1, "var", "", 0 ],
    # [ "UserCustomerIDs", "CustomerIDs", "second_customer_ids", 1, 0, "var", "", 0 ],
    [ "UserPhone","Rufnummer", "Phone", "telephonenumber", 1, 0, "var", "", 0 ],
    [ "UserAddress","Adresse", "Address", "postaladdress", 1, 0, "var", "", 0 ],
    [ "UserComment","Beschreibung", "Comment", "description", 1, 0, "var", "", 0 ],
      ],
    };
Fehlermeldungen setzen sich wie folgt zusammen:

[Fri May 07 10:55:19 2010] [error] [client 192.168.110.47] ERROR: OTRS-CGI-10 Perl: 5.10.0 OS: MSWin32 Time: Fri May 7 10:55:19 2010, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client 192.168.110.47] , referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Message: First bind failed! 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] , referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Traceback (4840): , referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Module: Kernel::System::CustomerUser::LDAP::new (v1.53) Line: 151, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Module: Kernel::System::CustomerUser::new (v1.55) Line: 105, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Module: Kernel::Modules::AdminCustomerUser::new (v1.57) Line: 37, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Module: Kernel::System::Web::InterfaceAgent::Run (v1.43.2.1) Line: 804, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] Module: C:/Program Files (x86)/OTRS/OTRS/bin/cgi-bin/index.pl (v1.88) Line: 48, referer: http://xxx.xxx.xxx.xxx/otrs/index.pl
[Fri May 07 10:55:19 2010] [error] [client xxx.xxx.xxx.xxx] , referer: http://xxx.xxx.xxx.xxx/otrs/index.pl

jedes mal bei Clientzugriff, meine Workstation ist auch explizit als Client in der Fehlerlog hinterlegt.

ich weis grad nich mehr weiter um ehrlich zus ein.

Gruß
Boog
OTRS 2.4.7, MySQL
Win 2008 SRV. R2
OTRS 3.0.0 Beta 4, MySQL
Win 2008 SRV. R2
meilon
Znuny newbie
Posts: 52
Joined: 28 Apr 2010, 15:16
Znuny Version: 5.0.18
Location: Leinfelden-Echterdingen

Re: LDAP Synchronisation der Customer

Post by meilon »

Boogeyman wrote:

Code: Select all

    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=administrator,cn=IT,dc=domain,dc=de';
....
    UserDN => "cn=administrator,cn=IT,dc=domain,dc=de",
Die beiden Zeilen gefallen mir nicht. IT ist doch sicher eine OU, oder?

Dann nur sicherheitshalber: Wenn du "domaincontroller.domain" schreibst, hast du in deiner Config auch wirklich den FQDN zum Domaincontroller drin, also server01.domain.de?

Grüße
meilon
OTRS 5.0.18 :: ITSM auf Apache 2.4.18 (Ubuntu), Perl 5.22.1 mit Ubuntu Server 16.04.2
Agent Auth über ActiveDirectory, Customer Auth mit Kerberos SingleSignOn über ActiveDirectory
Boogeyman
Znuny newbie
Posts: 14
Joined: 06 May 2010, 15:26
Znuny Version: 2.4.7 / 3.0.0 Beta 4

Re: LDAP Synchronisation der Customer

Post by Boogeyman »

OU? meinst du eine Gruppe in der AD?
wenn ja dann is das korrekt, die frage ist ob ich die komplette abstufung der gruppen bzw. ordner der AD abbilden muss, sprich: gruppe1.untergruppe.zielgruppe?
oder ob die gruppe direkt, also IT in dem Fall reicht.

Meines Wissens ist der FQDN korrekt, es wäre: domaincontroller.domainname.local, das sollte eigentlich reichen da der OTRS hostserver in der domäne ist.

Grüße
Boog
OTRS 2.4.7, MySQL
Win 2008 SRV. R2
OTRS 3.0.0 Beta 4, MySQL
Win 2008 SRV. R2
meilon
Znuny newbie
Posts: 52
Joined: 28 Apr 2010, 15:16
Znuny Version: 5.0.18
Location: Leinfelden-Echterdingen

Re: LDAP Synchronisation der Customer

Post by meilon »

Ich meine OU und keine Gruppe. OUs sind Quasi die Unterordner im Active Directory Baum. Und ja, es muss die komplette Abstufung sein. Zur Anmeldung wird wie schon gesagt der DN benötigt. Das steht für Distinguished Name, also der kennzeichnende Name. Und dazu gehört der komplette Pfad im AD Baum.
OTRS 5.0.18 :: ITSM auf Apache 2.4.18 (Ubuntu), Perl 5.22.1 mit Ubuntu Server 16.04.2
Agent Auth über ActiveDirectory, Customer Auth mit Kerberos SingleSignOn über ActiveDirectory
Boogeyman
Znuny newbie
Posts: 14
Joined: 06 May 2010, 15:26
Znuny Version: 2.4.7 / 3.0.0 Beta 4

Re: LDAP Synchronisation der Customer

Post by Boogeyman »

Ok,

habe nun die komplette abstufung eingetragen, immernoch dieselbe fehlermeldung.
vielleicht hat ja noch jemand anderst eine idee??

Gruss
boog
OTRS 2.4.7, MySQL
Win 2008 SRV. R2
OTRS 3.0.0 Beta 4, MySQL
Win 2008 SRV. R2
Boogeyman
Znuny newbie
Posts: 14
Joined: 06 May 2010, 15:26
Znuny Version: 2.4.7 / 3.0.0 Beta 4

Re: LDAP Synchronisation der Customer

Post by Boogeyman »

Gute Neuigkeiten :)

also die Synchronisation hat nun funktioniert, habe einen extra User angelegt, mit diesem hat die autentifizierung schlussendlich auch funktioniert und nun kann ich sämtliche Kunden im LDAP finden.

Was mich allerdings noch beunruhigt ist die Tatsache das mein Fehlerlog förmlich zugespamt wird bei jeder Abfrage. Funktion ist tadellos da aber es hagelt eben Fehler,

Beispiel:

[Mon May 10 12:03:16 2010] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $_ in -d at C:/PROGRA~2/OTRS/StrawberryPerl/perl/lib/CGI.pm line 4083., referer: http://xxx.xxx.xxx.xxx/otrs/index.pl?Ac ... icketID=17

diese "Use of uninitialized value" Fehlermeldungen bekomme ich bei jedem Zugriff auf das LDAP, in diesem Fall wars das Schliessen eines Tickets. Ich nehme an das deshalb auch die Autoreply`s die ich eingerichtet habe nicht funktionieren.
Was kann das dann im Endeffekt noch sein???

Gruß
Boog
OTRS 2.4.7, MySQL
Win 2008 SRV. R2
OTRS 3.0.0 Beta 4, MySQL
Win 2008 SRV. R2
Post Reply