Hirdetés
 

SAP autorizáció

PDF
Nyomtatás

sapauth200.jpgVállalati környezetben megkövetelt az adatok hitelességét biztosítani, melynek egyik alapkövetelménye a jogosulatlan adathozzáférés rendszerszintű biztosítása. A SAP rendszerekhez történő adathozzáférést egy gondosan felépített jogosultság struktúrával valósították meg. Ezen cikkel most betekintést nyerhettek a koncepció lényegébe, illetve a jogosultsági problémák elemzésének módszereibe.


Bár a jogosultság ellenőrzés lépéseiről, illetve hátteréről már olvashattatok a Tudásmorzsák e-kurzusában, most azonban mégis szánok pár sort e témakörre és röviden összefoglalom, hogy a kevésbé beavatott olvasók is értsék a hibaelhárításhoz kapcsolódó fogalmakat.

Minden rendszeradat védve kell legyen a jogosulatlan hozzáféréstől, tehát kizárólag azok a felhasználók férhetnek hozzá, melyeknek explicit jogosultságuk van. Explicite be kell állítani, hogy mely adattal, mit csinálhat (létrehozás, megjelenítés, módosítás stb.) egy adott felhasználó. Például lehetséges, hogy egy felhasználónak jogosultsága van az összes légitársaság adatainak megjelenítésére, de ezek közül csak néhányhoz van módosítási joga is. Ennek megfelelően minden egyes jogosultság ellenőrzéskor, mind az 'airline' (légitársaság), mind az 'action' (művelet) mezőket ellenőrizni kell. Ezen úgynevezett autorizáció elemek, User Master rekordba történő felvételekor be kell állítani az operandusok alapértelmezett értékeit (pl.: action: 'change' és airline:'LH', vagy action:'display' és airline:'*').

Az SAP-ban a jogosultságkezelés, úgynevezett autorizációs objektumok segítségével valósul meg. Az ellenőrizendő operandusok kombinációját mezőknek (field) nevezzük. Minden egyes autorizációs objektum maximum 10 ilyen mezőt tartalmazhat, például a korábban említett példában két mezőt az 'action' és az 'airline' mezőket tartalmazta. Egy autorizációs objektum a felhasználó karbantartás és a jogosultság ellenőrzés során címződik meg az autorizációs elemek kijelölésekor. Az objektum a mezők összetételét definiálja, mely egyidejűleg címezhető kell legyen és mintegy sablonként működik az autorizáció és a jogosultság ellenőrzés számára. Ezen objektumok a könnyebb kezelhetőség érdekében objektum osztályokba vannak szervezve. A kezelésükhöz szükséges karbantartó tranzakciók elérhetők az ABAP Development Workbenchből (Development->More Tools->Authorization->Objects).

 

sapauth201.jpg



Az ABAP jogosultság ellenőrzési koncepciója az adatok, tranzakciók, programok és szolgáltatások jogosulatlan hozzáférésétől véd. A gyakorlatban az adminisztrátorok autorizációs elemeket, illetve szerepeket rendelnek a felhasználókhoz, mellyel így meghatározzák a felhasználó által elvégezhető tevékenységek körét. Ahhoz, hogy az SAP rendszerben az autorizációs objektumokkal védett üzleti objektumokat érhessünk el, illetve tranzakciókat indíthassunk el, a felhasználónak rendelkeznie kell a megfelelő autorizációs elemekkel. Az autorizációs elemeket össze lehet fogni, úgynevezett autorizációs profilokba, így logikailag összetartozó engedély (hozzáférési) csomagokat hozhatunk létre, melyeket végül szerephez (role) rendelve már közvetlenül a felhasználóhoz kapcsolhatjuk. Ezen szerepeket az adminisztrátorok rendelik a felhasználóhoz, azaz pontosabban azok User Master rekordjához, így az adott felhasználó tevékenységi és felelősségi körének megfelelően használhatja, érheti el, illetve látja a tranzakciókat és funkciókat, így (gondosan beállított rendszer esetén) elkerülve a jogosulatlan objektum hozzáférést.

sapauth201.jpg


A rövid koncepcionális háttér után térjünk rá második témánkra, mely a jogosultság hiányából fakadó hibák kezelése, felderítése, illetve lehetséges megoldási módjai. Ilyen jellegű problémákkal talán a legtöbbet a support-on dolgozó SAP-s kollégák találkoznak, mely a nem megfelelő jogosultsági beállításoknak köszönhető.

Minimális jogosultság meghatározása

Nézzünk két eljárást, mely egy tranzakció végrehajtásához szükséges autorizációk meghatározását segíti:

  1. Állítsuk be a jogosultságot az elérendő/vizsgált és a SU53 tranzakcióhoz, majd újra belépve hívjuk meg az adott tranzakciót és jussunk el addig a pontig ahol a jogosultság ellenőrzés megtagadja a hozzáférést ('access-denied error'). Ezt követően használjuk a SU53-as tranzakciót a jogosultság ellenőrzési hibák nyomon követéséhez, majd adjuk hozzá a hiányzó autorizációs elemet a felhasználó profiljához. Ismételjük ezt az eljárást addig, amíg a jogosultság ellenőrzés hibátlanul le nem fut. Ezen eljárás egyszerű, de igen hosszadalmas is lehet.

    A SU53-as tranzakcióval megjeleníthetők a vizsgált tranzakcióhoz, vagy funkcióhoz szükséges autorizációs objektum értékek (autorizációs elem), összehasonlítva a felhasználó User Master rekordjában szereplő objektum értékeivel (autorizációs elem).
    A SU56-os tranzakcióval megnézhetjük az összes saját, vagy adott esetben más felhasználók jogosultságait.

  2. Használjuk az authorization trace funkciót (tranzakció: ST01), mely rögzíti az autorizáció vizsgálatokat egy adott session alatt. A vizsgálandó tranzakciót egy mindenre kiterjedő autorizációs jogokkal rendelkező (pl.: SAP_ALL) felhasználóval indítsuk el, így a trace alapján megvizsgálható, hogy mely autorizációk lettek ellenőrizve.

Autorizációs problémák vizsgálata ismeretlen programban

A leggyakrabban használt módszer az autorizációs problémák elemzésére a debuggerben beállítani az AUTHORITY-CHECK és a MESSAGE parancsokra egy-egy breakpoint-ot, majd a program indítását követően megvizsgálni annak működését.

A jogosultság ellenőrzés vizsgálatának szintaktikája:


AUTHORITY-CHECK OBJECT <autorizációs objektum>
ID <jogosultság-mező 1> FIELD <mező érték 1>.
ID <jogosultság-mező 2> FIELD <mező érték 2>.
...
ID <jogosultság-mező n> DUMMY.
IF sy-subrc NE 0.
...
ENDIF.

Egy felhasználó egy autorizációs objektumhoz tartozó összes autorizációjának meghatározása

Hibaelhárításnál gyakran hasznos egy autorizációs objektumhoz tartozó összes autorizációs elem meghatározása, mellyel egy adott felhasználó rendelkezik. Ennek meghatározására a legegyszerűbb módszer a felhasználó User Master rekordából történő autorizációs elemek kiolvasása, a GET_AUTH_VALUES funkciós modullal (SUSR funkció csoport).

Csak egy felhasználónál felmerülő autorizációs probléma elemzése

Gyakran van olyan eset, amikor egy bizonyos autorizációs probléma csak egy adott felhasználót érint. Ez a fajta probléma általában a Debugging autorizációval nem rendelkező felhasználókat érinti. Az S_A.DEVELOP autorizáció profilnak a felhasználó autorizációs profiljához (tulajdonképpen szerepéhez) való rendelésével a nélkül rendelhetünk egy felhasználóhoz Debugging autorizációt, hogy megváltozna a HR autorizáció. Vigyázni kell azonban, mert az ilyen jellegű változtatások lehetővé teszik (megfelelő fejlesztőkörnyezeti tudás birtokában) a felhasználó számára, hogy könnyen hozzáférjen a rendszer összes adatához (akár más kliensekben is).

Azonban összességében kijelenthetjük, hogy a technikai authorizáció semmit sem ér, ha az ember nem védi több szinten az adatait és nincs jól beállítva a jogosultsági mátrix. Ennek kockázatát hivatott minimalizálni az SAP (BusinessObjects) GRC (Governance, Risk and Compliance) Access Control megoldása, mely az összeférhetetlenségek megfelelő kezelésén, továbbá a kulcsinformációk feletti jogosultságok felügyeletén keresztül biztosítja a csalások és a jogosulatlan hozzáférések elkerülését.

 

A szerző SAP CRM technikai és funkcionális tanácsadással, illetve a CRM Web Client UI fejlesztésével foglalkozik.

További cikkek a szerzőtől


Nincs hozzászólása.
A téma megvitatása a fórumon. (0 hozzászólás)