ich wollte mich kurz vorstellen, ich bin Stefan Müller und studiere Informatik an der Hochschule.
Ich schreibe eine Arbeit über die Integration von OTRS als ITTL Konformes TicketSystem und werde deshalb ein OTRS integrieren.
Defakto sollen mehreren Kunden-Active-Directorys angebunden werden. (Mandantenfähigkeit)
Hierbei habe ich zur Zeit folgende Umsetzungsideen bezüglich der Benutzeranmeldung:
Ich benötige im Prinzip 3 Authentifizierungsformen
1) lokale Benutzer (Notfallbenutzer):
Bei der Installation wird ein SuperUser mit angelegt. Einen weiteren kann ich mir anlegen. Diese beiden Benutzer sollen als Notfall-Benutzer Dienen, falls ich mich mal aussperre, wie gerade geschehen (siehe etwas weiter unten)
2) Anmeldung der Agents mit Active-Directory BackEnd, basierend auf einer bestimmten AD-Gruppe, z,B. OTRS_Techniker oder OTRS_Agents
Hierbei sollen alle Daten aus dem AD (z.B. Vorname, Nachname, Email, Telefonnummer, sowie ein Custom-Feld (Kostenstelle) in OTRS übernommen werden.
3) Anmeldung der Kunden mit Active-Directory BackEnd, basierend auf einer anderen AD-Gruppe, z.B. OTRS_Kunden
Auch hier sollen alle Daten aus dem AD (wie oben) übernommen werden.
Optionales Ziel 1)
Anmeldung aller Agents per Single-Sign-On
Optionales Ziel 2)
Anmeldung aller Kunden zusätzlich zu den Agents als Single-Sign-On
Optionales Ziel 3) Anbindung eines (weiteren) Kunden-AD's parallel zu den ersten Kunden
Optionales Ziel 4) Anmeldung des weiteren Kunden per SSO
Was konnte bisher realisiert werden:
Punkt 2, jedoch ohne vollständige Feld-Synchronisation, hier Fehlen mir die Feldbezeichnungen auf OTRS -Seite, gibts da eine Liste wo ich die ersehen kann?
Problem: nach der Anbindung des AD's für die Agent-Anmeldung funktioniert die lokale Anmeldung nicht mehr.
Auch der Installationsbenutzer geht nicht mehr. Ich komme also nur noch mit einem AD-Konto rein, kann dann aber nichts einstellen. Die Admin-Ansicht ist quasi weg. Wie kann ich lokale Anmeldungen parallel zulassen? Wo definiere ich, ob jemand Admin-Rechte hat oder nicht? Ich würde das gern über eine weitere AD-Gruppe, z.B. OTRS_ADMINS lösen wenn es AD-Accounts sind, und natürlich local einfach 2 Admins anlegen, die immer gehen auch wenn das AD mal nicht geht.
Ich habe noch ein Verständnis-Problem der Config-Datei. Ich habe meine mal angehängt. Diese enthält den AD-Teil für die Agents.
Frage hierzu:
Wo wird denn Unterschieden, ob das AD für die AGents oder für die Kunden gilt?
Einmal in der zu definierenden Sicherheitsgruppe, (Zeile $Self->{'AuthModule::LDAP::GroupDN'} = 'CN=SG_OTRS,OU=ZZ_Global Security Groups,OU=Hamburg,DC=prtglab,DC=local';) die ich ja auch definiert habe, aber wie unterscheidet OTRS das?
Hat jemand eine Beispiel-Konfiguration, welche die Anmeldung von Agents und Kunden per AD darstellt? Eventuell zusätzlich mit lokaler Anmeldung für den Notfall?
Code: Select all
# This is an example configuration for using an MS AD backend
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = 'domaincontroller01.prtglab.local';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=prtglab,dc=local';
$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=SG_OTRS,OU=ZZ_Global Security Groups,OU=Hamburg,DC=prtglab,DC=local';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
# Bind credentials to log into AD
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=ldapread,OU=ZZ_System Accounts,OU=Hamburg,DC=prtglab,DC=local';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'myPassword';
# 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'} = 'domaincontroller01.prtglab.local';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=prtglab, dc=local';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=ldapread,OU=ZZ_System Accounts,OU=Hamburg,DC=prtglab,DC=local';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'myPassword';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};
# AuthSyncModule::LDAP::UserSyncInitialGroups
# (sync following group with rw permission after initial create of first agent
# login)
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users',
];