NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Lekce 10 - Objekty systému ObjectGears - Role a řízení přístupu

V minulé lekci, Aplikační katalog a Konfigurační databáze CMDB v ObjectGears, jsem se podívali na Aplikační katalog jako ukázku využití dat z Konfigurační databáze CMDB a zobrazení pro uživatele mimo IT.

V dnešním ObjectGears tutoriálu si ukážeme vlastnosti objektu Role a způsob řízení přístupu uživatelů. Zároveň si popíšeme základní tři druhy uživatelů.

Nedílnou součástí každého systému musí být řízení přístupu uživatelů k datům. Ten umožňuje uživatelům zobrazit jen ty záznamy a stránky, na které mají oprávnění. Má je i systém ObjectGears a v tomto článku si vysvětlíme, jak to celé funguje.

Práva na jednotlivé části systému ObjectGears (data ve třídách a dotazech, přístupy na stránky…) se uživatelům nepřidělují přímo, ale pomocí rolí. To umožňuje lepší zaměnitelnost uživatelů. Pokud je uživatel přidělen na novou práci, pak stačí přiřadit mu požadované role a není nutné zjišťovat, které objekty by měl vidět na čtení či zápis. Při odchodu uživatele opět jen postačí role odebrat.

Uživatel má přidělené role a to přímo v ObjectGears nebo pomocí externího systému, např. ActiveDirectory. Tyto role jsou následně přiděleny k objektům (např. třídám) s konkrétní operací. U třídy se jedná o operace pro čtení, zápis, mazání, hromadné operace a další.

Na obrázku vidíme přidělení oprávnění k určitým operacím pro role IT Architect a Všichni autentizovaní uživatelé:

Systém ObjectGears

Druhy uživatelů

Systém ObjectGears rozlišuje tří druhy uživatelů:

  • Administrátor – má plná práva na správu systému. Jediné co nemůže, je pracovat s daty a formuláři. Nicméně si může přidělit příslušné role, či vyčíst data pomocí skriptů.
  • IT vlastník – má práva jako administrátor, ale jen pro konkrétní model, kde je přiřazen. Na objekty správy mimo modely nemá přístup (např. joby, role…).
  • Uživatel – má práva jen na objekty, které mu byly přiděleny pomocí rolí.

Optimálně budeme mít 1-3 administrátory (kvůli zástupnosti), několik IT vlastníků, kteří budou rozvíjet jim přidělené modely a pak běžné uživatele. Při menším IT oddělení mohou být všichni lidé z IT týmu nastaveni jako administrátoři a rozvíjet všechny naše modely.

Pokud se mezi uživateli najde zkušený člověk s logickým myšlením a menší znalostí programování, je dobré jej zahrnout do tvorby modelů. Stačí jej nastavit jako IT vlastníka modelu a nechat jej samostatně model rozvíjet. Složitější skriptování, či úpravy v databázi si může vyžádat od IT týmu.

Tím docílíme většího zapojení business uživatelů a odlehčíme IT týmu. Zároveň tak uživatelé lépe přijmou celý systém ObjectGears s modely, protože se na rozvoji budou sami aktivně podílet. Hromada zlepšovacích návrhů, které si částečně mohou udělat i sami, je jen třešničkou na dortu :-)

Role

Základem všeho jsou role. Při vytváření rolí je vhodné dopředu rozmyslet, jaké typy uživatelů budou mít do modelu přístup a podle toho vytvořit role. Např. do modelu bude mít přístup manager, který ale potřebuje jen práva na čtení. Dále operátor, který bude záznamy vytvářet a měnit. Můžeme vytvořit i roli pro správce modelu, který bude mít práva na všechny záznamy včetně číselníkových tříd.

Není vhodné vytvářet role typu Model_čtení, Model_insert, Model_update, protože požadovaný přístup většiny typů uživatelů k objektům se nedá jednoduše rozdělit na čtení, vkládání, změna.

Na obrazovku se seznamem rolí se dostaneme pomocí levého menu Správa => Řízení přístupu => Role:

Systém ObjectGears

U každé role v seznamu je zobrazen její kód, název a zda je povolena. Kliknutím na její ID v prvním sloupci si zobrazíme detailní informace o roli.

Kliknutím na tlačítko Nový se zobrazí prázdný formulář pro zadání nové role:

Systém ObjectGears

Popis vlastností role je následující:

  • Kód – slouží pro práci s rolí pomocí skriptování,
  • Název – lokalizovaný název role, který se v systému zobrazuje při přiřazení k jiným objektům,
  • Externí skupina – název role v externím poskytovateli rolí, např. ActiveDirectory. Podle tohoto názvu se role přiřazená uživatelům napáruje s rolí v systému Objectgears a uživatel tak získá práva na objekty v systému Objectgears,
  • Povoleno – příznak umožňuje rychle zapnout/vypnout roli v celém systému,
  • Ihned přiřadit uživateli – při zaškrtnutí je role ihned při přihlášení uživatele přiřazena. V opačném případě má uživatel na roli nárok, ale musí si ji explicitně sám povolit (viz. dále).

Nastavení Ihned přiřadit uživateli umožňuje uživatelům si zakázat roli, pokud by k ní byla navázána činnost, kterou nechtějí omylem spustit. Například pokud jednou za měsíc spouštíme kontrolu, schvalujeme, expedujeme a nechceme danou funkcionalitu spustit omylem, pak roli takto označíme. Před vlastním spuštěním funkcionality si uživatel zobrazí svůj profil, roli si povolí, provede danou funkcionalitu a roli si opět zakáže. Celé to slouží pro zvýšení bezpečnosti či zamezení chybného spuštění funkcionality.

V sekci Použití role je zobrazeno, k jakému modelu je role přiřazena. Pokud je přiřazování rolí řízeno systémem ObjectGears, pak je zobrazen i seznam uživatelů s danou rolí.

Přiřazení role

Role jsou uživatelům přiřazovány dvěma způsoby:

  1. Přímo v systému ObjectGears. V detailu uživatele administrátor jednotlivým uživatelům přiřazuje požadované role. Toto nastavení je vhodné při nasazení na veřejný hosting mimo firemní doménu.
  2. Přiřazení rolí uživatelům se přebírá z externího systému, např ActiveDirectory. Přiřazování rolí je tak ve firmě řízeno centrálně pro všechny aplikace.

Volba nastavení se provádí pomocí konfiguračního parametru AssignRoleToUser v souboru web.config.

Systémové role

V systému existuje několik systémových rolí, které nelze smazat, ale umožňují vybrat specifickou skupinu uživatelů:

  • Všichni uživatelé – tuto roli mají automaticky všichni uživatelé,
  • Všichni autentizovaní uživatelé – tuto roli mají přihlášení uživatelé,
  • Všichni nepřihlášení uživatelé – tuto roli mají nepřihlášení uživatelé,
  • Tvorba reportů - tato role umožnuje uživatelům vytvářet a měnit uživatelské reporty.

Přiřazení rolí k objektům

Po vytvoření role je potřeba ji přiřadit ke konkrétním objektům (třídy, dotazy, stránky, tlačítka…). V prvním kroku je nutné roli povolit na daném modelu. Pak je možné v daném modelu roli používat.

V detailu modelu si zobrazíme záložku Role a zobrazení. Vybereme požadovanou roli ze seznamu a klikneme na tlačítko Přidat. Po přidání rolí celý model uložíme pomocí tlačítka Uložit.

Na obrázku vidíme, že pro model EasyTask, jsou vybrány role IT Architect a Všichni autentizovaní uživatelé:

Systém ObjectGears

V detailu třídy již můžeme roli přidat na záložce Role a zobrazení. Ve výběru Role vybereme roli, zaškrtneme jednu nebo několik operací, které chceme s rolí povolit a klikneme na tlačítko Přidat.

Po přidání všech požadovaných rolí třídu uložíme pomocí tlačítka Uložit:

Systém ObjectGears

Roli můžeme povolit pro všechny operace na třídě nebo můžete použít více rolí pro různé kombinace operací. Jednu na čtení, druhou na aktualizaci, další na hromadné mazání.

Podobně jako u třídy se nastavují role u dotazu, stránek, tlačítek, importů a exportů. Jen mají trochu odlišné operace.

Povolení a zakazování rolí

Díky hierarchii přiřazení Role-Model-Objekt (třída, dotaz, tlačítko, import, export) je umožněno povolovat a zakazovat role na různých úrovních. Zakázání je dobré, pokud chceme funkcionalitu nebo roli dočasně zakázat, ale zatím ji nechceme odstraňovat z nastavení.

Zakázání role

V detailu role je možné zrušením volby Povoleno zakázat roli v celém systému ObjectGears.

Zakázání role u modelu

V detailu modelu zakážeme roli jen pro daný model. Pro zakázání/povolení stačí jen kliknout na Ano/Ne ve sloupci Povoleno v seznamu přiřazených rolí.

Zakázaná role na modelu je pak podbarvena šedě, jak je vidět na obrázku:

Systém ObjectGears

Pokud je zakázána přímo role, pak bude její název vypsán kurzívou.

Zakázání role u objektu

U koncových objektů nelze roli zakázat, ale jen odebrat. I zde se zakázané role nebo role zakázané na modelu zobrazují kurzívou.

Správa rolí

Ze seznamu rolí nebo od modelu si můžeme zobrazit stránku Správa rolí. Ta nám umožňuje hromadně prohlížet, vyhledávat, přiřazovat, mazat role u všech objektů:

Systém ObjectGears

V horní části stránky jsme vybrali model EasyTask a v záložce Třídy typ objektu, který chceme zobrazit. V prostřední části máme tlačítka pro přidání rolí k vybraným (zaškrtnutým) objektům níže, případně jejich odebrání. Ve Filtr, v dolní části, můžeme upřesnit, které záznamy chceme vidět. V reálném modelu jich bude opravdu hodně. Zaškrtávátkem na každém záznamu vybíráme konkrétní objekt (na obrázku se jedná o třídu) pro další zpracování.

Stránku Správa rolí použijeme, pokud potřebujeme zkontrolovat, zda jsou správně role přiřazené a není objekt bez rolí. Zároveň po vytvoření nového modelu zde lehce přiřadíme role k více objektům najednou, což nám ušetří čas. A v neposlední řadě na jedné stránce můžeme roli hromadně odebrat od více objektů.

V další lekci, Údržba logů v systému ObjectGears, se zaměříme na správný přístup k údržbě logů pro zajištění větší stability systému.


 

Předchozí článek
Aplikační katalog a Konfigurační databáze CMDB v ObjectGears
Všechny články v sekci
Systém ObjectGears
Přeskočit článek
(nedoporučujeme)
Údržba logů v systému ObjectGears
Článek pro vás napsal Jan Stodůlka
Avatar
Uživatelské hodnocení:
1 hlasů
Autor se věnuje programování v C# a MS SQL serveru.
Aktivity