guck mal hier
Am 4. Mai 2012 10:11 schrieb Christian Kreis <[email protected]
>:
> Hallo zusammen,
>
> kann mir jemand Tipps geben wie ich in OTRS eine AD-Anbindung hinbekomme?
> Da wir eine Service-Abteilung sind die nur externen Kunden Support
> anbietet, gilt die AD-Anbindung natürlich nur für unsere Agenten.
>
> Das hier hab ich schon gefunden:
> $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
> $Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.1.11';
> $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=domain, dc=com';
> $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
> $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'Suchbenutzer';
> $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} =
> 'Suchbenutzer_Passwort';
>
> $Self->{CustomerUser} = {
> Module => 'Kernel::System::CustomerUser::LDAP',
> Params => {
> Host => '192.168.1.11',
> BaseDN => 'dc=domain, dc=com',
> SSCOPE => 'sub',
> UserDN => 'Suchbenutzer',
> UserPw => 'Suchbenutzer_Passwort',
> },
> 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' ],
> # [ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ],
> # [ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
> ],
> };
>
> Host wird mit eurem Active Directory Server ersetzt. Es ist sicherer
> hierbei die IP und nicht einen DNS-Namen einzugeben.
>
> BaseDN wird folgendermaßen ersetzt: Angenommen eure Domain heißt
> 'firma.lokal' müsse es dc=firma dc=lokal lauten.
>
> UID darf nicht verändert werden. Diese ist zur korrekten Funktion
> unerlässlich.
>
> Als SearchUserDN könnt ihr einen x-beliebigen Active Directory Benutzer
> wählen. Wir haben extra einen neuen eingerichtet und ihm ein eigenes
> Exchange-Postfach verpasst, damit man E-Mails an diesen fiktiven User
> schreiben kann und sie sofort als Ticket erfasst werden.
>
> In wie weit kann ich das einfach in meine Config.pm kopieren? Und was muss
> ich da noch alles anpassen?
>
> Danke schon mal.
>
> Gruß
> Chris
>
> ---------------------------------------------------------------------
> 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