Parameter um Kundendaten mit AD zu synchronisieren

Hilfe zu OTRS Problemen aller Art
Post Reply
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo Forummitglieder, Hallo jojo,

ich habe wieder mal ein Problem. Da meine Benutzer (Kunden/Agenten) gegenüber einer Win 2003 AD für otrs authentifizieren sollen triit folgendes Problem auf. Meine Agenten können sich gegenüber der AD authentifizieren und sobald sie sich das erste mal authentifizieren werden ihre Daten auch in die otrs DB übernommen. Beim meinen Kunden sieht es so aus das sie sich nur gegenüber der AD authentifizieren wenn ich manuell ein Benutzerkonto in der otrs DB anlege welches dem AD Konto entspricht. Sprich die Authentifizierung gegenüber der AD klappt bei Kunden nur wenn ein lokales otrs Konto besteht.
Für die Agenten sind in meiner Konfig die Sync Parameter gesetzt. Leider habe ich in der Default.pm keine Angabe/Paramter gefunden wie die beim syncen der Daten für die Kundenkonten sein müssen. Ich wäre somit sehr dankbar wenn ihr mir diese Paramter mal aus eurer Konfig bzw. Erfahrung nennen könntet. Ich danke schon mal im voraus.
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Parameter um Kundendaten mit AD zu synchronisieren

Post by ddDagobert »

Hi,
hab zwar noch die 2.3., aber die Config sollte sich nicht allzusehr geändert habe ;-)

Such mal in der Default nach
# (customer user ldap backend and settings)

Hier findest du eigentlich alle Einstellungen.

Ausserdem solltest du dir noch in der SysConfig unter
Framework -> Frontend::Customer::Auth die Einstellungen ansehen.

Viele Grüße

ddDagobert
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
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

ok danke erst mal. Ich werde es mal probieren und gebe dann bescheid.
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo Leute,

ich habe jetzt schon etlich Kombinationen ausprobiert aber keine hin bekommen. Hier mal meine Config.pm mit dem Abschnitt der LDAP Authentifizierung.

Wie gesagt die Agenten können sich anmelden und werden auch angelegt. Bei den Kunde erscheint im Log nur eine Abfrage und sie werden dann auch im AD gefunde und als ok deklariert aber bei der Anmeldung bekomme ich immer ein Panic! No UserData!!!

Habe ich noch was vergessen oder zu viel oder falsch eingetragen?????


$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';

$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxx';


$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxxxxxx';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
Phone => 'telephoneNumber',
Username => 'sAMAccountName',
comment => 'description',
};


$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';

$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxx;

$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.6',
BaseDN => 'dc=feierabend,dc=de',
SSCOPE => 'sub',
UserDN => 'Administrator@feierabend.de',
UserPw => 'xxxxxxxxx',
AlwaysFilter => '
Die => 1,

},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn','mail'],
CustomerUserSearchFields => ['cn','mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname','sn'],
Map => [
[ 'UserFirstname','Firstname','givenname',1,1,'var'],
[ 'UserLastname','Lastname','sn',1,1,'var'],
[ 'UserLogin','Login','sAMAccount',1,1,'var'],
[ 'UserEmail','Email','mail',1,1,'var'],
[ 'UserCustomerID','CustomerID','mail',0,1,'var'],
[ 'UserPhone','Phone','telephonenumber',1,0,'var'],
],


$Self-> {UserSyncLDAPMap} = {
Firstname => 'givenName',
Lastname => 'sn',
Email => 'mail',
};



# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# End of your own config options!!! #
# #
# ---------------------------------------------------- #
# ----------------------------
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
jojo
Znuny guru
Posts: 15019
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Parameter um Kundendaten mit AD zu synchronisieren

Post by jojo »

Nach AlwaysFilter => ' fehlt ein ',
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo Jojo,

danke für den Tip aber daran lag es leider nicht.

Hat nicht jemand dieses Szenarion bei sich am laufen und würde so nett sein mir mal diesen Teil seiner Config hochzuladen? Es solleb wie schon beschreiben die Agenten und Kundendaten aus dem AD kommen und bei anmelden beider Parteien in die OTRS Agenten als auch Kundendaten DB geschriebend/synchronisiert werden. Bei den Agent klappt es super aber bei den Kunden wird noch nichts in die OTRS DB geschrieben. Ich denke nicht das ich noch so weit vom Ziel entfernt bin aber trotzdem mache ich wohl noch einen Fehler. Ich danke für jede nützliche Hilfe. :?
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
maxbacks
Znuny wizard
Posts: 326
Joined: 30 Jan 2008, 14:59
Znuny Version: 6.0.19
Real Name: Max Hendrik Backs

Parameter um Kundendaten mit AD zu synchronisieren

Post by maxbacks »

He Typ, es ist Sonntag ;-)

ich sitze vor dem gleichen Problem wie du, aber mit deinem obrigen Text konnte ich mein Problem lösen. Hier meine Config.pm-Teile zum Customer.
Wir verwenden eine Win2K-Domäne. Mit der Config kann ich nach Kunden im AD suchen und ich kann mich als Kunde über die Customer.pl einloggen.

edit: Die Config stammt aus meinem Testsystem OTRS 2.4.5

Code: Select all

    # --------------------------------------------------- #
    # customer authentication settings                    #
    # (enable what you need, auth against otrs db,        #
    # against a LDAP directory, against HTTP basic        #
    # authentication and against Radius server)           #
    # --------------------------------------------------- #

    # This is an example configuration for an LDAP auth. backend.
    # (take care that Net::LDAP is installed!)
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.4';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=local,dc=de';
    $Self->{'Customer::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->{'Customer::AuthModule::LDAP::GroupDN'} = '';
#    $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberUid';
    # for ldap posixGroups objectclass (just uid)
#    $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'UID';
    # for non ldap posixGroups objectclass (full user dn)
#    $Self->{'Customer::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->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'ticket';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'geheim';

    # 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'} = '';

    # in case you want to add a suffix to each customer 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->{'Customer::AuthModule::LDAP::UserSuffix'} = '@domain.com';

    # 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'} = 1;

   # --------------------------------------------------- #
    # customer user ldap backend and settings             #
    # --------------------------------------------------- #

# CustomerUser
# (customer user ldap backend and settings)
    $Self->{CustomerUser} = {
        Name => 'LDAP Backend',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            # ldap host
            Host => '192.168.0.4',
            # ldap base dn
            BaseDN => 'dc=local,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 => 'ticket',
            UserPw => 'geheim',
        },
        # customer uniq id
        CustomerKey => 'sAMAccountName',
        # customer #
        CustomerID => 'mail',
        CustomerUserListFields => ['cn', 'mail'],
        CustomerUserSearchFields => ['uid', 'cn', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
        # show not own tickets in customer panel, CompanyTickets
#        CustomerUserExcludePrimaryCustomerID => 0,
        # add a ldap filter for valid users (expert setting)
        # CustomerUserValidFilter => '(!(description=gesperrt))',
        # admin can't change customer preferences
        AdminSetPreferences => 0,
        # cache time to life in sec. - cache any ldap queris
        CacheTTL => 0,
        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',             1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
            # [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
        ],
    };

Ticket-System
Ubuntu 18.04
OTRS 6.0.19
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

na das ist ja toll das ich dir weiter helfen konnte. Dann werde ich mal den Code kopieren und schauen wie es bei mir aussieht. Vielleicht können wir uns ja noch öfter mal helfen. Ich sage bescheid wenn es läuft. Bis dann :D
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo Leute,

ich drehe noch durch. Ich bekomme im Apache log immer einen Perl Fehler und der Apache startet nicht. Seht ihr irgendwo unten bei use strict; einen Fehler oder ob ich dort eine ] oder } oder }; vergessen habe?


$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';

$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxxxxxx';


$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxxxxx';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
Phone => 'telephoneNumber',
Username => 'sAMAccountName',
comment => 'description',
};


$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';

$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxx';



$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.6',
BaseDN => 'dc=feierabend,dc=de',
SSCOPE => 'sub',
UserDN => 'Administrator@feierabend.de',
UserPw => 'xxxxxxxx',
# AlwaysFilter => ''
# Die => 1,

# };

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
CustomerUserSearchFields => ['uid', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname','sn'],
AdminsetPreferences => 0,
CacheTTL => 0,
Map => [
[ 'UserSalution', 'Title', 'title', 1, 0, 'var', '', 0 ],
[ 'UserFirstname','Firstname','givenname',1,1,'var', '', 0 ],
[ 'UserLastname','Lastname','sn',1,1,'var', '', 0 ],
[ 'UserLogin','Login','sAMAccount',1,1,'var', '', 0 ],
[ 'UserEmail','Email','mail',1,1,'var', '', 0 ],
[ 'UserCustomerID','CustomerID','mail',0,1,'var', '', 0 ],
[ 'UserPhone','Phone','telephonenumber',1,0,'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0 , 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};


#$Self-> {UserSyncLDAPMap} = {
#Firstname => 'givenName',
#Lastname => 'sn',
#Email => 'mail',
#};



# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# End of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #




# ----------------------------------------------------- #
# needed system stuff (don't edit this) #
# ----------------------------------------------------- #
use strict;
use warnings;

use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.21 $)[1];

# -----------------------------------------------------#

1;
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Parameter um Kundendaten mit AD zu synchronisieren

Post by ddDagobert »

Servus,

zum Vergleich: mein $Self -> {CustomerUser} ist etwas anders aufgebaut. Bei dir fehlt ein Teil und somit auch ein paar }

Schau dir mal die Zeilen vor CustomerKey an.

Code: Select all

# CustomerUser
# (customer user ldap backend and settings)
    $Self->{CustomerUser} = {
        Name => 'BVV',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            # ldap host
            Host => '99.9.999.999',
            # ldap base dn
            BaseDN => 'ou=xx,dc=xx,dc=xx,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 => 'xUser',
            UserPw => 'xUserPassword',
            # 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=*))',
            # if your frontend is e. g. iso-8859-1 and the charset of your
            # ldap server is utf-8, use this options (if not, ignore it)
            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,
        # add a ldap filter for valid users (expert setting)
#        CustomerUserValidFilter => '((accountExpires=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 ],
        ],
    };
Gruß

ddDagobert
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
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo ddDagobert,

ich bekomme den Fehler immer noch. Habe genau deine Config über nommen. Das Log sagt das bei mir mit der Zeile

# ----------------------------------------------------- #
# needed system stuff (don't edit this) #
# ----------------------------------------------------- #
use strict;

was nicht stimmt. Deshalb ist es für mich wichtig was du genau nach den Zeilen

[ '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 ],
],
};

in der Konfigurationsdatei zu stehe hast. Ich denke das ist noch irgend eine Klammer oder Schleife untergegangen. Danke schon mal für deine Hilfe!
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
jojo
Znuny guru
Posts: 15019
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Parameter um Kundendaten mit AD zu synchronisieren

Post by jojo »

Probier mal:

cd /opt/otrs
perl -cw Kernel/Config.pm
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo Jojo,

danke erst einmal. Ich habe den von dir genannten Befehl ausgeführt und alle Fehler beseitigt bis zum Schluss Syntax OK stand. Jetzt wollte ich aber meinen Apache neu starten bekomme aber folgende Fehlermeldung in mein Apache error.log

[Mon Jan 18 23:51:42 2010] [error] Kernel/Config.pm did not return a true value at /opt/otrs/scripts/apache2-perl-startup.pl line 61.\nBEGIN failed--compilation aborted at /opt/otrs/scripts/apache2-perl-startup.pl line 61.\nCompilation failed in require at (eval 2) line 1.\n
[Mon Jan 18 23:51:42 2010] [error] Can't load Perl file: /opt/otrs/scripts/apache2-perl-startup.pl for server otrs.feierabend.de:0, exiting...


ich habe werde was an der Apacheconfig noch an der Datei apache2-perl-startup.pl geändert.
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
jojo
Znuny guru
Posts: 15019
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Parameter um Kundendaten mit AD zu synchronisieren

Post by jojo »

Dann hast Du anscheinend zuviel aus der Config.pm rausgelöscht!

Am besten nimmst Du die Config.pm.dist und erstellst eine neue Config.pm. Die entsprechenden Blöcke für weitere Konfigurationen solltest Du ausschließlich aus der Defaults.pm kopieren und in der Config.pm anpassen
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

so ich habe jetzt mal mein Config neu erstellt. Die Agenten können sich anmelden und werden auch in der OTRS DB angelegt. Die Kunden können sich nicht anmelden und werden auch nicht angelegt. Das sylog file zeigt aber an das die authentifizierung der Kunden funktioniert weil ein

Jan 20 00:40:47 otrs OTRS-CGI-10[3014]: [Notice][Kernel::System::CustomerAuth::LDAP::Auth] CustomerUser: thici01 (CN=Ralf Richter,CN=Users,DC=feierabend,DC=de) authentication ok (REMOTE_ADDR: 192.168.0.1).

ausgegeben wird. Der Kunde wird aber nicht eingelogt und es wird ein Panic! No UserData!!! angezeigt.

hier mal meine Kunden Authentifizierungsparameter. Was habe ich vergessen, zu viel, oder falsch gemacht das der Kunde sich nicht anmelden kann bzw. auch nicht in der OTRS DB angelegt wird???


$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxx;

$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.6',
BaseDN => 'dc=feierabend,dc=de',
SSCOPE => 'sub',
UserDN => 'Administrator@feierabend.de',
UserPw => 'xxxxxx',
AlwaysFilter => '(&(mail=*)(departmen=*) (info=*)(givenname=*))',
SourceCharset => 'utf8',
DestCharset => 'iso-8859-1',
Die => 1,
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},

CustomerKey => 'samaccountName',
CustomerID => 'info',
CustomerUserListFields => ['givenname', 'cn', 'mail'],
CustomerUserSearchFields => ['mail', 'cn', 'telephonenumber', 'samaccountname', 'department'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname','sn'],
CustomerUserExcludePrimaryCustomerID => 0,
CustomerUserValidFilter => '((accountExpires=0))',
AdminsetPreferences => 0,
CacheTTL => 0,
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', 'uid', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
maxbacks
Znuny wizard
Posts: 326
Joined: 30 Jan 2008, 14:59
Znuny Version: 6.0.19
Real Name: Max Hendrik Backs

Parameter um Kundendaten mit AD zu synchronisieren

Post by maxbacks »

numx wrote: 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', 'uid', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};
Tausche mal 'uid' durch 'sAMAccountName'

Ich habe den Wert mit dem LDAP Admin herausgefunden, als ich mir die Atribute und Values bei einem Benutzer angeschaut habe. Ich habe nur rudimentäre Verzeichnisdienst-kenntisse. Vielleicht hilft dir das auch..
http://ldapadmin.sourceforge.net/
Ticket-System
Ubuntu 18.04
OTRS 6.0.19
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Parameter um Kundendaten mit AD zu synchronisieren

Post by ddDagobert »

das von maxbacks würde ich auch vorschlagen.

Ausserdem fällt mir noch auf, das du entsprechend meinerm Config eintrag die Suchfelder:

CustomerUserSearchFields => ['mail', 'cn', 'telephonenumber', 'samaccountname', 'department'],

übernommen hast, dir eine Zuweisung des departments fehlt.
Ausserdem hast du den AlwaysFilter eingeschaltet.

Die CustomerID ist bei dir wohl 'mail' und nicht wie bei mir 'info'.

Geh mal langsamer vor.
Bekommst du es vielleicht mit folgendem hin?

Code: Select all

$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxx;

$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.6',
BaseDN => 'dc=feierabend,dc=de',
SSCOPE => 'sub',
UserDN => 'Administrator@feierabend.de',
UserPw => 'xxxxxx',
#AlwaysFilter => '(&(mail=*)(departmen=*) (info=*)(givenname=*))',
SourceCharset => 'utf8',
DestCharset => 'iso-8859-1',
Die => 1,
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},

CustomerKey => 'samaccountName',
CustomerID => 'mail',
CustomerUserListFields => ['givenname', 'cn', 'mail'],
CustomerUserSearchFields => ['mail', 'cn', 'samaccountname'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname','sn'],
CustomerUserExcludePrimaryCustomerID => 0,
CustomerUserValidFilter => '((accountExpires=0))',
AdminsetPreferences => 0,
CacheTTL => 0,
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'samaccountname', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
],
};
Wenn's jetzt klappt, stückweise erweitern!
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
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

ja jetzt haut es hin. Ich habe statt uid den sAMAccountName genommen und schon konnte ich mich auch mit meinen Kunden über das AD anmelden.

Jetzt ist mir aber aufgefallen das die Daten der Kunden und der Agenten wohl doch nicht ins entsprechende Backend geschrieben wurde weil wenn ich den AD Server runter fahre kann sich werder ein Agent noch ein Kunde anmelden. Eigentlich sollte es doch so sein das beim AD nachgefragt wird ob das Passwort stimmt oder nicht. Ist das AD nicht da soll auf die lokalen Daten die ja eigentlich bei einer Anmeldung geschrieben werden sollen zugegriffen wird oder? Da wird aber irgendwie nicht auf die Agenten bzw. Kunden DB zugegriffen sondern es kommt eine LDAP Fehlermeldung das das Backend (sprich das AD) nicht vorhanden ist. Wie kann ich prüfen ob die Daten nach erfolgreicher Anmeldung wirklich in die entsprechenden Töpfe geschrieben werden und wo stelle ich ein das wenn das AD nicht da iat die lokale Datenbank mit den Authetifizierungsinformationen genutzt werden soll?

Danke für eure sehr guten Antworten. Das hilft echt weiter.............
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Parameter um Kundendaten mit AD zu synchronisieren

Post by ddDagobert »

Wie weiter oben schon erwähnt, kannst du Einstellungen in der Sysconfig festlegen.
FÜr die Agenten kannst du unter
Framework -> Frontend::Agent::Auth::LDAP angeben, was mit der DB synchronisiert werden soll.

Bei den Kunden bin ich mir nicht sicher, ob eine Synronisation geht - ich glaube, hier geht nur entweder LDAP/AD oder DB.
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
maxbacks
Znuny wizard
Posts: 326
Joined: 30 Jan 2008, 14:59
Znuny Version: 6.0.19
Real Name: Max Hendrik Backs

Parameter um Kundendaten mit AD zu synchronisieren

Post by maxbacks »

@numx:
ich denke bei den Agenten ist das ist korrekt so, denn du authentifizierst ja trozdem gegen das AD. Auch wenn die Agentendaten syncronisiert wurden, verhält sich OTRS so. Du kannst das ja ganz einfach in der Datenbank prüfen, dort wirst du die Agenten nämlich finden. Da du aber seit ich glauber der 2.3 mehrere Backends zur Authentifizierung angeben kannst, würde ich an zweiter Stelle die DB setzen...

Probier folgende Zeile mal zusätzlich aus, könnte funktionieren... könnte ;-)

Code: Select all

    # This is the auth. module againt the otrs db
    $Self->{'AuthModule2'} = 'Kernel::System::Auth::DB';
Und bei dem Kunden wird kein Eintrag in die DB syncronisiert.
Ticket-System
Ubuntu 18.04
OTRS 6.0.19
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

danke wieder mal für eure Hilfe und die Infos. Ich werde es mal ausprobieren und ein Feedback geben. Euch noch einen schönen Abend. :)
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

so ich habe den letzten Tip mal probiert. Wenn ich die Zeile

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

hinter meiner LDAP Anfrage eingefügt. Wenn ich es mal die Verbindung zum AD/LDAP abschalte sollte ja laut der angegeben Zeile die lokale DB genutzt werden. Das tut es aber nicht. Wenn ich in der Config.pm die Zeilen vom AD/LDAP ausdokumentiere dann greift die Zeile mit der lokalen DB. Es soll aber so sein das wenn der AD/LDAP Server nicht erreichbar ist die lokale Anmeldung durch einfügen der oben genannten Zeile möglich ist. Sprich wenn kein LDAP verfügbar nehme bitte die lokale DB. Wie sage ich otrs das es so verfahren soll? Gibt es da so art Regelwerk?
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
maxbacks
Znuny wizard
Posts: 326
Joined: 30 Jan 2008, 14:59
Znuny Version: 6.0.19
Real Name: Max Hendrik Backs

Parameter um Kundendaten mit AD zu synchronisieren

Post by maxbacks »

Teste doch mal 'Die => ' mit dem Wert 0 und 1 aus.
Ticket-System
Ubuntu 18.04
OTRS 6.0.19
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

die Tips mit


$Self->{'AuthModule'} = 'Kernel::System::Auth::DB';

und

$Self->{'AuthModule::LDAP::Die'} = 0;

sind nicht schlecht und ich denke auch meine Lösung aber wo genau soll ich sie in meiner Konfig plazieren wenn ich mich mit der lokalen DB authentifizieren möchte falls das AD/LDAP mal nicht erreichbar ist? Habe schon etliche Kombinationen ausprobiert (gefährliches Halbwissen) aber keine hat zum Erfolg geführt. Wo habt ihr die Werte plaziert?





package Kernel::Config;

sub Load {
my $Self = shift;
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# Start of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #

# ---------------------------------------------------- #
# database settings #
# ---------------------------------------------------- #
# DatabaseHost
# (The database host.)
$Self->{'DatabaseHost'} = 'localhost';
# Database
# (The database name.)
$Self->{'Database'} = 'otrs';
# DatabaseUser
# (The database user.)
$Self->{'DatabaseUser'} = 'otrs';
# DatabasePw
# (The password of database user. You also can use bin/CryptPassword.pl
# for crypted passwords.)
$Self->{'DatabasePw'} = 'hot';
# DatabaseDSN
# (The database DSN for MySQL ==> more: "man DBD::mysql")
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";

# (The database DSN for PostgreSQL ==> more: "man DBD::Pg")
# if you want to use a local socket connection
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";
# if you want to use a tcpip connection
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};host=$Self->{DatabaseHost};";

# ---------------------------------------------------- #
# fs root directory
# ---------------------------------------------------- #
$Self->{Home} = '/opt/otrs';

# ---------------------------------------------------- #
# insert your own config settings "here" #
# config settings taken from Kernel/Config/Defaults.pm #
# ---------------------------------------------------- #
# $Self->{SessionUseCookie} = 0;
# $Self->{CheckMXRecord} = 0;

# ---------------------------------------------------- #

# ---------------------------------------------------- #
# data inserted by installer #
# ---------------------------------------------------- #
# $DIBI$
$Self->{'SystemID'} = 10;
$Self->{'SecureMode'} = 1;
$Self->{'Organization'} = '';
$Self->{'LogModule::LogFile'} = '/tmp/otrs.log';
$Self->{'LogModule'} = 'Kernel::System::Log::SysLog';
$Self->{'FQDN'} = 'yourhost.example.com';
$Self->{'DefaultLanguage'} = 'de';
$Self->{'AdminEmail'} = 'admin@example.com';
$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'CustomerGroupSupport'} = 1;




$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxx';
# $Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
# $Self->{'AuthModule::LDAP::UserSuffix'} = '@feierabend.de';
$Self->{'AuthModule::LDAP::Charset'} = 'iso-8859-1';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};



$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxxxxx';
$Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
Phone => 'telephoneNumber',
Username => 'sAMAccountName',
comment => 'description',
};


$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxx';






$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.6',
BaseDN => 'dc=feierabend,dc=de',
SSCOPE => 'sub',
UserDN => 'Administrator@feierabend.de',
UserPw => 'xxxxxxxxx',
# AlwaysFilter => '(&(mail=*)(departmen=*) (info=*)(givenname=*))',
SourceCharset => 'utf8',
DestCharset => 'iso-8859-1',
Die => 1,
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},

CustomerKey => 'samaccountName',
CustomerID => 'mail',
CustomerUserListFields => ['givenname', 'cn', 'mail'],
CustomerUserSearchFields => ['mail', 'cn', 'telephonenumber', 'samaccountname', 'department'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname','sn'],
# CustomerUserExcludePrimaryCustomerID => 0,
# CustomerUserValidFilter => '((accountExpires=0))',
AdminsetPreferences => 0,
CacheTTL => 0,
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', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};







# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# End of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #
}

# ---------------------------------------------------- #
# needed system stuff (don't edit this) #
# ---------------------------------------------------- #
use strict;
use warnings;

use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.21 $)[1];

# -----------------------------------------------------#

1;
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
maxbacks
Znuny wizard
Posts: 326
Joined: 30 Jan 2008, 14:59
Znuny Version: 6.0.19
Real Name: Max Hendrik Backs

Parameter um Kundendaten mit AD zu synchronisieren

Post by maxbacks »

da muss ich passen...
Ticket-System
Ubuntu 18.04
OTRS 6.0.19
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Parameter um Kundendaten mit AD zu synchronisieren

Post by ddDagobert »

nach

Code: Select all


$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
füge

# Die if backend can't work, e. g. can't connect to server.
$Self->{'AuthModule::LDAP::Die'} = 1;
ein.
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
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

@ddDagobert: der Vorschlag hat nicht viel gebracht oder besser gesagt glaube ich das der Fehler woandes liegt.

Wenn ich mich als Agent einloggen will und das LDAP backend (Win2003 AD) ist mit am Netzt funktioniert die Authentifizierung und es werden auch Agentendaten in der lokalen otrs DB angelegt. Somit sollten bei wegfall oder ausfall des LDAP Backenend die Daten aus der lokalen otrs DB gezogen werden und die Authentifizierung müsste klappen. Wenn ich aber das LDAP backend mal vom Netz nehme und ich mich versuche anzumelden dann sucht otrs laut logfile erst das LDAP Backenend und springt dann auch so wie es sein soll zur lokalen otrs DB. Danach bekomme ich aber die Meldung das das Passwort des Benutzers falsch ist. Jetzt frage ich mich warum das Passwort falsch ist. es wurden doch alle Daten vom LDAP in die lokale DB gesynct. So sagt es jedenfalls das Logfile und wenn ich im otrs unter Benutzer nachsehe stehen die Daten des AD Users auch in der DB. Kann es sein das er zwar alle Benutzerdaten aber das Passwort nicht mit rüber synct und ich deshalb die Meldung bekomme das das Passwort falsch ist? Der Benutzer wird ja in der lokalen otrs DB gefunden aber das Passwort soll laut logfile falsch sein.


hier nochmal meine Config



package Kernel::Config;

sub Load {
my $Self = shift;
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# Start of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #

# ---------------------------------------------------- #
# database settings #
# ---------------------------------------------------- #
# DatabaseHost
# (The database host.)
$Self->{'DatabaseHost'} = 'localhost';
# Database
# (The database name.)
$Self->{'Database'} = 'otrs';
# DatabaseUser
# (The database user.)
$Self->{'DatabaseUser'} = 'otrs';
# DatabasePw
# (The password of database user. You also can use bin/CryptPassword.pl
# for crypted passwords.)
$Self->{'DatabasePw'} = 'hot';
# DatabaseDSN
# (The database DSN for MySQL ==> more: "man DBD::mysql")
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";

# (The database DSN for PostgreSQL ==> more: "man DBD::Pg")
# if you want to use a local socket connection
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";
# if you want to use a tcpip connection
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};host=$Self->{DatabaseHost};";

# ---------------------------------------------------- #
# fs root directory
# ---------------------------------------------------- #
$Self->{Home} = '/opt/otrs';

# ---------------------------------------------------- #
# insert your own config settings "here" #
# config settings taken from Kernel/Config/Defaults.pm #
# ---------------------------------------------------- #
# $Self->{SessionUseCookie} = 0;
# $Self->{CheckMXRecord} = 0;

# ---------------------------------------------------- #

# ---------------------------------------------------- #
# data inserted by installer #
# ---------------------------------------------------- #
# $DIBI$
$Self->{'SystemID'} = 10;
$Self->{'SecureMode'} = 1;
$Self->{'Organization'} = '';
$Self->{'LogModule::LogFile'} = '/tmp/otrs.log';
$Self->{'LogModule'} = 'Kernel::System::Log::SysLog';
$Self->{'FQDN'} = 'yourhost.example.com';
$Self->{'DefaultLanguage'} = 'de';
$Self->{'AdminEmail'} = 'admin@example.com';
$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'CustomerGroupSupport'} = 1;




$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxx';
# $Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
# $Self->{'AuthModule::LDAP::UserSuffix'} = '@feierabend.de';
$Self->{'AuthModule::LDAP::Charset'} = 'iso-8859-1';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};



$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '192.168.0.6';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxxxxx';
$Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
Phone => 'telephoneNumber',
Username => 'sAMAccountName',
comment => 'description',
};


$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.0.6';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=feierabend,dc=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=otrs,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,CN=USERS,DC=feierabend,DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxx';






$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '192.168.0.6',
BaseDN => 'dc=feierabend,dc=de',
SSCOPE => 'sub',
UserDN => 'Administrator@feierabend.de',
UserPw => 'xxxxxxxxx',
# AlwaysFilter => '(&(mail=*)(departmen=*) (info=*)(givenname=*))',
SourceCharset => 'utf8',
DestCharset => 'iso-8859-1',
Die => 1,
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},

CustomerKey => 'samaccountName',
CustomerID => 'mail',
CustomerUserListFields => ['givenname', 'cn', 'mail'],
CustomerUserSearchFields => ['mail', 'cn', 'telephonenumber', 'samaccountname', 'department'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname','sn'],
# CustomerUserExcludePrimaryCustomerID => 0,
# CustomerUserValidFilter => '((accountExpires=0))',
AdminsetPreferences => 0,
CacheTTL => 0,
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', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};







# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# End of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #
}

# ---------------------------------------------------- #
# needed system stuff (don't edit this) #
# ---------------------------------------------------- #
use strict;
use warnings;

use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.21 $)[1];

# -----------------------------------------------------#

1;
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Keiner eine Lösung oder einen Vorschlag :(

Könnte einer der das gleiche Szenario wie ich aufgebaut hat mir evtl. mal seine Config hier posten damit ich mal schauen kann wenn ich dann die Config mit meinen Daten angepasst habe ob es dann funktioniert. Wäre echt super nett. :D
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Hallo,

da wohl keiner mehr einen Vorschlag hat frage ich mal anders. Was könnte denn an meiner Config in der Gliederung der Parameter falsch sein? Ich meine der Parameter $Self->{'AuthModule::LDAP::Die'} = 1 und $Self->{'AuthModule'} = 'Kernel::System::Auth::DB'; müssten doch eigentlich rein logisch wenn ich mich nicht per LDAP an die AD DB anmelden kann zum greifen kommen. Sprich dann müsste otrs doch anhan dieser Parammeter bescheid Wissen und in der lokalen DB nach dem Benutzer suchen und ihn authentifizieren. Oder habe ich das was falsch verstanden?
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

Leute lasst mich doch bitte nicht mit meinem Problem alleine. Jetzt bin ich schon so weit mit der Konfiguratin von otrs gekommen und wollte das System auch in Zukunft einsetzen und nun soll es an so einer blöden Sache scheitern? Das wäre für mich echt blöd und ich denke auch nicht erfreulich für die Entwickler von otrs wenn ein Benutzer das System nicht einsetzen kann nur weil sie keiner Anmelden kann wenn das AD mal nicht da es und otrs nicht schafft dann die lokale DB zu benutzen. Bitte helft mir dich weiter.....
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
jojo
Znuny guru
Posts: 15019
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Parameter um Kundendaten mit AD zu synchronisieren

Post by jojo »

Üb Geduld oder kauf Support!
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
numx
Znuny expert
Posts: 184
Joined: 18 Nov 2009, 13:39
Znuny Version: 3

Parameter um Kundendaten mit AD zu synchronisieren

Post by numx »

@jojo OK ich übe mich in Geduld. :D
OTRS: 3.0
OS:Debian Lenny
Apache2/MySQL 5
Post Reply