Č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.
Antonín Devátý
ProgrammerPopis 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:
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:
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.
Související články
Chcete uveřejnit náš článek?
Máte zájem některý z našich článků publikovat ve Vašem časopise, webu či kdekoliv jinde? Neváhejte nás kontaktovat!
Zažádat o svolení

Vaše názory