OTRS und AD allgemeine Benutzerverwaltung

Hilfe zu Znuny Problemen aller Art
Locked
EBZIS
Znuny newbie
Posts: 5
Joined: 21 May 2010, 11:32
Znuny Version: 2.4.7

OTRS und AD allgemeine Benutzerverwaltung

Post by EBZIS »

Hallo allerseits,
ich verstehe leider nicht so wirklich die Benutzerverwaltung von OTRS.
Kundenbenutzer kann ich mit der Weile aus der AD auslesen, die können sich anmelden,
Tickets schreiben usw.
Wie kann ich es jedoch umsetzen, dass ich diese auch als Benutzer verwalten kann und sie
in Gruppen einordne.
Ebenso würde ich gerne Agents raus suchen (jedoch finde ich da kein Benutzer durch die Suchfunktion)
und diese als solche deklarieren.

Sry, so Fragen habt ihr bestimmt ständig, aber die Suchfunktion dieses Boards finde ich bescheiden.
Wenn ich etwas suche bekomme ich Meldungen wie z.B:
"Die folgenden Wörter deiner Suchanfrage wurden ignoriert, da sie zu häufig vorkommen"
OTRS 2.4.7 complete installer package for windows (Strawberry Perl 5.10.0.6 Portable),
temporary installed on WinXP.
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Re: OTRS und AD allgemeine Benutzerverwaltung

Post by ddDagobert »

Hallo,

bitte füge deine Signatur hinzu! http://forums.otrs.org/viewtopic.php?f=34&t=242

und schon mal als Tipp:

du bindest in der config.pm die Kunden aus dem AD ein. Das musst du auch ähnlich für die Agenten machen... Durch einen Filter kannst du nur bestimmte User als Agenten zulassen.

Im Admin-Bereich sind dann:
Kundenbenutzer: alle Kunden
Benutzer: alle Agenten
Produktiv: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Test: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Entwicklung: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
EBZIS
Znuny newbie
Posts: 5
Joined: 21 May 2010, 11:32
Znuny Version: 2.4.7

Re: OTRS und AD allgemeine Benutzerverwaltung

Post by EBZIS »

Hallo ddDagobert,

die Suchfunktion, zumindest für die Kundenbenutzer, funktioniert auch in so weit mit LDAP.
Wenn ich unter Admin -> Kunden Benutzer -> Suche -> Suche nach:
den Nachnamen eingebe bekomme ich den AD User mit all seinen Details angezeigt.
Ich sehe aber keine Möglichkeit diese hinzuzufügen, um diesen z.B. in eine Gruppe zu schieben.

Der LDAP Suche beim Admin funktioniert leider garnicht.
OTRS 2.4.7 complete installer package for windows (Strawberry Perl 5.10.0.6 Portable),
temporary installed on WinXP.
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Re: OTRS und AD allgemeine Benutzerverwaltung

Post by ddDagobert »

Zum Verständnis: du kannst sowohl Kunden, als auch Agenten ein Backend eingeben.
Ich sehe aber keine Möglichkeit diese hinzuzufügen, um diesen z.B. in eine Gruppe zu schieben.
Wenn du die Kunden aus dem LDAP holst, dann kannst du in dieser Quelle manuell keine hinzufügen.
Du kannst aber mehrere Backends anbinden, z.B. noch eine DB, wo du manuelle Einträge hinzufügst.

Gruppen in ITSS kannst du nur den Agenten hinzufügen. Diese findest du unter Admin-Benutzer. Welche Datenquelle dafür verwendet werden muss, musst du natürlich auch in der config.pm festlegen..

Hier ein Auszug aus meiner config pm.
Zunächst die eingebunden Kunden

Code: Select all

#############

# CustomerUser
# (customer user ldap backend and settings)
# 1 Backend!!!!!
    $Self->{CustomerUser} = {
        Name => 'Kundenbackend1',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            # ldap host
            Host => '10.2.130.103',
            # ldap base dn
            BaseDN => 'ou=x,dc=x,dc=x,dc=de',
            # search scope (one|sub)
            SSCOPE => 'sub',
            # The following is valid but would only be necessary if the
            # anonymous user does NOT have permission to read from the LDAP tree
            UserDN => 'xyz',
            UserPw => 'xyz',
            # in case you want to add always one filter to each ldap query, use
            # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
#		  Filter im AD: um die Funktionsaccounts auszuschließen, müssen die Felder
#           E-MAil, Department und Description (info) belegt sein!
            AlwaysFilter => '(&(mail=*)(department=*) (info=*)(givenname=*))',
          SourceCharset => 'utf-8',
            DestCharset => 'utf-8',
            # die if backend can't work, e. g. can't connect to server
            Die => 0,
            # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
            Params => {
                port => 389,
                timeout => 120,
                async => 0,
                version => 3,
            },
        },
        # customer uniq id
        CustomerKey => 'samaccountname',
        # customer #
        CustomerID => 'info',
        CustomerUserListFields => ['givenname', 'sn', 'mail'],
        CustomerUserSearchFields => ['mail','cn','telephonenumber','sn','samaccountname','department'],
        CustomerUserSearchPrefix => '*',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
        # show now own tickets in customer panel, CompanyTickets
        CustomerUserExcludePrimaryCustomerID => 0,
        # admin can't change customer preferences
        AdminSetPreferences => 0,
        # cache time to life in sec. - cache any ldap queris
        CacheTTL => 240,
        Map => [
            # note: Login, Email and CustomerID needed!
           # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
            [ 'UserSalutation', 'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',   'samaccountname',  0, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            0, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'department',      1, 1, 'var', '', 0 ],
            [ 'UserCustomerIDs', 'CustomerIDs', 'info',          0, 1, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', 'javascript:launchWebDialerServlet(\'$Data{"UserPhone"}\')', 0 ],
        ],
    };
    
    # (take care that Net::LDAP is installed!)
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = '10.2.130.102';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'ou=LVG,dc=blva,dc=bayern,dc=de';
    $Self->{'Customer::AuthModule::LDAP::UID'} ='samaccountname';

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

    # 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->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';

    # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
    $Self->{'Customer::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->{'Customer::AuthModule::LDAP::Die'} = 0;
    
 
Für die Agenten das hier:

Code: Select all

# 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'} = '10.x.xxx.xxx';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'ou=xx,dc=xx,dc=xx,dc=de';
    $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 xyz to use otrs)
    $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=G_Agent,ou=Applications,ou=Gruppen,ou=xx,ou=xx,dc=xx,dc=xx,dc=de';
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
    # for ldap posixGroups objectclass (just uid)
    $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
    # 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'} = 'xx';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxx';
    # 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;

    # UserSyncLDAPMap
    # (map if agent should create/synced from LDAP to DB after login)
    $Self->{UserSyncLDAPMap} = {
        # DB -> LDAP
        UserLogin => 'samaccountname',
        UserFirstname => 'givenName',
        UserLastname => 'sn',
        UserEmail => 'mail',
#        UserPhone => 'telephonenumber',
    };
Der LDAP Suche beim Admin funktioniert leider garnicht.
Da weiß ich jetzt nicht, was du meinst.

Ansonsten empfehle ich dir auch noch mal die Anleitung:

http://doc.otrs.org/2.4/de/html/x1907.h ... ckend-ldap
bzw.
http://doc.otrs.org/2.4/de/html/x1978.html
Produktiv: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Test: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Entwicklung: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Locked