ich habe folgendes Problem. Der Agent authentifiziert sich bei unserem System über Kerberos und OTRS synchronisiert die Daten des Agenten anschliessend über LDAP.
Dabei sollen aber nur User Zugriff erhalten, die in einer bestimmten Gruppe sind. Wenn ich LDAP-Authentifizierung benutze kann ich ja einfach angeben, wer Zugriff erhält. Aber über kerberos kann ich ja nur das einfache HTTPBasicAuth verwenden.
Also habe ich einfach im Sync gesagt, dass er nur bestimmte Gruppen syncen darf, so dass er für bestimmte Benutzer einfach keine Daten synchronisiert und so den Agent nicht anlegt.
Das Problem ist nun aber: wenn ein Agent einen Zugang hatte, dann ist sein zugang in der DB angelegt und er wird immer in das System gelassen, auch wenn ich ihn wieder aus der Gruppe entferne.
Wie kann ich das Problem lösen bzw. wie kann evtl. meine Authentifizierung cleverer lösen (Ziel ist einfach SSO, das aber nur bestimmte User der AD durchführen dürfen) - muss ich das evtl. gar sogar nur über Kerberos lösen?
Hier mein Auszug der config.pm zum problem:
Code: Select all
# Agenten per Kerberos authentifizieren
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
# Agenten der AD1 per LDAP abgleichen
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'DC1';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'ou=Standorte,dc=xxx,dc=xxx,dc=xxx';
$Self->{'AuthSyncModule::LDAP::UID'} = 'samaccountname';
$Self->{'AuthSyncModule::LDAP::GroupDN'} = 'cn=BMS-Agenten,ou=Groups,dc=xxx,dc=xxx,dc=xxx';
$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'xxx';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxx';
$Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '(objectCategory=user)(memberOf=cn=BMS-Agenten,ou=Groups,dc=xxx,dc=xxx,dc=xxx)';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};
# Agenten der AD2 per LDAP abgleichen
$Self->{'AuthSyncModule1'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host1'} = 'DC2';
$Self->{'AuthSyncModule::LDAP::BaseDN1'} = 'ou=User,dc=xxx,dc=xxx';
$Self->{'AuthSyncModule::LDAP::UID1'} = 'samaccountname';
$Self->{'AuthSyncModule::LDAP::GroupDN1'} = 'cn=OTRS-BMS-AGENTEN,ou=Groups,dc=xxx,dc=xxx';
$Self->{'AuthSyncModule::LDAP::AccessAttr1'} = 'member';
$Self->{'AuthSyncModule::LDAP::SearchUserDN1'} = 'xxx';
$Self->{'AuthSyncModule::LDAP::SearchUserPw1'} = 'xxx';
$Self->{'AuthSyncModule::LDAP::AlwaysFilter1'} = '(objectCategory=user)(memberOf=cn=OTRS-BMS-AGENTEN,ou=Groups,dc=xxx,dc=xxx)';
$Self->{'AuthSyncModule::LDAP::UserSyncMap1'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};