Agenten

Das Agenten- und Zugriffsmanagement für Ihren Service-Desk sollte einfach sein. Flexibilität beim Hinzufügen, Bearbeiten, Entwerten des Zugriffs und ein schneller Überblick darüber, welche Berechtigungen ein Benutzer hat, helfen Ihnen, ein sauberes Berechtigungssystem zu pflegen und Ihr Setup in OTRS aufzuzeichnen.

OTRS unterstützt Sie dabei, Agenten innerhalb von OTRS über mehrere Backends hinweg zu verwalten. OTRS kann bis zu zehn Backend-Quellen verwenden und sogar einige als schreibgeschützt markieren. Durch die zentrale Verwaltung der Benutzereinstellungen kann ein Administrator im Falle einer unerwarteten Krankheit schnell ein kompromittiertes Konto ungültig setzen oder ein Konto auf Abwesenheitsnotiz setzen.

Verwenden Sie diese Ansicht, um Agenten zum System hinzuzufügen. Eine neue OTRS-Installation enthält standardmäßig einen Agent mit Administrator-Rechten. Die Ansicht zur Verwaltung der Agenten ist im Modul Agenten in der Gruppe Benutzer, Gruppen & Rollen verfügbar.

Agenten verwalten

Agenten verwalten

Warnung

Der Benutzername des Superuser-Kontos lautet root@localhost. Verwenden Sie nicht das Superuser-Konto, um mit OTRS zu arbeiten! Erstellen Sie neue Agenten und arbeiten Sie stattdessen mit diesen Konten. Eine der nachteiligen Auswirkungen ist, dass Access Control Lists (ACL) keine Auswirkungen auf diesen Benutzer haben.

Agenten verwalten

Bemerkung

Das Hinzufügen oder Bearbeiten eines Agenten ist nur über das Datenbank-Backend möglich. Die Verwendung explizit externer Verzeichnisdienste wie LDAP und, je nach Konfiguration, einiger Datenbanken ist schreibgeschützt. Persönliche Einstellungen wie Abwesenheiten können weiterhin eingestellt werden.

So fügen Sie einen Agenten hinzu:

  1. Klicken Sie in der linken Seitenleiste auf die Schaltfläche Agent hinzufügen.

  2. Füllen Sie die Pflichtfelder aus.

  3. Klicken Sie auf die Schaltfläche Speichern.

Agent hinzufügen

Agent hinzufügen

Warnung

Agenten können nicht aus dem System gelöscht werden. Sie können nur deaktiviert werden, wenn die Einstellung Gültigkeit auf ungültig oder ungültig-temporär gesetzt wird.

So bearbeiten Sie einen Agent:

  1. Klicken Sie in der Liste mit den Agenten auf einen Agent.

  2. Ändern Sie die Felder.

  3. Klicken Sie auf die Schaltfläche Speichern oder Speichern und abschließen.

Agent bearbeiten

Agent bearbeiten

Es ist auch möglich, die persönlichen Einstellungen eines Agenten zu bearbeiten. Um dies zu tun, klicken Sie auf die Persönliche Einstellungen für diesen Agenten bearbeiten-Schaltfläche in der linken Seitenleiste in der Agent bearbeiten-Ansicht.

So finden Sie einen Agent:

  1. Geben Sie einen Suchbegriff in das Suchfeld in der linken Seitenleiste ein.

  2. Klicken Sie auf das Lupen-Symbol oder betätigen Sie Eingabe.

Bemerkung

Wenn dem System mehrere Agenten hinzugefügt wurden, nutzen Sie das Suchfeld, um einen einzelnen Agenten zu finden. Standardmäßig werden nur die ersten 1000 Agenten angezeigt.

Die Berechtigungen des Agenten können gesteuert werden, indem ein Agent zu Gruppen oder Rollen hinzugefügt wird. Dies kann zu einer komplexen Matrix von Berechtigungen führen. Die effektiven Berechtigungen für einen Agenten können unten auf der Ansicht Agent bearbeiten überprüft werden. Wenn Rollen (empfohlen) verwendet werden, spiegelt diese Ansicht die kombinierten Berechtigungen wider, wie sie von den Rollen vorgegeben sind.

Effektive Berechtigungen für Agent

Effektive Berechtigungen für Agent

Einstellungen für Agenten

Die folgenden Einstellungen sind verfügbar, wenn Sie diese Ressource hinzufügen oder bearbeiten. Die mit Stern gekennzeichneten Felder sind Pflichtfelder.

Bemerkung

Dies sind die Standardfelder, die für die interne Datenbank-Tabelle zur Verfügung stehen.

Titel oder Anrede

Hier können einige Präfixe, wie bspw. Dr. oder Prof. etc. hinzugefügt werden.

Vorname *

Der Vorname eines Agenten.

Nachname *

Der Nachname eines Agenten.

Siehe auch

Der angezeigte Name eines Agenten, kann mit der Systemkonfigurations-Einstellung FirstnameLastnameOrder geändert werden.

Benutzername *

Der Benutzername des Agenten, der sich am System anmeldet.

Passwort

Das Passwort des Agenten. Wird automatisch generiert, wenn das Feld leer gelassen wird.

E-Mail *

Die E-Mail-Adresse des Agenten.

Bemerkung

Die E-Mail-Syntax und die Gültigkeit eines verfügbaren MX-Eintrags könnten Sie daran hindern, dieses Formular abzuschicken. Bei einigen Systemen kann es angebracht sein, diese Prüfungen zu deaktivieren.

Mobiltelefon

Die Mobilfunknummer des Agenten.

Gültigkeit *

Setzt die Gültigkeit dieser Ressource. Jede Ressource kann nur in OTRS verwendet werden, wenn dieses Feld auf gültig gesetzt ist. Wenn Sie dieses Feld auf ungültig oder ungültig-temporär setzen, wird die Nutzung der Ressource deaktiviert.

Alternative Anmeldung für Agenten

Es ist möglich, eine alternative Benutzeranmeldung für Agenten zu erstellen. Diese Funktion ist standardmäßig deaktiviert.

So aktivieren Sie die Funktion:

  1. Gehen Sie zur Ansicht Systemkonfiguration.

  2. Suchen Sie nach der Einstellung AgentPersonalPreference###AnonymousLogin.

  3. Aktivieren Sie die Einstellung und setzen Sie das Feld Aktiv auf 1.

  4. Nehmen Sie die geänderte Systemkonfiguration in Betrieb.

So legen Sie einen alternativen Benutzer für einen Agenten fest:

  1. Gehen Sie im Administrator-Interface zum Modul Agenten.

  2. Klicken Sie in der Liste mit den Agenten auf einen Agent.

  3. Klicken Sie in der linken Seitenleiste auf die Schaltfläche Persönliche Einstellungen für diesen Agenten bearbeiten.

  4. Klicken Sie im Widget Einstellungen auf das Benutzerprofil.

  5. Geben Sie den Benutzernamen des alternativen Benutzers in den Abschnitt Alternativer Benutzer ein.

Ein Bearbeiter, für den eine alternative Anmeldung existiert, kann sich nun mit seinen persönlichen Anmeldedaten anmelden und wird nach der Anmeldung im System automatisch auf das alternative Anmeldekonto umgestellt.

Warnung

Verwenden Sie diese Funktion mit Vorsicht! Die Aktivierung der Funktion kann unerwünschte Nebeneffekte auf die Auditierung und die Einhaltung der Vorschriften haben, insbesondere auf die Rückverfolgbarkeit von Aktionen im System. Wenn Sie sich nicht sicher sind, verwenden Sie diese Funktion nicht oder fragen Sie das Customer Solutions Team, bevor Sie sie verwenden.

Agenten-Back Ends

Agenten können von einem Active Directory®- oder LDAP-Server aus gelesen und synchronisiert werden.

Das Administrator-Interface unterstützt nicht die Konfiguration von externen Backends. Administratoren müssen die Datei Kernel/Config.pm bearbeiten, indem Sie Codeausschnitte aus Kernel/Config/Defaults.pm manuell kopieren und einfügen, wenn sie On-Premise-System verwenden.

Wenn Sie bereits über ein Agenten-Backend verfügen (z. B. SAP), können Sie ein Modul schreiben, das dieses verwendet.

Warnung

Ändern Sie die Datei Kernel/Config/Defaults.pm nicht, sie wird nach dem Upgrade des Systems überschrieben! Kopieren und fügen Sie die Codeschnipsel stattdessen in Kernel/Config.pm ein.

Bemerkung

Diese Funktion ist nur für On-Premise-Kunden verfügbar. Wenn Sie ein Managed-Kunde sind, wird diese Funktion vom Customer Solutions Team in OTRS betreut. Bitte kontaktieren Sie uns über support@otrs.com oder im OTRS Portal.

Agenten-Backend – Datenbank

Das Standard-Backend für die Benutzerauthentifizierung von Agenten ist die OTRS-Datenbank. Mit diesem Backend können alle Agenten-Daten über das Administrator-Interface bearbeitet werden.

# This is the auth. module against the otrs db
$Self->{AuthModule} = 'Kernel::System::Auth::DB';

# defines AuthSyncBackend (AuthSyncModule) for AuthModule
# if this key exists and is empty, there won't be a sync.
# example values: AuthSyncBackend, AuthSyncBackend2
#    $Self->{'AuthModule::UseSyncBackend'} = '';

# password crypt type (bcrypt|sha2|sha1|md5|apr1|crypt|plain)
#    $Self->{'AuthModule::DB::CryptType'} = 'sha2';

# If "bcrypt" was selected for CryptType, use cost specified here for bcrypt hashing.
#   Currently max. supported cost value is 31.
# $Self->{'AuthModule::DB::bcryptCost'} = 12;

Agenten-Backend – LDAP

Wenn Sie über ein LDAP-Verzeichnis mit all Ihren Agentendaten verfügen, können Sie das LDAP-Modul zur Authentifizierung Ihrer Agenten verwenden. Da dieses Modul nur Lesezugriff auf das LDAP-Backend hat, ist es nicht möglich, die Agentendaten über das Administrator-Interface zu bearbeiten.

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

Das Minimum, das für die Verbindung zu einem Verzeichnis-Server erforderlich ist, sind:

$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';
Host

Der DNS-Name oder die IP Ihres Verzeichnis-Servers.

BaseDN

Der Startpunkt in Ihrem Verzeichnisbaum.

UID

Das Attribut, das für die Anmeldung und Identifizierung verwendet wird.

Bemerkung

Das ist ein sAMAccountName für ein Active Directory.

Es ist möglich, eine Verbindung zu einem LDAP über eine sichere Verbindung herzustellen. In diesem Fall muss das Protokoll ldaps:// zum Parameter host hinzugefügt und der Port geändert werden.

$Self->{'AuthModule::LDAP::Host'} = 'ldaps://secure.example.com';
$Self->{'AuthModule::LDAP::Params'}->{port} = 636;

Um mehrere Backends zu verwenden, fügen Sie der Config.pm einen zusätzlichen Abschnitt des Beispielcodes hinzu. Achten Sie darauf, dass alle Einstellungen mit einem Zahlenwert [1-9] versehen sind, der angibt, welche Einstellungen zu welchem Backend gehören.

### Backend One
$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';

### Backend Two
$Self->{AuthModule1} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host1'} = 'ldap.example.com';
$Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=example,dc=com';
$Self->{'AuthModule::LDAP::UID1'} = 'uid';

Warnung

Alle Backends werden nacheinander verwendet. Die UID muss für alle Backends eindeutig sein, da sonst einige Nebenwirkungen auftreten können.

Wenn ein LDAP-Server nicht verfügbar ist, sollte ein anderer Server als Fallback verwendet werden. Da es in jeder Backend-Konfiguration nur eine Host-Einstellung gibt, müssen die Server in einem Array hinzugefügt werden.

$Self->{'AuthModule::LDAP::Host'} = ['ldaps://ldapserver_one.com', 'ldaps://ldapserver_two.com'];
$Self->{'AuthModule::LDAP::Die'} = 0;

Bitte beachten Sie, dass es keine echte Fallback-Funktionalität gibt, aber dieser Workaround sollte in den meisten Fällen funktionieren. Das System versucht immer zuerst den ersten LDAP-Server und nach einem Timeout den zweiten. Empfohlen wird die Konfiguration eines Fallback- oder redundanten LDAP auf Serverseite.

Um mit einem bestimmten Verzeichnis-Server zu synchronisieren, müssen Sie die entsprechende Einstellung zu Ihrem Agenten-Authentifizierungs-Backend hinzufügen. Um dies zu erreichen, kopieren Sie den folgenden Block aus der Defaults.pm und fügen ihn in die Config.pm ein.

$Self->{'AuthModule::UseSyncBackend'} = 'AuthSyncBackend';

Um mehrere Backends zu verwenden, fügen Sie der Config.pm einen zusätzlichen Abschnitt des Beispielcodes hinzu. Achten Sie darauf, dass alle Einstellungen mit einem Zahlenwert [1-9] versehen sind, der angibt, welche Einstellungen zu welchem Backend gehören.

$Self->{'AuthModule::UseSyncBackend1'} = 'AuthSyncBackend1';

Die Wiederverwendung eines Agenten-Synchronisations-Backends ist ebenfalls möglich.

$Self->{'AuthModule::UseSyncBackend1'} = 'AuthSyncBackend';

Es ist ratsam, die Agentendaten zu synchronisieren, damit Agenten nicht vor der Autorisierung manuell in die Tabelle users aufgenommen werden müssen. Zusätzlich können Gruppen und Rollen automatisch über Sicherheitsobjekte des Verzeichnis-Servers hinzugefügt werden.

Bemerkung

Es können mehrere Agenten-Synchronisations-Backend-Blöcke verwendet werden. Bitte stellen Sie sicher, dass Sie allen Einstellungen einen numerischen Wert [1-9] hinzufügen, um anzuzeigen, welche Einstellungen zu welchem Backend gehören. Jedes AuthSyncModule muss explizit in einem Agenten-Authentifizierungs-Backend verwendet werden.

Synchronisation der Benutzerdaten bei der Anmeldung. Um dies zu erreichen, kopieren Sie den folgenden Block aus der Defaults.pm und fügen ihn in die Config.pm ein.

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

# 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'} = '';
$Self->{'AuthSyncModule::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 logical OR-Expression, like AlwaysFilter => '(|(mail=*abc.com)(mail=*xyz.com))'
$Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '';

# AuthSyncModule::LDAP::UserSyncMap
# (map if agent should create/synced from LDAP to DB after successful login)
# you may specify LDAP-Fields as either
#  * list, which will check each field. first existing will be picked ( ["givenName","cn","_empty"] )
#  * name of an LDAP-Field (may return empty strings) ("givenName")
#  * fixed strings, prefixed with an underscore: "_test", which will always return this fixed string
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
    # DB -> LDAP
    UserFirstname => 'givenName',
    UserLastname  => 'sn',
    UserEmail     => 'mail',
};

# 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->{'AuthSyncModule::LDAP::Charset'} = 'iso-8859-1';

# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
$Self->{'AuthSyncModule::LDAP::Params'} = {
    port    => 389,
    timeout => 120,
    async   => 0,
    version => 3,
};

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

# Attributes needed for group syncs
# (attribute name for group value key)
$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'memberUid';
# (attribute for type of group content UID/DN for full ldap name)
$Self->{'AuthSyncModule::LDAP::UserAttr'} = 'UID';
$Self->{'AuthSyncModule::LDAP::UserAttr'} = 'DN';

# AuthSyncModule::LDAP::UserSyncInitialGroups
# (sync following group with rw permission after initial create of first agent
# login)
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
    'users',
];

# AuthSyncModule::LDAP::UserSyncGroupsDefinition
# (If "LDAP" was selected for AuthModule and you want to sync LDAP
# groups to otrs groups, define the following.)
$Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
    # ldap group
    'cn=agent,o=otrs' => {
        # otrs group
        'admin' => {
            # permission
            rw => 1,
            ro => 1,
        },
        'faq' => {
            rw => 0,
            ro => 1,
        },
    },
    'cn=agent2,o=otrs' => {
        'users' => {
            rw => 1,
            ro => 1,
        },
    }
};

# AuthSyncModule::LDAP::UserSyncRolesDefinition
# (If "LDAP" was selected for AuthModule and you want to sync LDAP
# groups to otrs roles, define the following.)
$Self->{'AuthSyncModule::LDAP::UserSyncRolesDefinition'} = {
    # ldap group
    'cn=agent,o=otrs' => {
        # otrs role
        'role1' => 1,
        'role2' => 0,
    },
    'cn=agent2,o=otrs' => {
        'role3' => 1,
    }
};

# AuthSyncModule::LDAP::UserSyncAttributeGroupsDefinition
# (If "LDAP" was selected for AuthModule and you want to sync LDAP
# attributes to otrs groups, define the following.)
$Self->{'AuthSyncModule::LDAP::UserSyncAttributeGroupsDefinition'} = {
    # ldap attribute
    'LDAPAttribute' => {
        # ldap attribute value
        'LDAPAttributeValue1' => {
            # otrs group
            'admin' => {
                # permission
                rw => 1,
                ro => 1,
            },
            'faq' => {
                rw => 0,
                ro => 1,
            },
        },
    },
    'LDAPAttribute2' => {
        'LDAPAttributeValue' => {
            'users' => {
                rw => 1,
                ro => 1,
            },
        },
     }
};

# AuthSyncModule::LDAP::UserSyncAttributeRolesDefinition
# (If "LDAP" was selected for AuthModule and you want to sync LDAP
# attributes to otrs roles, define the following.)
$Self->{'AuthSyncModule::LDAP::UserSyncAttributeRolesDefinition'} = {
    # ldap attribute
    'LDAPAttribute' => {
        # ldap attribute value
        'LDAPAttributeValue1' => {
            # otrs role
            'role1' => 1,
            'role2' => 1,
        },
    },
    'LDAPAttribute2' => {
        'LDAPAttributeValue1' => {
            'role3' => 1,
        },
    },
};

Das Minimum, das für die Verbindung zu einem Verzeichnis-Server erforderlich ist, sind:

$Self->{AuthSyncModule} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'ldap.example.com';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=example,dc=com';
$Self->{'AuthSyncModule::LDAP::UID'} = 'uid';
Host

Der DNS-Name oder die IP Ihres Verzeichnis-Servers.

BaseDN

Der Startpunkt in Ihrem Verzeichnisbaum.

UID

Das Attribut, das für die Anmeldung und Identifizierung verwendet wird.

Bemerkung

Das ist ein sAMAccountName für ein Active Directory.

Agenten-Backend – HTTPBasicAuth

Wenn Sie eine Single-Sign-On-Lösung für alle Ihre Agenten implementieren möchten, können Sie HTTPBasic-Authentifizierung (für alle Ihre Systeme) verwenden und das HTTPBasicAuth-Modul mit OTRS nutzen. Mit OTRS ist keine Anmeldung mehr erforderlich.

# This is an example configuration for an apache ($ENV{REMOTE_USER})
# auth. backend. Use it if you want to have a singe login through
# apache http-basic-auth.
#    $Self->{AuthModule} = 'Kernel::System::Auth::HTTPBasicAuth';
# In case there is a leading domain in the REMOTE_USER, you can
# replace it by the next config option.
#    $Self->{'AuthModule::HTTPBasicAuth::Replace'} = 'example_domain\\';
# In case you need to replace some part of the REMOTE_USER, you can
# use the following RegExp ($1 will be new login).
#    $Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} = '^(.+?)@.+?$';
# Defines a header name, that has to be present for agents to authenticate.
#    $Self->{'AuthModule::HTTPBasicAuth::RequiredLoginHeader'} = 'RequiredHeader';
# Defines a header value, that has to be present in the required header for agents to authenticate.
#    $Self->{'AuthModule::HTTPBasicAuth::RequiredLoginHeaderValue'} = 'RequiredHeaderValue';
# Defines a header value regular expression, that has to be present in the required header for agents to authenticate.
#    $Self->{'AuthModule::HTTPBasicAuth::RequiredLoginHeaderValueRegExp'} = '^RequiredHeaderRegExp$';
# Note:
# If you use this module, you should use as fallback the following
# config settings if user isn't login through apache ($ENV{REMOTE_USER}).
#    $Self->{LoginURL} = 'http://host.example.com/not-authorised-for-otrs.html';
#    $Self->{LogoutURL} = 'http://host.example.com/thanks-for-using-otrs.html';

Die im folgenden Beispiel gezeigten Konfigurationsparameter können verwendet werden, um die Benutzerdaten aus den HTTP-Headern in die lokale OTRS-Datenbank zu synchronisieren. Um dies zu erreichen, kopieren Sie den folgenden Block aus der Defaults.pm und fügen ihn in die Config.pm ein.

$Self->{AuthSyncModule} = 'Kernel::System::Auth::Sync::HTTPHeader';

$Self->{'AuthSyncModule::HTTPHeader::UserSyncMap'} = {
    # DB -> Header
    UserFirstname => 'givenName',
    UserLastname  => 'lastName',
    UserEmail     => 'mail',
};

# AuthSyncModule::HTTPHeader::UserSyncInitialGroups
# Sync the following group(s) with rw permission after initial agent login.
$Self->{'AuthSyncModule::HTTPHeader::UserSyncInitialGroups'} = [
    'users',
];

# AuthSyncModule::HTTPHeader::UserSyncGroupsDefinition
# Sync groups based on headers (no value check, just existence of header is checked).
$Self->{'AuthSyncModule::HTTPHeader::UserSyncGroupsDefinition'} = {
    # header name
    'IsAgent' => {
        # otrs group
        'admin' => {
            # permission
            rw => 1,
            ro => 1,
        },
        'stats' => {
            rw => 0,
            ro => 1,
        },
    },
};

# AuthSyncModule::HTTPHeader::UserSyncAttributeGroupsDefinition
# Sync groups based on header values.
# Multiple values per header are possible if separated by ',' or ';' (e.g. 'OTRS_Groups: admin, faq, users').
$Self->{'AuthSyncModule::HTTPHeader::UserSyncAttributeGroupsDefinition'} = {
    # header name
    'HTTPHeaderAttribute1' => {
        # header attribute
        'HTTPHeaderAttribute1Value1' => {
            # otrs group
            'admin' => {
                # permission
                rw => 1,
                ro => 1,
            },
            'stats' => {
                rw => 1,
                ro => 1,
            },
        },
    },
    'HTTPHeaderAttribute2' => {
        'HTTPHeaderAttribute1Value2' => {
            'users' => {
                rw => 1,
                ro => 1,
            },
        },
    },
};

# AuthSyncModule::HTTPHeader::UserSyncRolesDefinition
# Sync roles based on headers (no value check, just existence of header is checked).
$Self->{'AuthSyncModule::HTTPHeader::UserSyncRolesDefinition'} = {
    # header name
    'IsAgent' => {
        # otrs role
        'role1' => 1,
        'role2' => 0,
    },
};

# AuthSyncModule::HTTPHeader::UserSyncAttributeRolesDefinition
# Sync roles based on header values.
# Multiple values per header are possible if separated by ',' or ';' (e.g. 'OTRS_Roles: 1st_level, 2nd_level, admin').
$Self->{'AuthSyncModule::HTTPHeader::UserSyncAttributeRolesDefinition'} = {
    # header name
    'HTTPHeaderAttribute1' => {
        # header value
        'HTTPHeaderAttribute1Value1' => {
            # otrs role
            'role1' => 1,
            'role2' => 1,
        },
    },
    'HTTPHeaderAttribute2' => {
        'HTTPHeaderAttribute1Value2' => {
            'role3' => 1,
        },
    },
};

Bemerkung

Die Synchronisation ist auf die Existenz der angegebenen HTTP-Header angewiesen. Die Konfiguration dieser Header liegt außerhalb des Umfangs dieser Dokumentation.

Agent Back End – Radius

Die im folgenden Beispiel gezeigten Einstellungen können verwendet werden, um Ihre Agenten gegenüber einem Radius-Server zu authentifizieren.

# This is example configuration to auth. agents against a radius server.
#    $Self->{'AuthModule'} = 'Kernel::System::Auth::Radius';
#    $Self->{'AuthModule::Radius::Host'} = 'radiushost';
#    $Self->{'AuthModule::Radius::Password'} = 'radiussecret';

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