ADS Anbindung

Hilfe zu Znuny Problemen aller Art
Locked
Blue
Znuny newbie
Posts: 3
Joined: 28 Jul 2006, 11:04

ADS Anbindung

Post by Blue »

Hallo,

haben zur Zeit unseren Customer Login über die ADS laufen. Da wir mehrere Standorte haben, möchte ich die anderen AD-Strukturen auch mit auslesen...

Bsp.:

firma.com
frankreich.firma.com
usa.firma.com
spanien.firma.com

Wir lesen zur Zeit nur firma.de aus und habe keine Zugriff auf die Sudomains..
Hier ein Auschnitt aus meiner Config...

Code: Select all

	$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'firma.com';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=firma,DC=com';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=Users,DC=firma,DC=com';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'secret';

    $Self->{UserSyncLDAPMap} = {
        Firstname => 'givenName',
        Lastname => 'sn',
        Email => 'mail',
    };

$Self->{'Customer::AuthModule::LDAP::Params'} = { 
                SourceCharset => 'utf-8', 
                DestCharset => 'utf-8', 
    }; 
	
        # CustomerUser 
        # (customer user ldap backend and settings) 
    $Self->{CustomerUser} = { 
        Module => 'Kernel::System::CustomerUser::LDAP', 
        Params => { 
                # ldap host 
                Host => '192.168.42.240',
                # ldap base dn 
                BaseDN => 'dc=firma, dc=com', 
                # search scope (one|sub) 
                SSCOPE => 'sub', 
                UserDN => 'support@firma.com', 
                UserPw => 'secret, 
                AlwaysFilter => '', 
                SourceCharset => 'utf-8', 
                DestCharset => 'iso-8859-1', 
                }, 
        # customer uniq 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' ], 
                ], 
        };
Würde mich über eine schnelle Antwort freuen!

Danke im Voraus!

Greetz Blue :?:
Last edited by Blue on 31 Jul 2006, 09:39, edited 1 time in total.
Blue
Znuny newbie
Posts: 3
Joined: 28 Jul 2006, 11:04

RE:

Post by Blue »

Brauche dringend eine Antwort! Bitte helft mir!

Gruß
RKASPER
Znuny newbie
Posts: 11
Joined: 13 Jul 2006, 11:46

Post by RKASPER »

also ich würde sagen das hier ist falsch

Code: Select all

    $Self->{'Customer::AuthModule::LDAP::Host'} = 'firma.com';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=firma,DC=com'; 
du hast da unten irgendwo ne IP-Adresse von eurem AD stehen. Die Kommt bi LDAP Host rein. Bei BaseDN kommt der oberste Baum (bei Novell) rein, also die oberste Schicht, da wo alles andere drunter ist.

Wenn du nen LINUX Rechner hast, dann kannst du ja mal ausprobieren ob das was du da eingetragen hast funktioniert.

LDAPSEARCH ist das Stichwort.


hier mal ein Beispiel

ldapsearch -x cn=Benutzer -h AD-SERVER -b DC=USER
Blue
Znuny newbie
Posts: 3
Joined: 28 Jul 2006, 11:04

Post by Blue »

Die Suche klappt ja! Nur ich bekomme nur die Hauptdomain ausgelesen!
Die Subdomain bekomme ich nicht ausgelesen.
Ich finde alle User der firma.com aber wenn ich die User aus t1.firma.de suche, findet er garnichts.

Danke schonmal im Voraus!

Marcel
RKASPER
Znuny newbie
Posts: 11
Joined: 13 Jul 2006, 11:46

Post by RKASPER »

Dann musst du evt eine zweite LDAP Verbindung einbauen, weil er nur in einer LDAP-Struktur suchen kann.

evtl. hilft die Wiki weiter, kanns dir aber nicht versprechen. Ansonsten probiers mal mit einer zweiten LDAP??!
idefix
Znuny newbie
Posts: 1
Joined: 15 Aug 2006, 14:15

Post by idefix »

Ich habe exakt das gleiche Problem.
Wie genau meinst du das mit der zweiten LDAP?
Wenn ich nämlich in der config.pm die LDAP-Eintraege einfach ein zweites oder drittes mal mit den Eintraegen der Subdomains einfüge, so können sich nur die Nutzer anmelden, die sich in der letzten Subdomain befinden, die in dieser Auflistung in der config.pm geschrieben wurde.
Scheinbar werden die zuerst gemachten Eintraege überschrieben und somit unbrauchbar.

Hat vielleicht jemand eine Idee?
cscherb
Znuny newbie
Posts: 10
Joined: 18 Jul 2006, 16:41

Post by cscherb »

Falls man tatsächlich nicht mehrere LDAP Quellen einbinden kann, fällt mir im Windows Umfeld folgender Workaround ein:

Die unterschiedlichen Verzeichniss mittels ADAM (Active Directory Application Mode - http://www.microsoft.com/windowsserver2 ... fault.mspx) in ein Verzeichnis zusammenführen und die LDAP Abfrage von OTRS gegen dieses Verzeichnis fahren.
McClane
Znuny newbie
Posts: 32
Joined: 17 Feb 2007, 22:13

Post by McClane »

Hallo,

Ich glaub ADAM bringt einen da nicht so recht weiter (also mich zumindest nicht), aber ist auch gar nicht Notwendig. Das Perl LDAP Modul was OTRS verwendet kann nämlich auch mehr.
Bei mir klappte das authentifizieren für die Hauptdomäne und 2 Subdomänen nach folgenden Anpassungen

Das ist schon mal wichtig damit er auch Unterdomänen abfragt.

Code: Select all

 $Self->{'AuthModule::LDAP::SSCOPE'} = 'sub';
So, der eigentliche Trick ist, nicht das AD auf Port 389 sondern einen Global Catalog Server auf Port 3268 abzufragen.
Der kann nämlich auch domänenübergreifend authentifizieren.

Code: Select all

$Self->{'AuthModule::LDAP::Params'} = {
                     port => 3268,
                     timeout => 120,
                     async => 0,
                     version => 3,
            };
Locked