Hi Forum,
nach langer langer Zeit habe ich endlich eine funktionierende LDAP Anbindung.
Damit eure Nerven geschont bleiben und ich euch diese Wahnsinn-Grenzerfahrung gerne ersparen würde hier meine Config.
Wir haben hier mehrere Domänen und eine Domäne für alle gemeinsamen Dienste. Der OTRS Server steht in der Domäne für gemeinsame Dienste, und fragt die AD Server in der jeweiligen Domäne ab.
Nicht vergessen die Agenten trotzdem in der Datenbank "von Hand" anzulegen. Nur die Agenten.
So hier nun der Codeschnipsel der mich bestimmt 5 Jahre meines Lebens gekostet hat
Hier im Beispiel ist die Anbindung an zwei Firmen. Bei uns sind es vier aber da ändert sich ja nichts ausser der Nummerierung.
Ach ja... das sind teilweise 2008er ADs und telweise 2003er.
Ob jetzt alles 100%ig richtig ist weiss ich nicht. Auf jeden Fall funktioniert es hier.
Verbesserungsvorschläge werden natürlich gerne angenommen.
ich bin ziemlich neu in OTRS uns bin zum Glück uns nach viel googlen zu deiner Lösung gekommen um mein OTRS Customers in verschiedenen Domänen zu Ferfügung zu stellen. Ich habe es so gemacht wie du es zeigst nur mit zwei Domäne (sscc.gam und actuamillenium.grupo) Mit den Agenten hat es gerlappt, ich vermute weil ich diese direkt in OTRS eingetragen habe, aber mit den Customer nicht. Bei mir passiert, dass alle Customer in sscc.gam gesucht werden, obwohl sie zu actuamillenium.grupo gehören.
Das habe ich anhand von logs gemerkt:
Dec 22 17:36:05 b1httpd003 OTRS-CGI-01[6043]: [Notice][Kernel::System::CustomerAuth::LDAP::Auth] CustomerUser: actuam1 authentication failed, no LDAP entry found!BaseDN='dc=sscc,dc=gam', Filter='(sAMAccountName=actuam1)', (REMOTE_ADDR: 172.16.96.252).
Bei mir ist dieser Domän in Frontend::Customer::Auth definiert und kann es auch nicht löschen...
Würdest du mir ein Rat geben wie du es verhindert hast, d.h. , dass OTRS in verschienenen Domänen sucht, oder wo man so etwas konfigurieren kann?
Vielen Dank uns Entschuldigung für mein Deutsch, es ist nicht so gut wie vorher...
OTRS 2.4.7 ITSM 2.0.3
CentOS release 5.5 (Final) Mysql Ver 14.12
nach ein Paar Tage Urlaub habe mich nochmal damit Beschäftigt und mir die ganze Nummerierung nachgeschaut. Du hast Recht, dort war der Fehler. Jetzt habe ich meine zwei Domäne in OTRS. In Zukunft werden es 10 oder mehr Domäne sein und ich hoffe, dass keine Probleme auftreten.
Noch was, bei mir braucht man die Agenten nicht selber in der OTRS-Datenbank einzutragen. Ich habe es so gemacht, dass Sie nur in einer bestimmten AD-Gruppe sein müssen und dann werden sie beim ersten login automatich mit OTRS-Datenbank synchronisiert. Falls jemand an diese Lösung interessiert ist, sags Bescheid und ich kann auch im Forum hängen. Ich werde froh sein wenn ich, obwohl ich ein OTRS-Anfänger bin, zumindest ein Mal andere Leute helfen kann
Frohes Neues Jahr an die ganze OTRS-Community
Rafael
OTRS 2.4.7 ITSM 2.0.3
CentOS release 5.5 (Final) Mysql Ver 14.12
#------------------------------------------------------------------------------------------------------------------------------#
# Autenticacion de Agentes por LDAP #
#------------------------------------------------------------------------------------------------------------------------------#
# This is an example configuration for using an MS AD backend
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '172.16.x.x';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=sscc,dc=gam';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
# Check if the user is allowed to auth in a posixGroup
# (e. g. user needs to be in a group OTRS_Agents to use otrs)
$Self->{'AuthModule::LDAP::GroupDN'} = 'CN=OTRS Agents,CN=Users,dc=sscc,dc=gam';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
# Bind credentials to log into AD
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=OTRS Searcher,CN=Users,dc=sscc,dc=gam';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'password;
# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
# in case you want to add a suffix to each login name, then
# you can use this option. e. g. user just want to use user but
# in your ldap directory exists user@domain.
#$Self->{'AuthModule::LDAP::UserSuffix'} = '';
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
# Now sync data with OTRS DB
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '172.16.x.x';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=sscc,dc=gam';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=OTRS Searcher,CN=Users,dc=sscc,dc=gam';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'password';
# AuthSyncModule::LDAP::UserSyncInitialGroups
# (sync following group with rw permission after initial create of first agent
# login)
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users',
];
# This is an example configuration for using an MS AD backend
$Self->{'AuthModule1'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host1'} = '172.16.x.y';
$Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=actuamillenium,dc=grupo';
$Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName';
# Check if the user is allowed to auth in a posixGroup
# (e. g. user needs to be in a group OTRS_Agents to use otrs)
$Self->{'AuthModule::LDAP::GroupDN1'} = 'CN=OTRS Agents,CN=Users,dc=actuamillenium,dc=grupo';
$Self->{'AuthModule::LDAP::AccessAttr1'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr1'} = 'DN';
# Bind credentials to log into AD
$Self->{'AuthModule::LDAP::SearchUserDN1'} = 'CN=OTRS Searcher,CN=Users,dc=actuamillenium,dc=grupo';
$Self->{'AuthModule::LDAP::SearchUserPw1'} = 'password';
# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
# in case you want to add a suffix to each login name, then
# you can use this option. e. g. user just want to use user but
# in your ldap directory exists user@domain.
#$Self->{'AuthModule::LDAP::UserSuffix'} = '';
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
$Self->{'AuthModule::LDAP::Params1'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
# Now sync data with OTRS DB
$Self->{'AuthSyncModule1'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host1'} = '172.16.x.y;
$Self->{'AuthSyncModule::LDAP::BaseDN1'} = 'dc=actuamillenium,dc=grupo';
$Self->{'AuthSyncModule::LDAP::UID1'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN1'} = 'CN=OTRS Searcher,CN=Users,dc=actuamillenium,dc=grupo';
$Self->{'AuthSyncModule::LDAP::SearchUserPw1'} = 'password';
# AuthSyncModule::LDAP::UserSyncInitialGroups
# (sync following group with rw permission after initial create of first agent
# login)
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups1'} = [
'users',
];
#------------------------------------------------------------------------------------------------------------------------------#
# Autenticacion de Clientes por LDAP #
#------------------------------------------------------------------------------------------------------------------------------#