Články

Spíte dobře? Připravili jsme pro Vás články, které Vám nedají spát.

Snadná správa práv v CMS

11. 9. 2006 | Antonín Devátý

Ve většině případů využívá systém pro správu obsahu (CMS) více uživatelů, přičemž tito uživatelé mají obvykle různé úrovně oprávnění. V takové situaci je potřeba definovat a spravovat systém uživatelských účtů a práv. V tomto článku si ukážeme jeden z možných přístupů pro správu oprávnění. Tím je systém postavený na využívání rolí – Role based access control zkratka RBAC. Hlavním principem je přiřazování práv k pozicím pracovníka v organizační struktuře (tzn. volba jeho rolí), takže se vyhneme používání nízkoúrovňových přiřazování prováděných na úrovni jednotlivých práv a uživatelů. Na RBAC však není nic složitého, jak si ukážeme na názorných příkladech.

Sdílejte článek: del.icio.us RSS
Antonín Devátý

Antonín Devátý

Programmer
Již v době, kdy se jeho vrstevníci ještě honili za míčem, dokazoval on světu své neuvěřitelné analytické a programátorské schopnosti. Od té doby získal ohromné množství zkušeností v mnoha oblastech informačních technologií, které nyní v SYMBIU efektivně využívá k nenapodobitelné tvorbě výkonných a inteligentních aplikací.
Poslední články autora:
Popis Modelu

Předpokládejme, že každý uživatel může mít přiřazen libovolný počet rolí. K rolím jsou vázána konkrétní práva a uživatel tak automaticky získává všechna práva, která přísluší rolím, které mu byly přiřazeny. Práva jsou definována jako operace nad objekty.

Systém rolí může být hierarchický. Například (shora dolů) šéfredaktor má všechna práva, která má redaktor a redaktor má všechna práva, která má externí přispěvatel. Na systém rolí jsou dále aplikována omezení, která mají za úkol eliminovat střet zájmů (např. jeden uživatel má současně právo na tvorbu nabídky a současně má i právo na její schválení) výčtem konfliktních rolí, které nelze uživateli přiřadit současně. Tato omezení mohou být statická (pevně daná) nebo dynamická. Dynamická omezení jsou vyhodnocována na základě parametrů, jejichž hodnoty jsou známy až "za běhu" a umožňují například stanovit pravidlo, že uživatel schvalující objednávky smí schválit pouze objednávky do výše stanovené limitem. Vztahy mezi uvedenými pojmy odpovídají následujícím schématu:

Model vztahů

Pro ilustraci těchto principů použijeme jednoduchou e-learningovou aplikaci. V této aplikaci máme role žák a učitel. Žáci chodí do tříd, přičemž každá třída má přiřazeného 1 učitele. Žák má právo zůčastnit se e-learningových testů ve třídách, do kterých se přihlásil a má přístup pouze k výsledkům svých vlastních testů. Učitel má přístup ke všem testům, které se uskutečnily v jemu přiřazených třídách. Na tomto příkladu jsou ilustrována dynamická omezení žáků a učitelů tím, že mají přístup jenom k podmnožině všech dat. Kdybychom dále chtěli, můžeme model rozšířit o další role, ale to ponechám již na laskavém čtenáři.

Výhody použití RBAC
  • Jednodušší a rychlejší přiřazování práv,
  • možnost hromadně změnit práva všem uživatelům v dané roli,
  • snížení možnosti vzniku chyby (např. neúplný výčet práv),
  • role korespondují se strukturou organizace, jsou popisnější,
  • výhody tedy směřují k úsporám času, minimalizaci chyb a tím k úspoře nákladů.
Vyžití v praxi

Jako příklad si vezměme typickou webovou aplikaci obsahující vlastní systém pro správu obsahu (CMS). Na základě analýzy struktury a potřeb organizace vznikne hierarchická struktura rolí a jim příslušejících práv:

Ukázkové schéma

Administrátor má v tomto případě maximální práva. Na druhé úrovni je webmaster, šéfredaktor a správce zákazníků, kteří jsou odpovědní za vymezené části webové aplikace. Role redaktor je podřízena šéfredaktorovi a umožňuje uživateli modifikovat pouze obsah svých vlastních příspěvků.

Závěrem se sluší dodat, že mezi systémy, které s úspěchem využívají flexibilitu a další výhody RBAC patří také náš CMS OrangeGate II, pro který provádíme analýzu a specifikaci vhodných rolí a jejich práv pro každý realizovaný projekt.

Sdílejte článek: del.icio.us RSS
Vaše názory