Schlagwörter: AD Anbindung Kundennutzer LDAP
-
AutorBeiträge
-
-
22. Januar 2024 um 12:18 Uhr - Views: 507 #29665
Guten Tag OTOBO Forum,
ich habe für meine Begriffe die AD Anbindung zum Auslesen der Kundenbenutzer aus unserer AD soweit richtig umgesetzt. Es landen die beiden Testnutzer aus der AD Gruppe “mee_bg_otobo_user” auch in OTOBO unter Kundennutzer. Zumindes werden sie mir dort angezeigt.
Möchte ich mich nun aber mit einer der Nutzer im Kundenbereich unter unseredomain/otobo/costumer.pl anmelden, funktioniert das nicht. Benutzername oder Passwort würden nicht stimmen.
Im Log finde ich komischerweise diesen Eintrag:
Search failed! 000004DC: LdapErr: DSID-0C090CF4, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v4563
Und hier mein Code dazu (IPs und PW geändert)
#Customer LDAP Integration
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '1.2.3.4';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=MEE_BG_OTOBO_USER,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
#$Self->{'Customer::AuthModule::LDAP::UserLowerCase'} = 1;
# The following is valid but would only be necessary if the
# anonymous user do NOT have permission to read from the LDAP tree
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Admin, Testhausen,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxx';
#Customer Synchronisation
$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '1.2.3.4',
BaseDN => 'OU=INetAccess,OU=MEEUsers,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET',
SSCOPE => 'sub',
UserDN => 'CN=Admin, Testhausen,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET',
UserPw => 'xxxxx',
#AlwaysFilter => '(&(objectclass=user)(memberof=CN=MEE_BG_OTOBO_USER,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET))',
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},
#Daten der Nutzer in die OTOBO Datenbank einfügen
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserNameFieldsJoin => '',
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
Map => [
[ 'UserTitle', Translatable('Title or salutation'), 'title', 1, 0, 'var', '', 1, undef, undef ],
[ 'UserFirstname', Translatable('Firstname'), 'givenname', 1, 1, 'var', '', 1, undef, undef ],
[ 'UserLastname', Translatable('Lastname'), 'sn', 1, 1, 'var', '', 1, undef, undef ],
[ 'UserLogin', Translatable('Username'), 'sAMAccountName', 1, 1, 'var', '', 1, undef, undef ],
[ 'UserEmail', Translatable('Email'), 'mail', 1, 1, 'var', '', 1, undef, undef ],
[ 'UserCustomerID', Translatable('CustomerID'), 'mail', 0, 1, 'var', '', 1, undef, undef ],
[ 'UserPhone', Translatable('Phone'), 'telephonenumber', 1, 0, 'var', '', 1, undef, undef ],
[ 'UserAddress', Translatable('Address'), 'postaladdress', 1, 0, 'var', '', 1, undef, undef ],
[ 'UserComment', Translatable('Comment'), 'description', 1, 0, 'var', '', 1, undef, undef ],
],
};
-
22. Januar 2024 um 12:25 Uhr #29858
Hallo Alexander,
es fehlen die Customer authentication settings.
In dem Post sollte der Abschnitt drin sein.
https://otobo.io/de/forums/topic/otobo-docker-mit-kerberos-ohne-https/#post-15640
Gruß Marcel
-
22. Januar 2024 um 14:02 Uhr #29863
Hi Marcel,
das hat mir erstmal sehr weitergeholfen, DANKE!
Ich musste allerdings nach dem Reinkopieren in die config.pm noch alle Hochkomma ´ und ` in normale ‘ umwandeln.Noch ein kurze Frage,
Ich würde gern beim import die Benutzernamen generell in Kleinbuchstaben umwandeln und dort hinten dran noch unsere EMail Domain @soundso.com hängen. Dann wäre nämlich der Username für die Anmeldung an OTOBO gleich unserer AD.
Ich weiß dass es da einen “lowercase” Befehl sowie “add suffix” oder sowas gibt, weiß aber nicht wo ich das dann überall einfügen müsste.Könntest du mir da evtl. auch noch helfen?
-
-
22. Januar 2024 um 14:09 Uhr #29864
Hallo Alexander,
hier mal was aus dem Znuny Forum: https://community.znuny.org/viewtopic.php?t=22148
Suche dort einfach mal im Post 1 nach lowercase.
Bin heute schon im Feierabend :)
Gruß Marcel
-
23. Januar 2024 um 9:49 Uhr #29865
Es geht jetzt Alles, auch Kundennutzer können sich mit dem AD Benutzernamen anmelden und müssen dort auch nicht auf Groß- und Kleinschreibung achten.
Vielen Dank nochmal für die tolle Hilfe und überhaupt den Support hier!!!
-
-
29. Januar 2024 um 13:10 Uhr #29884
Also ich zweifel grad an mir selbst. Bis Freitag hat die Anmeldung für Kundenbenutzer mit AD Abgleich einwandfrei funktioniert. Ohne dass etwas an diesem Abschnitt geändert wurde, geht es nicht mehr mit der Meldung “…Benutzername oder Passwort wurden falsch eingegeben”?!
Komischerweise wird im Apache2 LOG keine Fehlermeldung in der error.log ausgegeben.
Hier nochmal mein Abschnitt aus der config.pm:
####################################
# Customer authentication settings #
####################################
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'XXXXXX';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=XXXXX,DC=CCLEUROPE,DC=CCLIND,DC=NET';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'samaccountname';
# Check if the user is allowed to auth in a posixGroup
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=XXXXXX,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'XXXXXX,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'XXXXXX';
$Self->{'Customer::AuthModule::LDAP::UserLowerCase'} = 0;
$Self->{'Customer::AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'XXXXXXX',
BaseDN => 'OU=XXXXXX,OU=MEEUsers,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET',
SSCOPE => 'sub',
UserDN => 'XXXXXXX,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET',
UserPw => 'XXXXXXX',
AlwaysFilter => '(&(objectclass=user)(mail=*)(memberof=XXXXXXXX,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET))',
},
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserSearchListLimit => 1000,
CustomerCompanySupport => 0,
Map => [
[ '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' ],
],
};
# UserTable
$Self->{DatabaseUserTable} = 'users';
$Self->{DatabaseUserTableUserID} = 'id';
$Self->{DatabaseUserTableUserPW} = 'pw';
$Self->{DatabaseUserTableUser} = 'login';
-
29. Januar 2024 um 13:31 Uhr #29885
Auf den ersten Blick sieht alles so aus, wie in meiner Testumgebung.
Bei Host hast du auch ldap:// immer davor stehen?
Als Always Filter kannst du auch folgendes probieren:
‘(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=*)(sn=*)(givenname=*)(!(givenname= 0)))’
-
29. Januar 2024 um 13:44 Uhr #29886
kannst auch nochmal bei Google suche nach “znuny ldap customer user kann sich nicht mehr einloggen” schauen, da sind paar konkrete Posts zu finden.
-
29. Januar 2024 um 14:03 Uhr #29887
Hab jetzt das Backup vom Vortag der gesamten VM eingespielt – läuft wieder. Was da inzwischen schiefgelaufen ist, keine Ahnung.
Trotzdem Danke für die Links, man lernt nie aus!
-
29. Januar 2024 um 17:36 Uhr #29890
Hi Marcel,
“Bei Host hast du auch ldap:// immer davor stehen?” => Das brauchst du nicht. Das Protokoll ist eigentlich nur bei LDAPS relevant (ldaps:// plus Port ändern, bspw. 636)
Hi Alexander,
gut, dass es jetzt wieder klappt, aber trotzdem eigenartig. Vielleicht wurde da irgendein komischer Zeichensatz kopiert?
Viele Grüße
Stefan
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.