Hallo Thorsten,

bei  $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} =  
> '[email protected]';

gibst du einen User an mit de OTRS dein LDAP durchsucht.

und 
no LDAP entry  
> found!

heisst schlicht und einfach dass es den User mit dem du dich versucht hast 
anzumelden nicht gefunden wurde.
Dass kann natürlich mehrere Ursachen haben. Entweder es gibt den einfach 
nicht:-) oder es gibt ihn nicht in dem Container in dem du nach ihm suchst.
cn=Domänen-Benutzer,ou=users,dc=ABC,dc=DOMAIN,dc=COM'

cn=Domänen-Benutzer kannst du m.E. nach weg lassen, und ich würde es andersrum 
schreiben.

dc=ABC,dc=DOMAIN,dc=COM, ou=users

ob die Reihenfolge nötig ist weiss ich nicht 100%ig, bei mir stehts so rum und 
funktioniert:-)

Im Anhang hab ich dir noch ne Anleitung drangepackt die ich mal dafür 
geschrieben hab, vioelleicht hilft dir die ja weiter.

Boris


-------- Original-Nachricht --------
> Datum: Fri, 30 Mar 2012 09:43:18 +0200
> Von: "Thorsten E" <[email protected]>
> An: [email protected]
> Betreff: [otrs-de] Customer.pl Anmeldung funktioniert nicht.

> Hallo.
> 
> Ich hab ein Problem mit der Anmeldung von Benutzern an der customer.pl die
>  
> sich über LDAP (Active Directory) Authentifizieren.
> So ist meine Config:
> 
> 
>               $Self->{'Customer::AuthModule'} = 
> 'Kernel::System::CustomerAuth::LDAP';
>               $Self->{'Customer::AuthModule::LDAP::Host'} = 
> 'AD.ABC.DOMAIN.COM';
>               $Self->{'Customer::AuthModule::LDAP::BaseDN'} =  
> 'dc=ABC,dc=DOMAIN,dc=COM';
>               $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
>               $Self->{'Customer::AuthModule::LDAP::GroupDN'} =  
> 'cn=Domänen-Benutzer,ou=users,dc=ABC,dc=DOMAIN,dc=COM';
>               $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
>               $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
>               $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} =  
> '[email protected]';
>               $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 
> 'PASSWORT';
>               $Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';
> 
> 
> Wenn ich mich nun versuche mich anzumelden bekomm ich die Meldung im  
> logfile:
> [Fri Mar 30 08:54:32  
> 2012][Notice][Kernel::System::CustomerAuth::LDAP::Auth] CustomerUser:  
> [email protected] authentication failed, no LDAP entry  
> found!BaseDN='dc=ABC,dc=DOMAIN,dc=COM',  
> Filter='([email protected])', (REMOTE_ADDR: ::1).
> 
> Das bedeutet für mich, dass ich mich nicht mit der eMail-Adresse anmelden
>  
> kann sondern mit dem sAMAccountName. OK.
> 
> Wenn ich es mit dem sAMAccountName probiere bekomme ich diese Meldung im  
> Log:
> [Fri Mar 30 08:57:40  
> 2012][Error][Kernel::System::CustomerAuth::LDAP::Auth][282] Search failed!
>  
> base='cn=Domänen-Benutzer,ou=users,dc=ABC,dc=DOMAIN,dc=COM',  
> filter='(member=CN=Helpdesk,OU=Systembenutzer,OU=User,OU=STANDORT,DC=ABC,DC=DOMAIN,DC=COM)',
>  
> Success
> 
> Was das Success heißt weiß ich nicht, ich lese daraus aber, dass er in
> der  
> Gruppe "Domänen-Benutzer" den User nicht findet.
> 
> Kann mir jemand helfen?
> 
> Danke, Thorsten
> 
> -- 
> OTRS 3.1.2
> Windows Server 2008 R2 64bit
> MSSQL 2005
> ActivePerl 5.14.2.1402
> IIS 7.5
> ---------------------------------------------------------------------
> OTRS mailing list: otrs-de - Webpage: http://otrs.org/
> Archive: http://lists.otrs.org/pipermail/otrs-de
> To unsubscribe: http://lists.otrs.org/mailman/listinfo/otrs-de
# Hallo Admins,

# bei mir hat es ziemlich lange gedauert bis ich eine LDAP Anbindung 
hinbekommen habe.
# Es hat mich viele Stunden Recherche und bestimmt einige Jahre meines Lebens 
gekostet:-)
# Das versuche ich euch hiermit zu ersparen.
# eine LDAP für Dummies gabs schonmal aber diese hier ist ein bißchen 
aufgeräumter:-)

# Das alles hab ich im OTRS- Forum (http://forums.otrs.org/) und er Mailing- 
Liste (http://www.otrs.org/lists/) gelernt und versuch es hier mal etwas 
zusammen zu raffen.
# Im handbuch Version 3.1 ist es aber mittlerweile auch sehr gut beschrieben. 
Entweder war es inden vorangegangenen Versionen nicht so klar beschrieben oder 
ich verstehe es erst jetzt:-)

# Um LDAP erstmal grundlegend zu verstehen hat mir diese Seiten hier sehr 
geholfen.
# Lest euch das mal durch... das spart sehr viel Zeit und viele Fehlversuche.

# http://www.selfadsi.de/ldap-path.htm#DNs
# http://www.selfadsi.de/bind.htm
# http://www.selfadsi.de/search.htm


# ladet euch einem LDAP- Browser runter z.B. hier 
http://www.ldapadministrator.com/
# damit wird es wesentlich einfacher
# und vielleicht einen anständigen Editor, ich hab Notepad++, hilft auch viele 
Tippfehler (vergessene ' usw.) zu vermeiden.

# In diesem Sinne hier eine Beispielconfig die euch hoffentlich bei der LDAP 
Anbindung hilft. 
# Ich werd Sie mit Kommentaren vollmüllen damit die einzelnen Punkte klarer 
werden, zumindest hat es da bei mir gehakt...
# Diese Config ist bestimmt nicht perfekt und kann sicherlich noch verbessert 
werden, aber sie funtioniert:-)


# Hier steht überall 1 hinter (AuthModule1, Host1, ...) 
# habe ich drin gelassen weil ich mehrere ADs abfrage und auch mehrere Firmen 
im OTRS habe
# wenn ihr nur eine habt kann die 1 überall weg. Ansonsten müsst ihr den ganzen 
Block halt pro Firma anlegen und einfach durchnummerieren

# Aber hier steht ein wichtiger Beitrag von jojo
# http://forums.otrs.org/viewtopic.php?f=17&t=7423
# da bin ich auch drauf reingefallen bezüglich der Nummerierung, muss man halt 
erst mal wissen:-)

# ich hab in dieser Versionmal eine zweite Abfrage drin gelassen, damit man 
sieht wie es sich aufbaut.


#$Self->{'AuthModule::LDAP::Host1'} = 'dc.Firma1.local';
#...
#...
#...

#$Self->{'AuthModule::LDAP::Host2'} = 'dc.Firma2.local'; 
#...
#...
#...


#Bei uns sind es aktuell fünf aber es wiederholt sich immer nur, also:
#$Self->{'AuthModule::LDAP::Host4'} = 'dc.Firma1.local';
#...
#...
#...

#$Self->{'AuthModule::LDAP::Host4'} = 'dc.Firma2.local'; 
#...
#...
#...
# usw.






#--------------------------------------------------------------------------------------------
#                                            Firma1                             
           #
#--------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------
#                                   Agenten Authentifizeirung                   
            #
#--------------------------------------------------------------------------------------------
$Self->{'AuthModule1'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host1'} = 'dc.Firma1.local'; #hier kann auch die IP 
des DCs stehen. aber sinvollerweise hat man ja mehr als einen:-)
$Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=Firma1,dc=local';# lest euch die 
Seiten die ich oben verlinkt habe durch,
# dann wird DN,OU, DC usw. alles klar:-) 
$Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName';
 #$Self->{'AuthModule::LDAP::GroupDN1'} = 
'CN=otrsagents,OU=Gruppen,DC=Firma,DC=local';       # nur Mitlieder dieser 
Gruppe dürfen sich einloggen, ich habs auskommentiert weil ich es bei uns nicht 
filtere.
 #$Self->{'AuthModule::LDAP::AccessAttr1'} = 'member';                          
              # bei 2008er Domänen ist es 'member' bei 2003er ist es 
'memberUID'*
$Self->{'AuthModule::LDAP::SearchUserDN1'} = '[email protected]';  # hier 
geht es auch mit dem user Principal Name, 
        # oder eben die DN des Bindusers, war bei mir ne böse Falle weil ich es 
nicht wörtlich genug genommen habe. Die SearchUserDN ist nicht die DN 
        # in der der User liegt sondern die eindeutige des Users, das gleiche 
gilt für die GroupDNs
        # der Search User muss Mitglied in "Domänen-Benutzer" und in 
"Windows-Authentifizierungszugriffgruppe" sein
        # sähe dann ungefähr so aus
#$Self->{'AuthModule::LDAP::SearchUserDN1'} = 
'CN=otrsldap,CN=Users,DC=Firma1,DC=local'; 

$Self->{'AuthModule::LDAP::SearchUserPw1'} = 'Password';
#--------------------------------------------------------------------------------------------
#                                  Kunden Authentifizeirung                     
            #
#--------------------------------------------------------------------------------------------
  $Self->{'Customer::AuthModule1'} = 'Kernel::System::CustomerAuth::LDAP';
  $Self->{'Customer::AuthModule::LDAP::Host1'} = 'dc.Firma1.local';
  $Self->{'Customer::AuthModule::LDAP::BaseDN1'} = 'DC=Firma1, DC=local';
  $Self->{'Customer::AuthModule::LDAP::UID1'} = 'sAMAccountName';
                #$Self->{'Customer::AuthModule::LDAP::GroupDN1'} = 
'CN=otrscustomer,CN=Users,DC=Firma,DC=local'; 
                # das gleiche wie bei den Agents nur wer in der Gruppe 
'otrscustomer' ist darf sich einloggen, bei uns ist es nicht so, deswegen 
auskommantiert:-)
  $Self->{'Customer::AuthModule::LDAP::SearchUserDN1'} = 
'[email protected]';
  $Self->{'Customer::AuthModule::LDAP::SearchUserPw1'} = 'Password';
#--------------------------------------------------------------------------------------------
 
#                                     Kundendaten                               
            #
#--------------------------------------------------------------------------------------------
   $Self->{CustomerUser1} = {
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
      Host => 'dc.Firma1.local',
      BaseDN => 'DC=Firma1, DC=local',# hier die DN in der eure User liegen, 
kommt halt drauf an wie eurer AD strukturiert ist
      SSCOPE => 'sub',
      UserDN => '[email protected]',
      UserPw => 'Passwort123',
          AlwaysFilter =>  '(&(objectclass=user)(mail=*.*@Firma1.de))',
                # falls ihr was ausschliessen wollt geht das mit 
(!(ausgeschlossenes Attribut)):
                # AlwaysFilter =>  
'(&(objectclass=user)(mail=*.*@Firma.de)(!((was auch immer)))',
    },
    CustomerKey => 'sAMAccountName',
    CustomerID => 'mail',
    CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    Map => [
        
        # hier könnt ihr euch LDAP Atribute Mappen. Firma2 (unten) hat ein 
Besipiel drin.
        # da wird die FAX-Nummer ins Kommentarfeld gemappt
        
      # 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' ],
    ],
  };


 
#--------------------------------------------------------------------------------------------
 #                                      Firma1 Ende                             
            #
 
#--------------------------------------------------------------------------------------------
 
 
 
 # Das wars:-)
 # Ich hoffe es hilft euch ein bißchen.
 # Konstruktive Kritik und Feedback sind natürlich immer willkommen!
 
 
 
 
 # Hier noch die zweite "Abfrage" mal ohne Kommnetare (machst direkt 
übersichtlicher:-)).  
 
#--------------------------------------------------------------------------------------------
#                                            Firma2                             
           #
#--------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------
#                                   Agenten Authentifizeirung                   
            #
#--------------------------------------------------------------------------------------------
$Self->{'AuthModule2'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host2'} = 'dc.Firma2.local'; 
$Self->{'AuthModule::LDAP::BaseDN2'} = 'dc=Firma2,dc=local';
$Self->{'AuthModule::LDAP::UID2'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::SearchUserDN2'} = '[email protected]';
$Self->{'AuthModule::LDAP::SearchUserPw2'} = 'Password2';
#--------------------------------------------------------------------------------------------
#                                  Kunden Authentifizeirung                     
            #
#--------------------------------------------------------------------------------------------
  $Self->{'Customer::AuthModule2'} = 'Kernel::System::CustomerAuth::LDAP';
  $Self->{'Customer::AuthModule::LDAP::Host2'} = 'dc.Firma2.local';
  $Self->{'Customer::AuthModule::LDAP::BaseDN2'} = 'DC=Firma2, DC=local';
  $Self->{'Customer::AuthModule::LDAP::UID2'} = 'sAMAccountName';
  $Self->{'Customer::AuthModule::LDAP::SearchUserDN2'} = 
'[email protected]';
  $Self->{'Customer::AuthModule::LDAP::SearchUserPw2'} = 'Password2';
#--------------------------------------------------------------------------------------------
 
#                                     Kundendaten                               
            #
#--------------------------------------------------------------------------------------------
   $Self->{CustomerUser2} = {
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
      Host => 'dc.Firma2.local',
      BaseDN => 'DC=Firma2, DC=local',
      SSCOPE => 'sub',
      UserDN => '[email protected]',
      UserPw => 'Password2',
          AlwaysFilter =>  '(&(objectclass=user)(mail=*.*@Firma2.de))',
    },
    CustomerKey => 'sAMAccountName',
    CustomerID => 'mail',
    CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    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' ],
          [ 'UserComment', 'Comment', 'facsimileTelephoneNumber', 1, 1, 'var' ],
#       [ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ],
#       [ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
    ],
  };
 
#--------------------------------------------------------------------------------------------

 
#--------------------------------------------------------------------------------------------
 #                                      Firma2 Ende                             
             #
 
#--------------------------------------------------------------------------------------------
 
 
 
 
 
 
---------------------------------------------------------------------
OTRS mailing list: otrs-de - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs-de
To unsubscribe: http://lists.otrs.org/mailman/listinfo/otrs-de

Antwort per Email an