Berechtigungsprüfung in ABAP

Auch in eigenen, in ABAP entwickelten Programmen sollte immer eine Berechtigungsprüfung erfolgen. Dreh- und Angelpunkt ist hier das ABAP Sprachkonstrukt AUTHORITY-CHECK. Mit AUTHORITY-CHECK kann die Prüfung durchgeführt werden, ob der Benutzer in seinem Benutzerstammsatz über eine Berechtigung verfügt, welche die im AUTHORITY-CHECK angegebenen Bedingungen erfüllt. Sind alle Bedingungen erfüllt, liefert AUTHORITY-CHECK den Returcode 0. Nur in diesem Fall sollte Ihr Programm dem ausführenden Benutzer die gewünschte Operation erlauben.

Ein Beispiel um zu überprüfen, ob eine Transaktion gestartet werden darf oder nicht:

REPORT  ZZZOFAUTHORITYCHECKTEST.

TABLES: TSTC.

PARAMETER: TA LIKE TSTC-TCODE.

AUTHORITY-CHECK OBJECT 'S_TCODE'
  ID 'TCD'
  FIELD TA.

IF sy-subrc = 0.
  WRITE: 'Ausführung von Transaktion ', TA, ' ist erlaubt'.
ELSE.
  WRITE: 'Ausführung von Transaktion ', TA, ' ist nicht erlaubt'.
ENDIF.

Der Parameter „ID“ steht für das zu überprüfende Berechtigungsfeld. In dem Beispiel ist es das Feld „TCD“ und steht für „Transaktionscode“. Der abzuprüfende Wert im Parameter „TA“ wird mit dem Parameter „FIELD“ übergeben.

Für diesen speziellen Fall, der Überprüfung der Berechtigung zur Ausführung einer Transaktion gibt es sogar einen eigenen Funktionsbaustein, den man nutzen sollte: „AUTHORITY_CHECK_TCODE“.

REPORT  ZZZOFAUTHORITYCHECKTEST2.

TABLES: TSTC.

PARAMETER: TA LIKE TSTC-TCODE.

CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
  EXPORTING
    tcode  = TA
  EXCEPTIONS
    ok     = 1
    not_ok = 2
    OTHERS = 3.

IF sy-subrc = 1.
  WRITE: 'Ausführung von Transaktion ', TA, ' ist erlaubt'.
ELSE.
  WRITE: 'Ausführung von Transaktion ', TA, ' ist nicht erlaubt'.
ENDIF.


ABAP Authority Check

Der SAP Sicherheitsexperte Andreas Wiegenstein hat in seinem Beitrag 10 „goldene Regeln“ zusammengestellt, die man bei der Verwendung der Berechtigungsprüfung in eigenen ABAPs unbedingt berücksichtigen sollte.

Hier der Link zu diesem wirklich lesenswerten Artikel

„Ten golden rules for coding authorization checks in ABAP“.


[of_autor]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert