RBAC
Autor: Cleverson Sacramento | Publicado: 2009-03-10T23:31:00-03:00

A sigla RBAC, do inglês Role-Based Access Control, significa controle de acesso baseado em papéis. Um papel é um grupo de usuários de uma organização, que reúne pessoas do mesmo cargo, função, responsabilidade, atividade ou outro critério de categorização. Para o RBAC, segundo Sandhu, Ferraiolo e Kuhn (2000, s. 1, tradução nossa), este conceito possibilita “estabelecer permissões baseadas em papéis funcionais da organização e [...] associar usuários a um ou mais papéis”. A abordagem orientada a papéis é o diferencial do modelo RBAC em relação aos seus antecessores Mandatory Access Control (MAC) e Discretionary Access Control (DAC).  Por mais de 30 anos, o conceito de papéis é empregado em sistemas informatizados, contudo apenas em meados da década de 1990 atingiu a maturidade (FERRAIOLO, 2001, s. 1.1). O modelo RBAC é considerado mais adequado que o MAC e DAC para utilização em ambientes empresariais (BEZNOSOV; DENG, 1999, p. 19). O MAC garante o controle de acesso de acordo com rótulos de segurança aplicados a cada usuário, enquanto o DAC baseia-se na concessão de permissões por usuário (SANDHU, 1996, p. 4). Os modelos MAC e DAC enfocam no usuário e não no seu papel funcional, dificultando o gerenciamento das políticas de segurança. De acordo com Beznosov e Deng (1999, s. 1, tradução nossa), “o maior propósito do RBAC é facilitar a administração [...] do controle de acesso”.  Por oferecer redução de complexidade, contenção de custos e diminuição de erros na concessão de permissões, a demanda pelo RBAC aumentou, incorporando produtos como: bancos de dados, sistemas operacionais e gerenciamento de sistemas. Devido à diversidade de padrões RBAC, o National Institute of Standards and Technology (NIST) consolidou as idéias em um único modelo (SANDHU; FERRAIOLO; KUHN, 2000, s. 1). A arquitetura do projeto RASEA tem como base o padrão RBAC do NIST, doravante referenciado apenas como RBAC.Figura 6 – Relacionamento RBAC (WANG, 2006, s.1, adaptado)Na Figura 6, Wang (2006) apresenta o relacionamento entre os elementos do modelo RBAC (SANDHU; FERRAIOLO; KUHN, 2000, p. 232), onde o item “object” simboliza um “[...] recurso do sistema sob proteção” (KERN, 2004, p. 91, tradução nossa). O elemento “operation” representa as ações que podem ser executadas pelos usuários autenticados. Quando as ações são associadas aos recursos, originam-se as “permissions”. Os usuários “users” fazem parte das “roles”, que por sua vez são compostas por usuários. Esta associação é representada pelo relacionamento “user-role assignment”. A concessão de permissões às “roles”, também conhecida como autorização, é definida pelo elemento “permission-role assignment”.  O padrão RBAC é composto por componentes que abordam o modelo de referência e a especificação funcional. O modelo de referência estabelece rigorosamente os elementos RBAC e seus relacionamentos, enquanto a especificação funcional define as operações suportadas pelo RBAC. Dentre os quatro componentes RBAC, este trabalho se concentrará em dois: o Core RBAC e o Hierarchical RBAC. (FERRAIOLO, 2001, s. 2)  O componente Core RBAC fundamenta-se no conceito básico do RBAC, que, conforme Ferraiolo (2001, s. 2.1, tradução nossa), é o seguinte: “usuários são associados aos papéis, permissões são associadas aos papéis, e usuários adquirem permissões por serem membros dos papéis”. O Core ­­­­RBAC estabelece que a relação entre as entidades usuário e papel necessita ser do tipo muitos para muitos. Além disso, deve ser possível associar usuários aos papéis e vice-versa. Da mesma forma, a relação entre papéis e permissões deve ser do tipo vários para vários. (FERRAIOLO, 2001)  O Hierarchical RBAC acrescenta ao Core RBAC o conceito de hierarquia de grupos, onde um papel pode herdar as autorizações de outro papel (SANDHU; FERRAIOLO; KUHN, 2000, s. 2.2). Supondo a existência de um grupo denominado “Gerência”, o qual possui determinados privilégios que devem ser aplicados para todas as gerências da organização. Neste caso, basta que a “Gerência de Recursos Humanos” herde de “Gerência” para que todas as permissões sejam atribuídas à Gerência de Recursos Humanos.  Como o modelo RBAC não menciona o controle de múltiplos sistemas, Kern (2004, p. 93, tradução nossa) propôs o modelo Enterprise RBAC (ERBAC) que permite a “[...] administração de usuários e seus direitos de acesso de todos os sistemas [...] de uma organização”. A arquitetura do projeto RASEA utiliza o padrão RBAC, acrescentando o elemento “sistema” almejando a o controle de acesso a várias aplicações comerciais simultaneamente.