Hauptmenü

LDAP Agenten und Berechtigungskonzept

Begonnen von marceladm, 31.03.2017 09:32:21

⏪ vorheriges - nächstes ⏩

marceladm

Hallo Zusammen,

ich habe derzeitig via LDAP meine Kundendatenbank gefüllt und die Agenten manuell angelegt. Ich möchte nun gerne die Agenten über eine AD Gruppe zuweisen und nicht mehr selber anlegen.
Kann mir da jemand bei den nötigen Schritten helfen? Des Weiteren möchte ich eine neue Berechtigungsstruktur aufbauen. Momentan sind Agenten Gruppen zugeordnet. Es gibt ja noch die Möglichkeit Rollen zu definieren um die Berechtigungen präziser vergeben zu können.
Kann mir hier jemand etwas zum Thema Gruppen und Rollen erzählen, ich habe da relativ wenig Kenntnisse. Oder eine Doku im Netz?

Freue mich auf hilfreiche Tipps und verbleibe


Mit freundlichen Grüßen

marceladm

Katja Hüsig

#1
Hallo marceladm,

in der Defaults.pm (/opt/kix/Kernel/Config) findest du den Konfigurations-Block, um Agenten über ein LDAP zu authentifizieren:

# This is an example configuration for an LDAP auth. backend.
# (take care that Net::LDAP is installed!)
# $Self->{AuthModule} = 'Kernel::System::Auth::LDAP';
# $Self->{'AuthModule::LDAP::Host'} = 'ldap.example.com';
# $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=example,dc=com';
# $Self->{'AuthModule::LDAP::UID'} = 'uid';

# Check if the user is allowed to auth in a posixGroup
# (e. g. user needs to be in a group xyz to use otrs)
# $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=otrsallow,ou=posixGroups,dc=example,dc=com';
# $Self->{'AuthModule::LDAP::AccessAttr'} = 'memberUid';
# for ldap posixGroups objectclass (just uid)
# $Self->{'AuthModule::LDAP::UserAttr'} = 'UID';
# for non ldap posixGroups objectclass (with full user dn)
# $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';

# The following is valid but would only be necessary if the
# anonymous user do NOT have permission to read from the LDAP tree
# $Self->{'AuthModule::LDAP::SearchUserDN'} = '';
# $Self->{'AuthModule::LDAP::SearchUserPw'} = '';

# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
# or if you want to filter with a locigal OR-Expression, like AlwaysFilter => '(|(mail=*abc.com)(mail=*xyz.com))'
# $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'} = '@domain.com';

# In case you want to convert all given usernames to lower letters you
# should activate this option. It might be helpful if databases are
# in use that do not distinguish selects for upper and lower case letters
# (Oracle, postgresql). User might be synched twice, if this option
# is not in use.
# $Self->{'AuthModule::LDAP::UserLowerCase'} = 0;

# In case you need to use OTRS in iso-charset, you can define this
# by using this option (converts utf-8 data from LDAP to iso).
# $Self->{'AuthModule::LDAP::Charset'} = 'iso-8859-1';

# 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,
# };

# Die if backend can't work, e. g. can't connect to server.
# $Self->{'AuthModule::LDAP::Die'} = 1;


Der gesamte Block muss in die Config.pm kopiert und entsprechend angepasst werden.

Rollen- und Gruppenberechtigungen können allerdings erst dann im KIX vorgenommen werden, wenn die Agenten auch über folgendes Modul synchronisiert werden:
# --------------------------------------------------- #
# authentication sync settings #
# (enable agent data sync. after succsessful #
# authentication) #
# --------------------------------------------------- #
# This is an example configuration for an LDAP auth sync. backend.


Oder du holst dir die Rollen- und Gruppenberechtigungen über folgendes Modul ebenfalls aus dem AD und passt das Mapping entsprechend an:
# AuthSyncModule::LDAP::UserSyncGroupsDefinition
# AuthSyncModule::LDAP::UserSyncRolesDefinition
# AuthSyncModule::LDAP::UserSyncAttributeGroupsDefinition
# AuthSyncModule::LDAP::UserSyncAttributeRolesDefinition


Auch hier müssen die Blöcke in die Config.pm kopiert und entsprechend angepasst werden.

Bzgl Rollenberechtigungen ist die Best Practice so, dass eine Zuordnung der Agenten ausschließlich mittels Rollen zu empfehlen ist. Die Rollen können dann Gruppen zugeordnet werden, welche wiederum den Queues oder sonstigen Modulen (CMDB, FAQ, etc.) zugeordnet sind. Beim Einrichten neuer Strukturen ist eine gute Planung der erste wichtige Schritt, dann sollten die Gruppen angelegt werden, falls nicht schon vorhanden die Queues, anschließend werden die Rollen angelegt und die Rechte der Rollen auf Gruppen definiert. Zuletzt erfolgt eine Zuordnung der Rechte der Agenten auf Rollen.

Im Internet findest du ebenfalls Informationen, einfach mal auf die Suche gehen.

VG,
Katja Hüsig