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
[email protected]
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
1/50000
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
2
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
3
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
4
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
Recife, 30 de janeiro de 2006
Security Services
(C) 2006 Gustavo Motta
5
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
► Reduz
tarefas críticas por múltiplos usuários
situações de conflitos de interesses
 Favorece a administração da política de acesso
► Visão
organizacional
 Politicamente neutro
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
6
A solução MACA
Restrições de SR
hp
Hierarquia
de Papéis
usuários
up
ops
Operações
papéis
pa
obs
Objetos
sessões
autorizações
usuário
papéis
Relacionamento n para m
Relacionamento 1 para m
Esquema do modelo de referência para o CABP do NIST
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
7
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
Criação e manutenção de contas de usuários, de papéis,
de autorizações e respectivos relacionamentos
► 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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
8
A solução MACA
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
Funções administrativas básicas para o CABP disponíveis no MACA
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
9
A solução MACA
►
Case de políticas administrativas
para um grande hospital
Hospital de Clínicas
 Alternativa para descentralização e autonomia da administração de
políticas de acesso
► Descentralizar
Instituto do
Instituto de
Neurologia
Coração
 Criação e manutenção de contas
 Vinculação/desvinculação de papéis para usuários
 A autonomia é limitada
Divisão de Clínica
Cardiológica
Divisão de Cirurgia
Divisão de Clínica
Divisão de
►
Cada unidade
organizacional Neurológica
só pode administrar as contas
e
Cardiovascular
Neurocirurgia
respectivos papéis de seus próprios usuários
►
Hierarquia de acesso com abrangência limitada pela estrutura
Serviço de
organizacional
Serviço de
Eletrocardiografia
Neuropediatria
► Centralizar
 Criação e manutenção de papéis, de objetos e autorizações
Serviço de
 Vinculação/desvinculação
Hemodinâmica
Recife, 30 de janeiro de 2006
Serviço de
de autorizações
para papéis
Neuroanatomia
(C) 2006 Gustavo Motta
10
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
Administrador do CABP
Administrador de Usuário
Administrador de Contas
Criador de Contas
Vinculador de Papéis
Administrador de Help Desk
Administrador de Papel
exp-abs(atributos){
exp-abs(login,
atributos){
papel){
+, criar, Autorização,
fraca,
+,
ler,
Autorização,
+, criar,
executar,
ler,
criarNovaSenha,
Usuário,
Papel,
CABPfraca,
FA,
Usuário,
fraca.
+,
ler,
fraca.
Papel, fraca,
fraca.
usuárioCtx.login != login &
organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação,
+, alterar, Autorização, fraca, +, excluir, Autorização, fraca,
organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação,
macaCtx.valorAtributo(atributos,
“lotação”)
“lotação”)
&
+,
ler, Papel,macaCtx.valorAtributo(login,
fraca,
(usuárioCtx.login
}, criar, Usuário,
!=forte,
login) &macaCtx.valorAtributo(atributos, “lotação”) &
+,
alterar,
Papel,
+,!organogramaCtx.TipoLotaçãoAbaixoOuIgualA(“divisão”,
criar,
Objeto,
fraca, +,fraca,
ler, Objeto, fraca,
organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação,
+,
Objeto,
fraca, +,
excluir, Objeto, fraca,
exp-abs(login,
papel){
organogramaCtx.TipoLotação(usuárioCtx.lotação))
macaCtx.valorAtributo(login,
“lotação”)&
+, alterar,
excluir,
Papel,
fraca.
usuárioCtx.login
(!organogramaCtx.TipoLotação(usuárioCtx.lotação)
}, alterar, Usuário,
!= login
fraca,&
= “instituto” |
organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação,
(macaCtx.PapelAbaixoOuIgualA(“Administrador de Contas”, papel) |
+, criar, Operação, fraca, +, ler, Operação, fraca,
exp-abs(login){
(macaCtx.PapelAbaixoOuIgualA(“Usuário”,
macaCtx.valorAtributo(login,
papel) &
“lotação”)
+, alterar, Operação, fraca, +, excluir, Operação, fraca,
usuárioCtx.login
},
desvincular,
!macaCtx.PapelAbaixoOuIgualA(“Médico
Usuário-Papel,
!= login &
forte,
Auditor”, papel))))
organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação,
}, vincular, Usuário-Papel, forte,
+,
vincular,
Papel-Autorização,
fraca,
, vincular,
Usuário-Papel,
forte.
macaCtx.valorAtributo(login,
“lotação”)
Administrador de Autorização
, desvincular, Usuário-Papel, forte,
excluir, Usuário,
fraca.
+,},desvincular,
Papel-Autorização,
fraca.
, criar, Usuário, forte.
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
11
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
12
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
13
A solução MACA
►
Arquitetura e implementação
{transiente}
pa : Principal
Authenticator
c : Cliente
: Credentials
authenticate(login, pwd, ...)
ado : Access
Decision
maca:
MACAService
ldap :
LDAPServer
)
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)
{sessão encerrada}
Recife, 30 de janeiro de 2006
unbind(...)
x
(C) 2006 Gustavo Motta
14
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
15
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
16
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
► 86
contas – média de 1,3 papéis associados
papéis – média de 30,3 usuários vinculados
– média de 3,1 autorizações diretamente associadas
► 205
► 83
autorizações – 18% regras
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 24x7
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
17
O uso industrial do MACA
Tempo médio de resposta (ms)
►
Avaliação de desempenho
► Tempo
100
 Observar a variação do TMR com o aumento da carga no servidor de
TMR aumentou 3,6 vezes no
autorização e autenticação
80
60
40
►
0 a 700 usuários simultâneos, com a intervalo
entrada progressiva
[50-700] de 60 agentes
simulando usuários a cada 5’
►
TMR de 100 solicitações aferidos cada 50 novos usuários
20
0
0
50
100 150 200 250 300 350 400 450 500 550 600 650 700
 Servidor Usuários simultâneos
►
1600
Média de solicitações por min.
médio de resposta (TMR) para autorização e autenticação
Exp. 1 - com cache e com IIOP/TLS
2xPentium III 1,3GHz, 1GBytes MP, 100 Mbits/s, Linux Suse 8.0
 Clientes
Exp. 1 - autenticação com cache e com IIOP/TLS
1400
1200
Exp. 1 - autorização com cache e com IIOP/TLS
►
1000
4 Pentium III 500MHz, 196 MBytes MP, 100 Mbits/s, Win/2000
Carga média aumentou 8,7
 Estação de medição
800
600
►
400
vezes
intervalo
[50-700]
1 Pentium III 800MHz, 326 MBytes MP,
100 no
Mbits/s,
Win/2000
200
0
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Usuários simultâneos
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
18
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
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
19
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
[email protected]
Recife, 30 de janeiro de 2006
(C) 2006 Gustavo Motta
20/50000
Download

Políticas administrativas no MACA