Agentenrollen aus LDAP syncen

Hilfe zu Znuny Problemen aller Art
Locked
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Agentenrollen aus LDAP syncen

Post by Schlumpf »

Hallo! :)

Bei der Anbindung ans LDAP, wollte ich nun noch erreichen, dass Agenten ihre Rollen zugeordnet bekommen, nach den Gruppen, in denen sie im LDAP stehen. Sodass man mehrere Berechtigungsgruppen im LDAP anlegen könnte, und je nachdem, wo ein Agent überall drin ist, bekommt er die Rollen zugeordnet.

Hätte nun gedacht, dass man im AD eine Gruppe anlegen kann, in der gewisse User sind. Als Beispiel der User, der unter CN=Username,OU=Abteilung,OU=Mitarbeiter,DC=example,DC=de liegt, ist in einer Gruppe, die unter OU=Mitarbeiter,DC=example,DC=de liegt und Test_Agent heißt. Wenn der User in der Gruppe Test_Agent ist, soll er die Rolle "Test" bekommen.

Das hab ich in folgendem Code versucht umzusetzen:

Code: Select all

$Self->{'AuthSyncModule::LDAP::UserSyncAttributeRolesDefinition'} = {
#        # ldap attribute
        'OU=Mitarbeiter,DC=example,DC=de' => {
#            # ldap attribute value
            'Test_Agent' => {
#                # otrs role
                'Test' => 1,
            },
        },
    };
Leider funktioniert das so nicht. Ist das prinzipiell möglich? Wo liegt der Fehler?
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: Agentenrollen aus LDAP syncen

Post by Schlumpf »

Hi,

habe jetzt nochmal die "light-Varianten" versucht, indem einem Benutzer oder einer ganzen Abteilung bestimmte Rechte oder Rollen gegeben werden. Das habe ich probiert über AuthSyncModule::LDAP::UserSyncRolesDefinition und über UserSyncLDAPGroupsDefination zu regeln. Das ganze funktioniert aber auch nicht bei mir. Der Code sieht wie folgt aus:

für das AuthSyncModule::LDAP::UserSyncRolesDefinition:

Code: Select all

# 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
        'OU=Mitarbeitergruppe,OU=Mitarbeiter,DC=example,DC=de' => {
#            # otrs role
            'Test' => 1,
#            'role2' => 0,
        },
#        'cn=agent2,o=otrs' => {
#            'role3' => 1,
#        }
    };
und für das UserSyncLDAPGroupsDefination:

Code: Select all

#$Self->{'UserSyncLDAPGroupsDefination'} = {
      'OU=Mitarbeitergruppe,OU=Mitarbeiter,DC=example,DC=de' => {
         # otrs Gruppe
                 'admin' => { rw => 1, ro => 1, },
                 'faq' => { rw => 1, ro => 1, },
                 'faq_admin' => { rw => 1, ro => 1, },
                 'stats' => { rw => 1, ro => 1, },
                 'users' => { rw => 1, ro => 1, },
                 'Test' => { rw => 1, ro => 1, }
        }
};
Es müsste doch auch irgendwie gehen, den Agenten im ADS einfach ein Attribut zu geben und dass dann an das Attribut eine bestimmte OTRS-Rolle geknüpft ist..
Aber wie setzt man das um?
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
ferrosti
Znuny superhero
Posts: 723
Joined: 10 Oct 2007, 14:30
Znuny Version: 3.0
Location: Hamburg, Germany

Re: Agentenrollen aus LDAP syncen

Post by ferrosti »

Fang bloß nicht an AD Gruppen mit Gruppen im OTRS zu syncen. Da wirst Du nachher in der Administration wahnsinnig!
Eine AD Gruppe sollte einer Rolle im OTRS entsprechen.

Füll bitte mal Deine Signatur aus bzgl. Version etc.!

Die Initialisierung sieht so aus:
$Self->{'UserSyncLDAPRolesDefinition'}

Es wäre auch gut, wenn Du die Ausgabe des Logs mitliefern könntest.
openSuSE on ESX
IT-Helpdesk: OTRS 3.0
Customer Service: OTRS 3.0 (upgraded from 2.3)
Customer Service (subsidiary): OTRS 3.0
+additional test and development systems
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: Agentenrollen aus LDAP syncen

Post by Schlumpf »

In der defaults.pm finde ich dieses "$Self->{'UserSyncLDAPRolesDefinition'}" leider nicht. Habe es weiter mit AuthSyncModule::LDAP::UserSyncRolesDefinition versucht, damit jedoch ohne Einfluss auf die Rollen eines Agenten.

Mein Code:

Code: Select all

	# 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=Agentengruppe,CN=Users,DC=EXAMPLE,DC=DE' => {
#            # otrs role
            'Administrator' => 1,
            'Agent1' => 1,
        },
#        'cn=agent2,o=otrs' => {
#            'role3' => 1,
#        }
    };
Eigentlich sollte ein Agent, der in der Agentengruppe ist, doch die Rollen "Administrator" und "Agent1" nun zugewiesen bekommen, oder??
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: Agentenrollen aus LDAP syncen

Post by Schlumpf »

Tue Nov 2 14:16:54 2010 notice OTRS-CGI-10 User: USERNAME not in GroupDN='CN=Agentengruppe,CN=Users,DC=EXAMPLE,DC=DE', Filter='(memberUid=CN=USERNAME,OU=Organisationseinheit,OU=Mitarbeiter,DC=EXAMPLE,DC=DE)'! (REMOTE_ADDR: xxx.xxx.xxx.xxx).

Tue Nov 2 14:16:54 2010 notice OTRS-CGI-10 User: 'USERNAME' sync ldap groups CN=Agentengruppe,CN=Users,DC=EXAMPLE,DC=DE to roles!
Mal die Logmeldungen, die mir OTRS dafür ausgibt. Ich bin mir aber zu 100% sicher, dass ich in dieser Gruppe auch wirklich drin bin, da die Custumerauthentifizierung mit $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=Agentengruppe,CN=Users,DC=EXAMPLE,DC=DE'; auch funktioniert.

Ich denke auch nicht, dass es daran liegt, dass die Agentengruppe mit einem Unterstrich "_" beginnt, da wie gesagt der Kundenlogin damit auch funktioniert...
Wo hängt der Fehler? :?:


EDIT: Fehler gefunden... mit einem einfach Einfügen von:
$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthSyncModule::LDAP::UserAttr'} = 'DN';
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
ferrosti
Znuny superhero
Posts: 723
Joined: 10 Oct 2007, 14:30
Znuny Version: 3.0
Location: Hamburg, Germany

Re: Agentenrollen aus LDAP syncen

Post by ferrosti »

In dieselbe Falle bin ich letzte Woche bei der Migration auf die 3.0 auch reingefallen.
Statt 'member' wird jetzt 'memberUID' als default genommen und die alte Config läuft damit ins leere.
openSuSE on ESX
IT-Helpdesk: OTRS 3.0
Customer Service: OTRS 3.0 (upgraded from 2.3)
Customer Service (subsidiary): OTRS 3.0
+additional test and development systems
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: Agentenrollen aus LDAP syncen

Post by Schlumpf »

Hab jetzt ein erneutes Problem...

Wieder mit dem AuthSyncModule::LDAP::UserSyncLRolesDefinition.

Und zwar habe ich dort für jede Gruppe aus dem AD, eine Rolle, die es auf "1" schalten soll.

Auszug:

Code: Select all

$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'memberUid';
$Self->{'AuthSyncModule::LDAP::UserAttr'} = 'DN';

$Self->{'AuthSyncModule::LDAP::UserSyncLRolesDefinition'} = {
      # ldap group
  'CN=Bereich1,OU=User,OU=Firma,DC=example,DC=de' => {
  'rolle1' => 1,
  },
  'CN=Bereich2,OU=User,OU=Firma,DC=example,DC=de' => {
  'rolle2' => 1,
  },
....
};

Als Fehler bekomme ich für jeden Rollenabgleich:
Search Failed! ('CN=Bereich1,OU=User,OU=Firma,DC=example,DC=de') filter='(memberUid=CN=Bereich1,OU=User,OU=Firma,DC=example,DC=de)' 0000208D: NameErr: DSID-031001E4, problem 2001 (NO_OBJECT), data 0, best match of:
Wie kann ich das beheben??
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: Agentenrollen aus LDAP syncen

Post by Schlumpf »

Keiner eine Idee, woher der Fehler kommt und wie ich ihn beseitigen kann?? :(
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
ferrosti
Znuny superhero
Posts: 723
Joined: 10 Oct 2007, 14:30
Znuny Version: 3.0
Location: Hamburg, Germany

Re: Agentenrollen aus LDAP syncen

Post by ferrosti »

Ein kurzes googeln nach dem LDAP problem 2001 liefert z.B. dieses Ergebnis:
This error appears if you do not have Group settings filled in, but have User Search filled in. Some systems do not care, while some systems experience problems with the empty DN.
openSuSE on ESX
IT-Helpdesk: OTRS 3.0
Customer Service: OTRS 3.0 (upgraded from 2.3)
Customer Service (subsidiary): OTRS 3.0
+additional test and development systems
Locked