O documento discute gerenciamento de identidades federadas em nuvens, introduzindo conceitos como computação em nuvem, modelos de gerenciamento de identidade e padrões como SAML e OAuth. Também apresenta soluções abertas como Shibboleth, Higgins e OpenAM para autenticação e autorização em ambientes de nuvem federados.
2. Introdução:
• Ao Final da década de 90 as
organizações, sejam elas empresas ou
universidades empregavam serviços de
autenticação de forma centralizada com o
intuito de facilitar o gerenciamento e
unificar o controle de acesso, recurso
conhecido como SSO (Single Sign-On).
• Este é um modelo ainda bastante
utilizado, e funciona bem em
organizações que se limitam ao seu único
serviço de diretórios, porem as limitações
deste modelo surgem a partir do
momento em que a organização precise
utilizar serviços compartilhados.
3. Introdução:
• A principal falha deste modelo
centralizado é prender os usuários
ao domínio de sua organização, ou
seja, limitar o utilizador ao
contexto de uma única aplicação.
Com o surgimento da Web 2.0 o
gerenciamento de Identidades
(IdM) tornou-se ainda mais
complexo, devido aos conceitos de
colaboração, interoperabilidade
entre aplicações e
compartilhamentos de informações
na internet
4. Introdução:
• A gerência de identidades federadas (Federated
IdM) têm como desafio oferecer uma infraestrutura
que permita tanto aos usuários uma experiência de
SSO, quanto aos administradores um mecanismo de
autenticação e controle de acesso aos recursos
federados entre parceiros.
• Podendo ser caracterizada também por possuir
principalmente os seguintes elementos:
autenticação, autorização, logging, provisionamento
de usuários, automação com
workflow, delegação, federação, SSO e mecanismo
de password reset oferecido aos usuários
5. Considerações Gerais:
Para entendermos o que é Gerencia de Identidade
em nuvens precisamos entender dois conceitos:
Computação em Nuvem
Gerência de Identidade
6. Computação em nuvem:
• É um modelo de computação
distribuída que deriva
características da computação
em grades, no que diz respeito
à provisão de informação sob
demanda para múltiplos
usuários concorrentes.
7. Computação em nuvem:
• Um domínio oferece aplicações na nuvem sem se
preocupar com o local onde os serviços estão
sediados ou como eles são oferecidos. Fatias do
poder computacional dos nós da rede são
oferecidas, reduzindo os custos para fornecer
uma infraestrutura própria para prover os
serviços.
8. Computação em nuvem:
• A computação em nuvem pode ser definida
também a partir dos seus
serviços, características e atributos, a seguir
estão listadas alguns itens que a mesma integra:
Serviço sob demanda
Amplo acesso aos recursos computacionais
Transparência
Elasticidade
Gerenciamento
9. Computação em nuvem:
• Provedores de serviços de computação em
nuvem podem oferecer diferentes tipos de
planos de serviço, no qual cada usuário solicita o
plano que se encaixe melhor em suas
necessidades, a seguir podemos conferir alguns
dos planos.
IaaS (Infrastructure as a Service)
PaaS (Plataform as a Service)
SaaS (Software as a Service):
10. Computação em nuvem:
• Provedores de serviços de computação em
nuvem podem oferecer diferentes tipos de
planos de serviço, no qual cada usuário solicita o
plano que se encaixe melhor em suas
necessidades, a seguir podemos conferir alguns
dos planos.
IaaS (Infrastructure as a Service)
PaaS (Plataform as a Service)
SaaS (Software as a Service):
11. Sistemas Open-Source C. Nuvem:
• Nimbus: disponibiliza um
toolkit de código aberto para
oferecer um ambiente de
cluster como uma IaaS.
Também são oferecidas
interfaces que seguem ) para
o acesso à base de dados de
recursos e escalonamento de
VMs por meio de uma
interface de gerência.
12. Sistemas Open-Source C. Nuvem:
• OpenNebula: oferece um
toolkit de código aberto para a
provisão de nuvens
públicas, privadas e híbridas. A
infraestrutura do sistema
oferece recursos sob demanda
para usuários finais, e foi
projetada para ser integrada
com outras soluções de
armazenagem e rede. As VMs
são utilizadas em um pool de
recursos e toda a alocação de
recursos é baseada em políticas.
13. Sistemas Open-Source C. Nuvem:
• Eucalyptos: é uma plataforma
de software de código aberto
para a criação e gerência de
nuvens públicas e privadas. A
empresa
Canonical, mantenedora da
distribuição Ubuntu, adotou
inicialmente o
Eucalyptus, juntamente com
outros softwares de código
aberto, como solução de nuvem
para o Ubuntu Server Edition.
Essa solução ficou conhecida
como Ubuntu Enterprise Cloud
(UEC).
14. Sistemas Open-Source C. Nuvem:
• Como podemos perceber nenhuma destas
soluções integra funcionalidades para o
gerenciamento de identidades de usuários que
pertençam a varias nuvens. É comum adotar
uma infraestrutura especifica para criação de
federações, ou seja, tal recurso acaba sendo
como um adicional no ambiente de computação
em nuvem.
15. Gerência de Identidade:
• Em relação à identidade
podemos ter diferentes
conceitos dependendo do
contexto onde a mesma é
aplicada, porem como definição
geral podemos dizer que
identidade é uma representação
de uma entidade ou sujeito que
seja suficiente para identificar
esta entidade em um contexto
particular.
16. Gerência de Identidade:
• Em relação à identidade podemos ter diferentes
conceitos dependendo do contexto onde a
mesma é aplicada, porem como definição geral
podemos dizer que identidade é uma
representação de uma entidade ou sujeito que
seja suficiente para identificar esta entidade em
um contexto particular.
18. Modelos Gerência de Identidade:
• Os modelos de gerência de identidade são
definidos a partir de sua arquitetura, onde cada
modelo possui uma forma diferente de lidar e
representar o gerenciamento de
identidades, abaixo estão listados quais são esses
modelos:
Tradicional/Isolado
Centralizado
Federado
Centrado no Usuário
20. Gerência de Identidades Federadas em Nuvens:
• Nas Instituições/Organizações ambientes de
computação em nuvem geralmente são mantidos
por empresas privadas, no qual os recursos dos
serviços da nuvem ficam acessíveis através da
Internet. Neste caso é necessário um mecanismo a
fim de prover autenticação e autorização de usuários
no acesso destes recursos, tanto para usuários
pertencentes ao mesmo domínio/empresa como
usuários parceiros. Para que a cooperação seja
realizada com êxito, as entidades parceiras devem
definir políticas para o compartilhamento de
recursos junto aos domínios federados .
21. Gerência de Identidades Federadas em Nuvens:
• Esse processo envolve mecanismos de SSO para
que, uma vez que o usuário esteja autenticado em
seu domínio de origem, ele possa acessar recursos
em quaisquer outros domínios federados, desde que
esse usuário esteja inserido no contexto de
autorização do domínio em questão. Em domínios
não-federados, o mesmo usuário precisaria ter
credenciais em ambos os domínios para ter
permissões de acesso aos recursos distribuídos.
Estes recursos são oferecidos através dos padrões
abertos acordados entre os domínios
22. Padrões e Soluções para Implantação
de Gerência de Identidades Federadas
Padrões:
Autenticação
Autorização
Soluções:
Shibboleth
Higgins
OpenAM
23. Autenticação
• O termo autenticação está inteiramente ligado
de como é tratado o problema de determinar se
um usuário ou entidade devem ou não ser
autorizados a acessar determinado sistema.
24. Padrões - Autenticação
• SAML
▫ SAML é um padrão aberto baseado em XML para
troca de informações seguras de autenticação e
autorização em círculo de confiança, independente
da arquitetura dos domínios integrados.
▫ O SAML trabalha com base em um documento
XML que é gerado pelo IdP contendo regras que
são utilizadas pelo SP para tomar decisões a
respeito do controle de acesso aos recursos
protegido.
25. Padrões - Autenticação
• OpenID
▫ É um protocolo aberto utilizados por grandes
provedores de identidades como a Google, que
permite uma forma de autenticação
centralizada, onde o usuário/aplicação com
autenticação única possa consumir serviços em
sites que utilizam o protocolo HTTPS em um ciclo
de confiança.
27. Padrões - Autorização
• XACML – Extensible Access Control Markup
Linguage
▫ O XACML é um padrão aberto que utiliza uma
linguagem de marcação XML declarativa, onde
são definidas as políticas de acesso. Logo, quando
um usuário autenticado tenta realizar alguma
ação, as regras são consultadas para verificar se a
mesma é ou não permitida.
28. Padrões - Autorização
• OAuth
▫ Padrão de autenticação aberto que permite que
usuários/aplicações compartilhem recursos com
terceiros sem compartilhamento de credenciais.
Na arquitetura Cliente-Servidor o OAuth introduz
um terceiro papel a este modelo: o proprietário do
recurso.
▫ Ao contrário das credenciais, as permissões (em forma
de token e uma chave secreta) podem ser emitidas com
um âmbito restritivo e de vida útil limitada, e
revogadas de forma independente
29. Soluções
• A seguir será apresentado algumas soluções
abertas que podem ser utilizadas para
implantação de computação em nuvem
federada.
30. Soluções
• Shibboleth
▫ Padrão de autenticação aberto que permite que
usuários/aplicações compartilhem recursos com
terceiros sem compartilhamento de credenciais.
Na arquitetura Cliente-Servidor o OAuth introduz
um terceiro papel a este modelo: o proprietário do
recurso.
31. Soluções
• Higgins
▫ Desenvolvido pela empresa Eclipse Foundation, o
projeto foi criado com o objetivo de integrar através de
componentes extensíveis identidades, perfis e
informações relacionadas a redes sociais entre
diversos sites, aplicações e dispositivos.
▫ Para tratar e evitar estas questões o projeto Higgins
apresenta um framework que permite o controle de
como os dados pessoais são compartilhados com
amigos/organizações dentro de um ciclo de confiança.
32. Soluções
• O OpenAM é mantido pelo grupo ForgeRock e
tem o código aberto. Disponibiliza serviços de
autenticação e
autorização, federação, SSO, monitoração, loggi
ng e provisão de identidades. Possui a
arquitetura cliente/servidor desenvolvido na
linguagem java e é disponibilizado em forma de
uma aplicação Web J2EE.
33. Soluções
• O OpenAM também dar suporte para agente que
funcionam como um filtro instalado no web
container interceptando as requisições e
encaminha para o OpenAM como mostrado na
figura a seguir:
34. Conclusão
• Com a constante evolução no mundo onde o
imediatismo já faz parte do cotidiano das pessoas, a
implementação de aplicações nas nuvens é cada vez
mais necessária dentro deste contexto, para trazer
integração entre pessoas, aplicações, corporações e
serviços.
• Não é uma tarefa fácil trabalhar com identidades
federadas, mas ela tem acompanhado a grande
evolução tecnológica, incorporando soluções cada
vez mais viáveis tanto para os
desenvolvedores, quanto para os usuários.