200 likes | 391 Views
MACA: uma solução para autenticação e autorização de usuários corporativos baseada no controle de acesso baseado em papéis. Gustavo Motta Departamento de Informática-UFPB gustavo@di.ufpb.br. Sumário. O problema A solução MACA - M iddleware de A utenticação e C ontrole de A cesso
E N D
MACA: uma solução para autenticação e autorização de usuários corporativos baseada no controle de acesso baseado em papéis Gustavo Motta Departamento de Informática-UFPB gustavo@di.ufpb.br (C) 2006 Gustavo Motta
Sumário • O problema • A solução MACA-Middleware de Autenticação e Controle de Acesso • Case de políticas administrativas para um grande hospital • Principais vantagens • Uso industrial do MACA • Licenciamento (C) 2006 Gustavo Motta
O problema • Revolução da TI e das comunicações • Disponibilidade em larga escala de informações e serviços computacionais • Problema • Restringir o acesso para preservar a privacidade de indivíduos e organizações • Dilema Permissividade Severidade • Quais políticas adotar? • Aplicações corporativas emergentes • Tecnologias web – alta acessibilidade • Integram aplicações legadas heterogêneas • Demandam controle de acesso com granularidade fina • Usuários com diferentes funções em múltiplas unidades organizacionais (C) 2006 Gustavo Motta
O problema • Aplicações corporativas emergentes • Soluções próprias e estanques de autenticação e controle de acesso • Privilégios de acesso ligados diretamente a usuários ou a grupos • Conseqüências • Custo elevado para administrar a concessão/revogação de autorizações • Maior risco de usuários manterem/acumularem privilégios indevidos • Necessidade de conhecimentos técnicos, sem relação com o vocabulário da cultura organizacional, para revogação/concessão de autorizações • Dificuldade para impor políticas corporativas de autenticação e autorização de forma unificada e coerente, independente de aplicações e plataformas • Surgimento de situações de conflitos de interesses por concentração excessiva de poder num único indivíduo (C) 2006 Gustavo Motta
Security Services A solução MACA • Objetivo do MACA Prover os serviços de autenticação de usuário e de autorização de acesso para aplicações legadas ou em desenvolvimento, independente de plataforma e de linguagem de programação, através de uma API padronizada • Características • Modelo de autorização contextual • Estende o modelo de referência para o controle de acesso baseado em papéis (CABP) proposto pelo NIST • Arquitetura de software LDAP (C) 2006 Gustavo Motta
A solução MACA • Controle de acesso baseado em papéis • Acesso regulado segundo os papéis exercidos • Um papel denota uma função organizacional • Suporta o princípio da necessidade de saber/fazer • Um usuário somente deve ter os privilégios necessários para desempenhar suas funções • Separação de responsabilidades - SR • Distribui tarefas críticas por múltiplos usuários • Reduz situações de conflitos de interesses • Favorece a administração da política de acesso • Visão organizacional • Politicamente neutro (C) 2006 Gustavo Motta
A solução MACA Esquema do modelo de referência para o CABP do NIST (C) 2006 Gustavo Motta
A solução MACA • Case de políticas administrativas para um grande hospital • Políticas de Acesso Administrativas • Definem diretrizes de alto nível que determinam como o acesso às funções administrativas do CABP é controlado • Administração estritamente centralizada é problemática • Poderes concentrados num único indivíduo • Abusos de autoridade, fraudes e conflitos de interesses • Inviabilizada na prática por equipe centralizada de administradores • Centenas ou até mesmo milhares de papéis • Dezenas de milhares ou até mesmo centenas de milhares de usuários • É necessário descentralizar a autoridade e a responsabilidade administrativas por múltiplos usuários • Evitar a existência do superusuário • Tornar exeqüível a administração da política de acesso Criação e manutenção de contas de usuários, de papéis, de autorizações e respectivos relacionamentos (C) 2006 Gustavo Motta
CABP AD– executar Usuário– criar, ler, alterar, excluir, criarNovaSenha Papel – criar, ler, alterar, excluir Usuário-Papel – vincular, desvincular Papel-Autorização – vincular, desvincular Autorização – criar, ler, alterar, excluir Objeto – criar, ler, alterar, excluir Operação – criar, ler, alterar, excluir A solução MACA Funções administrativas básicas para o CABP disponíveis no MACA (C) 2006 Gustavo Motta
A solução MACA • Case de políticas administrativas para um grande hospital • Alternativa para descentralização e autonomia da administração de políticas de acesso • Descentralizar • Criação e manutenção de contas • Vinculação/desvinculação de papéis para usuários • A autonomia é limitada • Cada unidade organizacional só pode administrar as contas e respectivos papéis de seus próprios usuários • Hierarquia de acesso com abrangência limitada pela estrutura organizacional • Centralizar • Criação e manutenção de papéis, de objetos e autorizações • Vinculação/desvinculação de autorizações para papéis (C) 2006 Gustavo Motta
Administrador do CABP Administrador de Usuário Administrador de Contas Criador de Contas Vinculador de Papéis Administrador de Help Desk Administrador de Papel Administrador de Autorização A solução MACA • Case de políticas administrativas para um grande hospital • Uso do MACA para executar políticas administrativas para o CABP • Papéis administrativos usados para controlar e distribuir a autoridade e a responsabilidade na execução das funções administrativas do CABP numa organização exp-abs(login, papel){ organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(login, “lotação”) & (usuárioCtx.login != login) & !organogramaCtx.TipoLotaçãoAbaixoOuIgualA(“divisão”, organogramaCtx.TipoLotação(usuárioCtx.lotação)) & (!organogramaCtx.TipoLotação(usuárioCtx.lotação) = “instituto” | (macaCtx.PapelAbaixoOuIgualA(“Administrador de Contas”, papel) | (macaCtx.PapelAbaixoOuIgualA(“Usuário”, papel) & !macaCtx.PapelAbaixoOuIgualA(“Médico Auditor”, papel)))) }, vincular, Usuário-Papel, forte, , desvincular, Usuário-Papel, forte, , criar, Usuário, forte. exp-abs(atributos){ organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(atributos, “lotação”) }, criar, Usuário, forte,exp-abs(login, papel){ usuárioCtx.login != login & organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(login, “lotação”) }, desvincular, Usuário-Papel, forte, , vincular, Usuário-Papel, forte. exp-abs(login, atributos){ usuárioCtx.login != login & organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(atributos, “lotação”) & organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(login, “lotação”) }, alterar, Usuário, fraca, exp-abs(login){ usuárioCtx.login != login & organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(login, “lotação”) }, excluir, Usuário, fraca. +, criar, Autorização, fraca, +, ler, Autorização, fraca, +, alterar, Autorização, fraca, +, excluir, Autorização, fraca,+, criar, Objeto, fraca, +, ler, Objeto, fraca, +, alterar, Objeto, fraca, +, excluir, Objeto, fraca, +, criar, Operação, fraca, +, ler, Operação, fraca, +, alterar, Operação, fraca, +, excluir, Operação, fraca, +, vincular, Papel-Autorização, fraca, +, desvincular, Papel-Autorização, fraca. +, ler, Usuário, fraca, +, ler, Papel, fraca. +, executar, CABP FA, fraca. +, criar, Papel, fraca,+, ler, Papel, fraca, +, alterar, Papel, fraca, +, excluir, Papel, fraca. +, criarNovaSenha, Usuário, fraca. (C) 2006 Gustavo Motta
A solução MACA • Características da política anterior • Administradores realizam funções administrativas apenas nas contas de seus próprios usuários, mas de maneira limitada • Separação de responsabilidades para gerenciar contas independente da descentralização baseada numa estrutura organizacional • SR entre os papéis Criador de Contas e Vinculador de Papéis (C) 2006 Gustavo Motta
A solução MACA • Características da política anterior • O poder do administrador depende do papel exercido e da unidade organizacional onde está lotado • Quanto mais específico for o papel e mais abrangente for a unidade organizacional, maior será o poder • Autorizações contextuais do MACA tornaram ortogonais a hierarquia de papéis e a estrutura organizacional • Não foi preciso criar os papéis Criador de Contas de Serviço, ou Criador de Contas de Instituto, ou mesmo o Criador de Contas do Instituto do Coração (C) 2006 Gustavo Motta
{transiente} pa : Principal : Credentials ado : Access maca ldap : : c : Cliente Authenticator Decision MACAService LDAPServer authenticate(login, pwd, ...) bind(login, pwd ) new Credentials(ldap_conx) addNewSession(creds) {autenticado} get_attributes(...) hasAccess (opr, obj, params, session_ref) access_allowed(obj, opr, session_ref) search(...) {acesso permitido ou negado} destroy( ) closeSession(creds) unbind(...) {sessão ence rrada} x A solução MACA • Arquitetura e implementação (C) 2006 Gustavo Motta
A solução MACA • Principais vantagens • Autorizações contextuais • Flexibilidade e poder expressivo para estabelecer políticas de acesso para as aplicações corporativas e de gestão de políticas administrativas para o CABP que se adaptam à diversidade ambiental e cultural das organizações • Suporta o princípio do privilégio mínimo • Permite configurar o conceito de separação de responsabilidades • Usada para evitar a existência de super usuários (C) 2006 Gustavo Motta
A solução MACA • Principais vantagens • Coloca a administração da política de acesso na perspectiva de modelos organizacionais e não função de plataformas tecnológicas específicas • Suporta a administração unificada da política de acesso • Login unitário independente de aplicação ou plataforma • Único ponto de controle para criar/remover/bloquear contas de usuários e para gerência de privilégios • Utiliza o vocabulário da cultura organizacional (C) 2006 Gustavo Motta
O uso industrial do MACA • Utilização no InCor – Instituto do Coração – HC-FM.USP • Desde o início de 2001 • Dados de configuração • 2.036 contas – média de 1,3 papéis associados • 86 papéis – média de 30,3 usuários vinculados – média de 3,1 autorizações diretamente associadas • 205 autorizações – 18% regras • 83 objetos • Java/JSP, Magic/Delphi e Oracle/Java • Dados de utilização do MACA • Média mensal de 442.368 solicitações de autorização – 10,2/min • Média mensal de 42.768 solicitações de autenticação – 0,9/min • 1000 estações de trabalho 247 (C) 2006 Gustavo Motta
O uso industrial do MACA • Avaliação de desempenho • Tempo médio de resposta (TMR) para autorização e autenticação • Observar a variação do TMR com o aumento da carga no servidor de autorização e autenticação • 0 a 700 usuários simultâneos, com a entrada progressiva de 60 agentes simulando usuários a cada 5’ • TMR de 100 solicitações aferidos cada 50 novos usuários • Servidor • 2Pentium III 1,3GHz, 1GBytes MP, 100 Mbits/s, Linux Suse 8.0 • Clientes • 4 Pentium III 500MHz, 196 MBytes MP, 100 Mbits/s, Win/2000 • Estação de medição • 1 Pentium III 800MHz, 326 MBytes MP, 100 Mbits/s, Win/2000 TMR aumentou 3,6 vezes no intervalo [50-700] Carga média aumentou 8,7 vezes no intervalo [50-700] (C) 2006 Gustavo Motta
Licenciamento do MACA • Disponível como software livre • Licença GNU GPL – http://maca.sourceforge.net/ • Versão 3.2.2c • Linux • Windows • Manuais • MACA: Guia de Instalação e Configuração • MACA Cliente: Guia do Programador • MACA Administrativo: Manual do Usuário (C) 2006 Gustavo Motta
MACA: uma solução para autenticação e autorização de usuários corporativos baseada no controle de acesso baseado em papéis Gustavo Motta Departamento de Informática-UFPB gustavo@di.ufpb.br (C) 2006 Gustavo Motta