Oprávnění: „Derived roles“ neboli odvozené role
- mmartiskova
- 2. 8. 2023
- Minut čtení: 2
V předchozím textu Úvod do organizační struktury jsme popsali rozdíl mezi funkčními (technickými) a organizačními oprávněními. V příkladu jsme definovali roli „Skladník“ jako soubor oprávnění pro
správu skladu, a protože má naše modelová organizace 4 závody ve 4 různých částech země,
definovali jsme požadavek, že si jednotlivé sklady těchto závodů nemají vidět do provozních dat. To
je přesně úkol pro organizační oprávnění. Dnes si vysvětlíme, jak fungují odvozená oprávnění
(„derived roles“), které nám umožňují čistě oddělit přípravu funkčních a organizačních oprávnění
v transakci PFCG.
Předloha pro odvození
Pokud se rozhodneme tento technický způsob implementace využít, na začátku vytvoříme jednu roli "Skladník" jako předlohu. Od této předlohy budeme role jednotlivých skladů odvozovat, jak název mechanismu napovídá.
Každá role vyžaduje mít svoji vlastní množinu organizačních oprávnění. Zde se nabízí několik
možností, jaké hodnoty použít v naší předloze. Jako první možnost můžeme použít jako hodnoty
organizačních políček hvězdičku. Tato role pak bude autorizovat "Skladníka ve všech skladech".
Takovou roli můžeme později skutečně použít v reálném provozu a přiřadit vybraným uživatelům.
Druhá možnost je přesný opak. Místo abychom vytvořili roli, která má přístup ke všem organizačním jednotkám, vytvoříme místo toho roli, která nebude mít přístup k žádné. Takovou roli bychom později nemohli použít pro skutečné uživatele a zůstala by tak pouze technickou předlohou pro odvozování.
V tom případě místo znaku *, který znamená “vše”, zvolíme znak zástupný takový, který se nikdy
nebude shodovat s žádným skutečným objektem v systému. Takový znak způsobí, že návratový kód
kontroly oprávnění nebude 0, proto bude taková role použitelná jako šablona pro derivaci, ale nikoli
k autorizaci nějakých reálných aktivit. Takový znak je například €. Nikdy nebude existovat žádný
skutečný objekt organizační struktury se jménem €. Vytvoříme tuto roli jako nefunkční šablonu, která se teprve odvozením stane funkční v jiné roli s vlastními platnými hodnotami organizačních polí.
Proces odvození
Nyní je vhodná chvíle vysvětlit, jak odvozené role technicky fungují. Zopakujme, že požadovaným
výsledkem procesu derivace je role, která má menu, hodnoty technických polí a mnoha dalších věcí
jako původní role, naše předloha neboli šablona pro derivaci. Jediná věc, která se bude lišit budou
hodnoty organizačních polí.
Z toho vlastně plyne, že je odvozená role pouze kontejner na konkrétní sadu hodnot pro pole
organizační struktury. Všechno ostatní pochází z původní role.
Technicky je tento mechanismus možný proto, že běžná autorizační pole a pole organizační struktury jsou uložena separátně. Hodnoty pro technická pole jsou uložena v tabulce AGR_1251, hodnoty organizační struktury v tabulce AGR_1252. Proces odvození zjednodušeně řečeno okopíruje všechna data šablony, pouze hodnoty organizačních polí jsou v odvozené roli chráněny.
Proces aktualizace
Dříve nebo později přijde chvíle, kdy budeme muset šablonu aktualizovat. Tyto aktualizace budeme
poté potřebovat promítnout do jednotlivých odvozených rolí. To je právě chvíle, kdy se ukáže pravá
síla tohoto přístupu. Poté co provedeme změny totiž kliknutím na jedno tlačítko automaticky změny
promítneme z předlohy do odvozených rolí. Odvozené role budeme muset ručně aktualizovat jen
v tom případě, když budeme aktualizovat jejich organizační oprávnění.
Tímto způsobem jsme rozdělili proces aktualizace na jednoduché části, kde je jasné, jak se mají
změny provést a kde, a tím zabraňujeme rychlé degradaci našeho konceptu oprávnění improvizací a neplánovanými změnami. Aktualizace je také rychlá a efektivní.
Comments