Rollbaserad åtkomstkontroll (RBAC ) är utvecklingen av en policy för selektiv åtkomstkontroll , medan åtkomsträttigheterna för systemsubjekt till objekt grupperas med hänsyn till särdragen i deras tillämpning och bildar roller . [1] [2]
Bildandet av roller är avsett att definiera tydliga och begripliga regler för åtkomstkontroll för användare av ett datorsystem . Rollbaserad åtkomstkontroll gör det möjligt att implementera flexibla åtkomstkontrollregler som förändras dynamiskt under driften av ett datorsystem.
Sådan åtkomstkontroll är en komponent i många moderna datorsystem. Som regel används detta tillvägagångssätt i DBMS- skyddssystem , och individuella element implementeras i nätverksoperativsystem . Det rollbaserade tillvägagångssättet används ofta i system där användarna har en tydligt definierad omfattning av sina arbetsuppgifter och ansvar.
Trots det faktum att en roll är en uppsättning åtkomsträttigheter till objekt i ett datorsystem, är rollbaserad åtkomstkontroll inte på något sätt ett specialfall av selektiv åtkomstkontroll, eftersom dess regler bestämmer förfarandet för att bevilja åtkomst till personer på en dator systemet, beroende på vilka roller det har (eller inte har) i varje ögonblick, vilket är typiskt för obligatoriska åtkomstkontrollsystem . Å andra sidan är reglerna för rollbaserad åtkomstkontroll mer flexibla än med den obligatoriska inställningen till åtkomstkontroll.
Eftersom privilegier inte direkt tilldelas användare och förvärvas av dem endast genom deras roll (eller roller), reduceras hanteringen av en användares individuella rättigheter i huvudsak till att tilldela roller till honom. Detta förenklar operationer som att lägga till en användare eller byta avdelning av en användare.
Elementära former av RBAC-modellen har implementerats i en mängd olika specialformer på många system sedan 1970- talet . Den rollbaserade åtkomstkontroll som för närvarande används härrör från den modell som föreslagits av Ferraiolo och Kuhn ( 1992 ) och som en exemplarisk modell senare förfinad av Sandhu , Coyne, Feinstein och Yeoman ( 1996 ).
Följande konventioner används för att definiera RBAC-modellen:
Roller tilldelas ämnen, varvid ämnena får vissa behörigheter genom rollerna. RBAC kräver denna typ av tilldelning, och inte direkt tilldelning av tillstånd till ämnen, annars leder det till en svårkontrollerad relation mellan ämnen och tillstånd [3] .
Möjligheten att ärva behörigheter från motsatta roller är föremål för en restriktiv regel som gör att en korrekt separation av lägen kan uppnås. Till exempel kanske samma person inte tillåts skapa ett konto åt någon och sedan logga in på det kontot.
Använda mängdteorinotation :
Notationen: x ≥ y betyder att x ärver behörigheterna för y.
Ett ämne kan ha många samtidiga sessioner med olika behörigheter.
Rollbaserad åtkomstkontrollteknik är flexibel och stark nog att modellera både selektiv åtkomstkontroll (DAC) [4] och obligatorisk åtkomstkontroll (MAC) [5]
Före utvecklingen av RBAC var de enda kända åtkomstkontrollmodellerna MAC och DAC. Forskning på 90-talet visade att RBAC inte tillhör någondera kategorin.
Roller skapas inom organisationen för olika jobbfunktioner. Vissa roller tilldelas behörighet att utföra vissa operationer. Personalmedlemmar (eller andra användare av systemet) tilldelas fasta roller genom vilka de får lämpliga privilegier att utföra fasta systemfunktioner. Till skillnad från kontextbaserad åtkomstkontroll ( CBAC ) tar en ren RBAC-implementering inte hänsyn till den aktuella situationen (som till exempel var anslutningen upprättades från).
RBAC skiljer sig från åtkomstkontrollistor ( ACL ) som används i traditionella selektiva åtkomstkontrollsystem genom att den kan ge privilegier för komplexa operationer på sammansatta data, och inte bara atomära operationer på lågnivådataobjekt. Till exempel kan en åtkomstkontrolllista bevilja eller neka skrivåtkomst till en viss systemfil, men den kan inte begränsa hur den filen kan ändras. Ett RBAC-baserat system låter dig skapa en aktivitet som att öppna ett "lån" i en finansiell ansökan eller fylla i ett "blodsockertest" i en medicinsk ansökan. Att tilldela ett privilegium att utföra en operation har flera värden, eftersom operationerna är detaljerade i en applikation.
Begreppen rollhierarki och begränsningar låter dig skapa eller modellera lattice-based access control (LBAC ) med hjälp av RBAC. Således kan RBAC vara grunden och förlängningen av LBAC.
I organisationer med en heterogen IT-infrastruktur som innehåller dussintals och hundratals system och applikationer, hjälper användningen av en hierarki av roller och arv av privilegier. Utan detta blir det extremt förvirrande att använda RBAC. Artikeln "Additional Roles: A Practical Approach to Serving Enterprise Users" [6] diskuterar alternativa strategier till storskaliga användarprivilegier.
Moderna system utökar den gamla NIST- modellen [7] med begränsningarna av RBAC för utbyggnad i stora företag.
För stora system med hundratals roller, tusentals användare och miljontals behörigheter är hantering av roller, användare, behörigheter och deras relationer en komplex uppgift som inte är genomförbar för en liten grupp säkerhetsadministratörer. En attraktiv möjlighet är att använda själva RBAC för att underlätta decentraliserad styrning av RBAC.
RBAC används ofta för att hantera användarrättigheter inom ett enda system eller program. Listan över sådana system inkluderar Microsoft Active Directory , SELinux , FreeBSD , Solaris , Oracle Database , PostgreSQL 8.1 , SAP R/3 , Lotus Notes och många andra.