Haben Sie Fragen?
Rufen Sie uns einfach an:
040 696985 - 0

SAP-Sicherheit: Überlagerung von Berechtigungen im Rollenbau

Einleitung

Aus 1 und 1 wird 3. Vor dieser mathematischen Weisheit fürchtet sich jeder Berechtigungsadministrator, wenn es darum geht, komplexe Unternehmensstrukturen im Rollenbau zu berücksichtigen. Die zunehmende Regulierung u. a. durch Gesetze und Vorschriften und die allgemeine Sensibilisierung im Bereich des Themas Sicherheit führt dazu, dass die Anforderungen im Rollenbau steigen. So ist z. B. die Berücksichtigung von Funktionstrennungskonflikten im Rollenbau heute kein Exot mehr, sondern gesetzter Standard. Dieser Artikel widmet
sich daher dem Thema der Überlagerung von Berechtigungen im Rollenbau, sodass am Ende aus 1 und 1 = 2 wird.

Rekapitulation

Um komplexe Unternehmensstrukturen in Rollen abbilden zu können, sind
z. B. jeder Transaktion ein oder mehrere Berechtigungsobjekte zugeordnet (SU24 oder Tabelle USOBT_C). Jedes Berechtigungsobjekt kann bis zu 10 Berechtigungsfelder beinhalten, die unterschiedliche Steuerungsfunktionen wahrnehmen und je nach Anwendungsfall auch unterschiedlich ausgeprägt werden können. Die Transaktion FB03 (Beleg anzeigen) beinhaltet z. B. das Berechtigungsobjekt F_BKPF_BUK mit den Berechtigungsfeldern Buchungskreis BUKRS (Ausprägung: 1000) und Aktivität ACTVT (Ausprägung: Anzeigen = 03)

Technische Berechtigungsprüfung

Berechtigungsprüfung beim Start von Transaktionen
Beim Aufruf dieser Transaktion z. B. über die SAP-GUI prüft das SAP-System kernelseitig, ob die Transaktionsstartberechtigung für das Berechtigungsobjekt S_TCODE und den Feldwert FB03 vorliegt. Die Transaktion darf nicht gesperrt sein. Darüber hinaus wird
geprüft, ob der Transaktion Berechtigungsobjekte zugeordnet sind. Falls dem so ist, muss der Benutzer auch dafür Berechtigungen aufweisen.

Berechtigungsprüfung von Programmen
Die Transaktion FB03 ist an sich nur ein Aufruf des Programms SAPMF05L. Das Programm beinhaltet den ABAP-Code, um einen Beleg anzeigen zu können. Innerhalb dieses Codes können weitere Berechtigungsprüfungen mit dem Befehl AUTHORITY-CHECK implementiert werden, um eine differenzierte Berechtigungssteuerung zu ermöglichen.
Möchte sich der Benutzer jetzt einen Beleg im Buchungskreis 1000 ansehen, könnte im Code u. a. folgende Anweisung hinterlegt sein:

AUTHORITY-CHECK OBJECT ‘F_BKPF_BUK’
ID ‘BUKRS’ FIELD ‘1000’
ID ‘ACTVT’ FIELD ‘03’

Dem Benutzer wird nur ein Beleg angezeigt, wenn u. a. die Berechtigung für das Berechtigungsobjekt
F_BKPF_BUK mit den Berechtigungsfeldern ACTVT (Aktivität) mit der
Ausprägung 03 (Anzeigen) und BUKRS (Buchungskreis) mit der Ausprägung 1000 vorliegt.

Benutzerpuffer
Die Berechtigungen eines Benutzers werden nach der Anmeldung in einem Benutzerpuffer gehalten. Da in der Regel keine direkte Profilzuordnung mehr stattfinden sollte, ergeben sich die Berechtigungen aus dem in einer Rolle gespeicherten Berechtigungsprofil. Die Berechtigungen im Benutzerpuffer kann man sich über die Transaktion SU56
anzeigen lassen.

1 und 1 = 3
Grundsätzlich können in einer Berechtigung (T-S892010400) auch mehrere Berechtigungsobjekte inkl. verschiedener Feldwertausprägungen
vorkommen. Erhält ein Benutzer nun weitere Berechtigungen, z. B. durch
weitere Zuordnung von Rollen, dann kommt es in aller Regel vor, dass ein Berechtigungsobjekt mit mehreren Ausprägungen vorliegt.

Die Berechtigungslogik sieht vor, dass verschiedene Berechtigungen immer ODER-verknüpft werden. In diesem Beispiel wäre der AUTHORITY-CHECK für folgende Prüfungen erfolgreich.

AUTHORITY-CHECK OBJECT ‘F_BKPF_BUK’
ID ‘BUKRS’ FIELD ‘2000’ + ‘3000’
ID ‘ACTVT’ FIELD ‘03’

Es bestehen Anzeigeberechtigungen für die Buchungskreise 2000 und 3000.

Die Intention des Rollenbauers war es bei Rolle A, die Beleganlage auf den Buchungskreis (BUKRS) 2000 und das Buchen auf die Buchungsperioden (BRGRU) ABC einzuschränken. Bei Rolle B sollte die Beleganlage auf den Buchungskreis (BUKRS) 3000 und das Bebuchen auf die Buchungsperioden (BRGRU) ZXY eingeschränkt werden.

Der Benutzer mit diesen 2 Rollen sollte somit keinen Zugriff auf das Buchen der Buchungsperioden (BRGRU) ZXY und die Beleganlage auf den Buchungskreis (BUKRS) 2000 haben. Wie bereits angesprochen, hätte er dennoch Zugriff, da es keine Abhängigkeit der beiden Berechtigungsobjekte F_BKPF_BUK und F_BKPF_BUP gibt.

AUTHORITY-CHECK OBJECT ‘F_BKPF_BUK’
ID ‘BUKRS’ FIELD ‘2000’ + ‘3000’
ID ‘ACTVT’ FIELD ‘02’ + ‘03’
AUTHORITY-CHECK OBJECT ‘F_BKPF_BUP’
ID ‘BRGRU’ FIELD ‘ABC’ + ‘ZXY’

Fazit:
Wie heißt es so schön: „The devil lies in the detail“. Zwar findet keine „Überlagerung von Berechtigungsobjekten“ statt, d. h. die Verknüpfung von Feldwerten mehrerer gleicher Berechtigungsobjekte. Allerdings können die Feldwerte „aufaddiert“ werden. Dieser Umstand sollte bei der Rollenzuweisung unbedingt berücksichtigt werden, um ungewollte
Berechtigungserweiterungen zu vermeiden. Des Weiteren sollte bei der Rollenkonzeptionierung die Berechtigungslogik beachtet werden.

Jan-Henning Lerch ist bei IBS Schreiber  als SAP Auditor & Consultant tätig. Er verfügt über langjährige Berufserfahrung im Bereich Revenue Accounting sowie im SAP Berechtigungswesen in der Realisierung von Berechtigungskonzepten. Der fachliche Fokus liegt besonders
auf den Modulen SAP BC, FI und CO.

 

 

 

IBS Schreiber GmbH

Anschrift
Zirkusweg 1
20359 Hamburg

+49 40 6969 85-0
+49 40 6969 85-31
info@ibs-schreiber.de

Prüfung & Beratung