Gestão de Identidade e
Aplicações Federativas
Capítulo IV
José Rogado
[email protected]
Universidade Lusófona
Mestrado Eng.ª Informática e Sistemas de Informação
1º Semestre 11/12
Programa da Cadeira
1. Introdução
Introdução ao Identity Management (IM)
Necessidades, Objectivos e Evolução
Elementos de Segurança
Terminologia e Conceitos Básicos
Algoritmos de Encriptação
Certificação
2. Gestão de Identidade
Identificação e Autenticação
Autorização e Controle de Acessos
Políticas, modelos e mecanismos
Modelos de Gestão de Identidade
Dez-11
Sistemas de autenticação
Contextos de segurança
Modelos locais
Gestão de identidade em ambientes empresariais
Modelos em rede, federados e globais
Gestão de Identidade e Aplicações
Federativas
2
Programa da Cadeira
3. Modelos de Confiança
Estabelecimento de Confiança
Confiança Baseada em Terceiros (Third-Party)
Confiança Implícita: Kerberos
Confiança Explícita: Infraestruturas de Chave-Pública (PKI)
Modelo Web-of-trust, reputação e comunidades de confiança
Modelo Federativo: necessidades, requisitos e implicações
4. Tecnologias de Suporte à Federação
Dez-11
XML Security: XML encryption, XML Signature, XML Key Management
Web Service Security: Secure SOAP Messages
SAML: Profiles, Bindings, Assertions
XACML: Especificação de Atributos, noções de RBAC
Web Services Security Framework
Liberty Alliance Framework
Gestão de Identidade e Aplicações
Federativas
3
Programa da Cadeira
5. Plataformas de Federação de Identidade
Shibboleth
OpenID
Modelo de Funcionamento
Arquitectura
Caso Prático
Dez-11
Modelo de Funcionamento
Arquitectura: IdP (Identity Provider), SP (Service Provider), WAYF
(Where Are You From)
Definição, Especificação e Implementação
Comparação de Tecnologias e Conceitos
Gestão de Identidade e Aplicações
Federativas
4
Características do Modelo Federado
Os modelos de IM abordados podem ser generalizados de forma a permitir a
agregação de domínios de confiança heterogéneos
• As tecnologias apresentadas permitem estabelecer relações entre entidades diversas,
com modelos internos distintos, desde que sigam um conjunto de princípios
Ao agregado de domínios assim criados, dá-se geralmente o nome de Federação, e
deverá obedecer às seguintes regras:
• A homogeneização da gestão de identidade entre domínios é realizada com base num
mecanismo de confiança acordado, para o estabelecimento do qual é estabelecido um
protocolo de autenticação
O tipo de relação de confiança pode ser mono ou bidireccional
• Os sujeitos autenticam-se nos seus respectivos domínios de registo mas podem
aceder a serviços disponibilizados por outros domínios com base na relações de
confiança estabelecidas
• Informação sobre os perfis dos sujeitos pode ser transferida entre domínios, na
condição de serem estabelecidas regras de conversão de formatos distintos
• Os sujeitos devem poder escolher quais o conjunto de atributos que é veiculado do seu
domínio de registo para qualquer outro que requeira esse tipo de informação
• A informação de identidade de um sujeito permanece ligada ao seu domínio de registo,
e está intimamente ligada à identificação respeitante ao domínio
• Devem ser utilizados protocolos de transporte baseados em standards de criptografia
forte para todas as trocas de mensagens entre domínios
Existem tecnologias específicas para realizar a maior parte dos aspectos acima
referidos, que iremos abordar neste capítulo
Dez-11
Gestão de Identidade e Aplicações
Federativas
5
Tecnologias de Suporte à Federação
Os requisitos de segurança dos ambientes federativos são mais
complexos do que os dos ambiente Cliente/Servidor
tradicionalmente usados em computação distribuída e na Web
A implementação de um determinado serviço pode ser realizada por
várias entidades através de múltiplas interacções
• A segurança deve persistir através das várias mensagens
• A identificação do end-user pode (ou não) ser propagada até ao
destinatário
• Cada entidade deve poder introduzir ou retirar as suas
credenciais específicas utilizadas na comunicação com os seus
parceiros directos
Assim são necessárias tecnologias que permitam às diversas
entidades envolvidas gerir de forma flexível a propagação dos
contextos de confiança estabelecidos entre elas
Dez-11
Gestão de Identidade e Aplicações
Federativas
6
Contexto de Segurança Composto
Contexto de Segurança Ponto-a-Ponto
Contexto de Segurança 1
Contexto de Segurança 2
SOAP
Browser
SSL/HTTPS
Web
Server
Appl.
Server
Domínio A
Web
Service
Platform
Data
Domínio B
O contexto de segurança entre um utilizador e um Service Provider pode
ser composto por múltiplos sub-contextos intermédios
Dez-11
Gestão de Identidade e Aplicações
Federativas
7
Standards de Federação
Emergência de standards suportados pela W3C, OASIS e
fornecedores de plataformas de middleware
• Para permitir a gestão de múltiplos contextos de segurança embebidos
na estrutura dos dados e das mensagens
XML Security: standard que permite encriptar e/ou assinar documentos em
XML
WS-Security: standard que permite encriptar e assinar as mensagens SOAP
(headers e body), ou transmitir credenciais.
• Para permitir trocar informações sobre a autenticação e autorização de
utilizadores entre Identity e Service Providers
SAML (Security Assertion Markup Language): standard que permite
propagar condições de autenticação e autorização entre entidades federadas
Outros standards propostos por organizações e software houses
para criar ambientes de autenticação federados
• Liberty Alliance (Sun, SUN, HP, Nokia, ...)
• WS-* (IBM-Microsoft)
Dez-11
Gestão de Identidade e Aplicações
Federativas
8
XML Security
Standard utilizado maioritariamente para permitir a
interoperabilidade e propagação de credenciais de segurança entre
os vários intervenientes em Federações e Web Services.
• Segurança ponto a ponto
• Segurança entre intermediários
• O facto do SOAP ser baseado em XML permite a generalização
desta tecnologia
XML Encryption
• Recomendação de 2002 da W3C (www.w3.org/Encryption)
• Permite a encriptação de todo ou parte de um documento XML
XML Signature
• Recomendação de 2008 da W3C (www.w3.org/Signature)
• Permite a assinatura digital de um documento em XML
Dez-11
Gestão de Identidade e Aplicações
Federativas
9
XML Encryption - estrutura
O tipo de dados encriptados pode ser
de diferentes tipos, incluindo
estruturas XML
O algoritmo de encriptação utilizado,
geralmente de chave simétrica
Informação opcional sobre a chave
de encriptação utilizada, que pode
ser enviada encriptada ou obtida por
referência
Os dados encriptados podem ser
incluídos na estrutura ou
referenciados
Informações adicionais sobre a
encriptação podem ser incluídas
(timestamp, encryption device, ...)
Especificação W3C: www.w3.org/TR/xmlenc-core
Dez-11
Gestão de Identidade e Aplicações
Federativas
10
XML Encryption - exemplo
Dados a encriptar:
um elemento XML
Dez-11
Gestão de Identidade e Aplicações
Federativas
11
XML Encryption – exemplo 1
Dados Encriptados:
um elemento XML
Dez-11
Gestão de Identidade e Aplicações
Federativas
12
XML Encryption – exemplo 2
Dados Encriptados:
Conteúdo de um elemento
específico da estrutura XML
A encriptação XML permite proteger selectivamente partes específicas de
um documento ou mensagem
Dez-11
Gestão de Identidade e Aplicações
Federativas
13
XML Signature - estrutura
Especificação W3C: www.w3.org/TR/xmldsig-core
Dez-11
Gestão de Identidade e Aplicações
Federativas
14
XML Signature - exemplo 1
Informação sobre o método de assinatura
Neste caso os dados assinados estão contidos no documento XML
(enveloped)
Dez-11
Gestão de Identidade e Aplicações
Federativas
15
XML Signature - exemplo 2
Informação sobre o método de assinatura
Certificado X509 identifica o assinante
A assinatura refere-se a um documento através do seu URI (detached)
Dez-11
Gestão de Identidade e Aplicações
Federativas
16
WS-Security
Web Services Security: especificação
desenvolvida pela IBM, Microsoft e VeriSign
• msdn2.microsoft.com/en-us/library/ms977312.aspx
Agora suportada pelo OASIS Web Services
Security (WSS) Technical Committee.
• www.oasis-open.org/committees/wss
Define extensões de segurança ao SOAP
para assegurar integridade de dados e
confidencialidade das mensagens
• Utilizando XML signature e XML encryption
Inserção de Security Headers na
mensagem, permitindo:
• Envio de Security Tokens
Certificados X.509
Tickets Kerberos
Assertions SAML
• Encriptação e Assinatura de partes
seleccionadas do message body
Com base nos artefactos contidos nos
Security Tokens
Dez-11
Gestão de Identidade e Aplicações
Federativas
17
WS-Security - exemplo
Security Token
Security Header
Dez-11
Gestão de Identidade e Aplicações
Federativas
18
Standards de Federação – SAML
SAML - Security Assertions Markup Language
• Definida pelo OASIS SSTC (IBM, SUN, AOL, Boeing, Nokia, ...)
A versão 1.0 aprovado como Standard em Novembro de 2002.
• Utilizada com enorme sucesso em inúmeros plataformas de SSO,
autenticação e standards de segurança (WS-Security, Liberty, ...)
A versão SAML 2.0 (Março 2005) introduz novas funcionalidades
essenciais para a federação:
•
•
•
•
Definição de novos perfis (Identity Provider, Service Provider, ...)
Utilização de pseudónimos dinâmicos para designar as identidades
Gestão de fim de sessão (single-logout)
Federação avançada, com suporte de:
IdP Discovery
Gestão de Atributos
Esta versão permite a convergência com outros standards de
federação (i.e.: Liberty Alliance).
Dez-11
Gestão de Identidade e Aplicações
Federativas
19
Componentes SAML
O SAML é constituído por um conjunto de componentes que em
conjunto permitem transferir identidade, autenticação, atributos e
autorização entre entidades que estabeleceram uma relação de
confiança
Source: SAML V2.0 Technical Overview - OASIS
Dez-11
Gestão de Identidade e Aplicações
Federativas
20
Assertions
Uma Assertion é um documento XML com uma estrutura própria,
que pode ser veículada por HTTP ou SOAP
As assertions permitem veicular declarações (statements) sobre
sujeitos, que podem ser de vários tipos:
• <AuthnStatement> declaração sobre a autenticação realizada
por um sujeito
• <AttributeStatement> declaração sobre os atributos de um sujeito
• <AuthzDecisionStatement> declaração sobre decisões
relacionadas com possíveis acções que o sujeito pode realizar
As assertions podem ser assinadas e ser parcial ou totalmente
encriptadas
Utilizando XML Signature e XML Encryption
Pode conter uma ou várias chaves ou certificados digitais
Dez-11
Gestão de Identidade e Aplicações
Federativas
21
Estrutura Genérica de uma Asserção
Identificador da
Asserção
Identificador do IdP
Validade da Asserção
Restrições
Características e
instante da autenticação
Correspondência entre
os perfis no IdP e no SP
Assinatura da Asserção
com a CP do issuer
Dez-11
Gestão de Identidade e Aplicações
Federativas
22
Exemplo
Source: SAML V2.0 Basics – Eve Maler (SUN)
Dez-11
Gestão de Identidade e Aplicações
Federativas
23
Protocolos SAML
Conjunto de protocolos de tipo Request/Response que governam as
interacções entre as várias entidades SAML
• Authentication Request Protocol
Conjunto de interacções que permitem obter declarações de identidade e
opcionalmente declarações de atributos
• Assertion Query and Request Protocol
Protocolo para obtenção de asserções
• Artifact Resolution Protocol
Mecanismo para passar mensagens através de referências, designadas
por artifacts
Por exemplo, uma forma de obter uma assertion com base numa
referência
• Name Identifier Mapping Protocol
Permite mapear dois identicadores SAML entre domínios distintos
• Name Identifier Management Protocol
Permite mudar os valores e formatos dos identificadores associados aos
sujeitos
• Single Logout Protocol
Define um mecanismo para permitir terminar de forma simultânea todas
as sessões associadas com um determinado sujeito
Dez-11
Gestão de Identidade e Aplicações
Federativas
24
Bindings
Os bindings determinam a forma como as mensagens dos
protocolos SAML são veiculadas pelos protocolos de transporte
• HTTP Redirect Binding:
Utilização da directiva redirect HTTP (302) para transportar
mensagens SAML
• HTTP Post Binding:
Transporte de mensagens SAML no conteúdo de uma form HTML
• HTTP Artifact Binding:
Define a forma de propagar um artifact usando forms ou URL query
strings
• SAML SOAP Binding:
Utilização do protocolo SOAP para veicular mensagens SAML
• SAML URI Binding:
Permite identificar uma assertion através de um URI
Dez-11
Gestão de Identidade e Aplicações
Federativas
25
Profiles
Definem a utilização dos vários componentes do SAML (asssertions,
protocolos e bindings) para estabelecer as interacções entre as
entidades envolvidas em vários cenários possíveis
• Web Browser SSO Profile:
Define a utilização do Authentication Request Protocol para
implementar Web SSO
• Identity Provider Discovery Profile:
Define uma forma para os Service Providers descobrirem o Identity
Provider associado a um dado utilizador
• Single Logout Profile:
Define a implementação do Single Logout Protocol com os vários
bindings possíveis
• Assertion Query/Request Profile
• Artifact Resolution Profile
Dez-11
Gestão de Identidade e Aplicações
Federativas
26
SSO Profile w/ Redirect/POST Bindings
Source: SAML V2.0 Technical Overview - OASIS
Dez-11
Gestão de Identidade e Aplicações
Federativas
27
SSO Profile w/ Redirect/Artifact Bindings
Source: SAML V2.0 Technical Overview - OASIS
Dez-11
Gestão de Identidade e Aplicações
Federativas
28
Browser SSO Profile w/ Artifact
Define um conjunto de interacções SAML necessárias para transferir a
autenticação do Identity Provider para o Service Provider.
1: O User Agent (browser) acede ao Service
Provider(SP) sem contexto de autenticação para
esse serviço.
2 e 3: O SP redirecciona o Browser para o Identity
Provider (IdP) associado de autenticação, com
um pedido de AuthnRequest.
4 e 5: O IdP autentica o principal e redirige o
Browser de novo para o SP, com um artifact que
referencia essa autenticação.
6 e 7: O SP utiliza faz um request SAML para pedir
a assertion referenciada pelo artifact recebido.
8: O IdP satisfaz o pedido de acesso ao browser,
baseado na autorização contida na assertion
recebida.
SAML Browser/Artifact dialog
Dez-11
Gestão de Identidade e Aplicações
Federativas
29
Browser SSO Profile (Redirect/Artifact)
A asserção é enviada do IdP para o
SdP em resposta ao envio do artifact
Dez-11
Gestão de Identidade e Aplicações
Federativas
30
Browser SSO Profile (Redirect/POST)
A asserção passa do IdP para
o SP transitando pelo User
Agent
Dez-11
Gestão de Identidade e Aplicações
Federativas
31
Referências
OASIS: Organization for the Advancement of Structured Information
Standards
• www.oasis.org
XML Security Library
• www.aleksey.com/xmlsec
SAML
• http://identitymeme.org/doc/draft-hodges-learning-saml-00.html
• http://saml.xml.org/saml-specifications
Web Services Security
• msdn2.microsoft.com/en-us/library/ms977312.aspx
Liberty Federation
• www.projectliberty.org
Shibboleth
• http://shibboleth.internet2.edu
SourceID (PingIdentity)
• http://www.sourceid.org
Dez-11
Gestão de Identidade e Aplicações
Federativas
32
Download

Federação