• Nenhum resultado encontrado

2.3 SOLUÇÕES PARA IMPLANTAÇÃO DE AUTENTICAÇÃO SSO

2.3.1 SAML

O SAML (Security Assertion Markup Language) é um padrão que define uma estrutura baseada em XML para descrever e trocar informações de segurança entre os parceiros de negócios on-

line. Estas informações são expressas sob a forma de afirmações portáteis SAML. O padrão SAML

define a sintaxe e regras claras para a solicitação, a criação, a comunicação e a utilização das asserções SAML (OASIS, 2008).

A OASIS (Organization for the Advandement of Structured Informations Standards) desenvolve e mantém um framework SAML aberto, usado para comunicar a autenticação dos usuários, seus direitos e seus atributos, permitindo a geração de afirmações solicitadas pelos usuários ou organizações parceiras na troca de informações entre aplicativos coorporativos (OASIS, 2005).

Segundo OASIS (2005), a primeira versão do SAML V1.0 se tornou um padrão OASIS em 2002, seguido pela versão SAML V1.1 em 2003, que ganhou importância em serviços financeiros, de ensino superior, de governos e outros serviços do segmento industrial, alcançando significativo sucesso. Atualmente, a SAML está na versão 2.0 (lançada em 2005) e se transformou em um passo fundamental para a plena convergência dos padrões de identidade federada.

As aplicações da especificação SAML estão sendo utilizadas de diferentes maneiras, as mais relevantes estão descritas em (OASIS, 2005):

Web SSO: o SAML possibilita o SSO através da comunicação de uma asserção de

autenticação em um primeiro local para um segundo local que confia na origem da autenticação.

Autorização baseada em atributos: semelhante ao cenário de SSO, o SAML permite a

autorização baseada em atributos para comunicar informações de uma identidade entre diferentes Webs sites, possibilitando desta forma apoio em algumas transações.

Segurança em Serviços da Web: as asserções SAML podem ser usadas dentro das

mensagens SOAP, afim de realizar operações com segurança de informações e identidade entre agentes em um serviço web.

2.3.1.1 Componentes da especificação SAML

Segundo o Governo de Orientações e Prioridades de TIC (Government ICT Directions and

Priorities - GCIO) do Governo da Nova Zelândia, o SAML v2.0 em termos gerais é uma norma que

define as asserções SAML, protocolos, associações (ligação de mensagens para os protocolos de comunicação), e perfis SAML refletindo um caso de uso definido, juntamente com a assinatura XML aplicável e padrões de criptografia do W3C3 (GCIO, 2005). A Figura 9 apresenta a relação entre os componentes do SAML.

3 Consórcio World Wide Web (W3C) é um consórcio internacional que desenvolve os padrões para Web, disponível em: http://www.w3c.br/Sobre

Figura 9: Relação entre os componentes SAML Fonte: OASIS (2005)

OASIS (2005) fornece uma descrição alto nível dos componentes do SAML representados pela Figura 9:

Asserções (assertions)

Uma asserção é um pacote de informações que suprimem uma ou mais declarações feitas por uma autoridade SAML. O SAML define três tipos de asserções que podem ser criadas por uma autoridade SAML, que são:

 Autenticação: esse tipo de asserção é normalmente gerada por uma autoridade SAML chamada de provedor de identidade, que é responsável por autenticar os usuários e manter o controle de suas informações;

 Atributo: esta asserção associa os usuários aos seus atributos especificados;

 Decisão de autorização: asserção permitindo ou negando a autorização de serviços de uma solicitação específica de acesso.

Segundo OASIS (2005), a estrutura externa de uma asserção é genérica e fornece a informação que é comum a todas as declarações dentro dela. Os elementos existentes em uma asserção descrevem a autenticação, os atributos ou as especificações definidas pelo usuário. A Figura 10 ilustra a estrutura de alto nível de uma asserção de autenticação SAML.

Figura 10: Estrutura de alto nível da asserção SAML Fonte: OASIS (2005)

Protocolos (protocols)

Os protocolos do SAML definem como as asserções SAML são transportadas entre os participantes. As asserções podem ser geradas e trocadas entre os provedores de identidade e serviço, usando uma variedade de protocolos de solicitação-resposta. Estes protocolos são baseados em XML e são na forma de pares de solicitação-resposta, que detalham as informações ou a ação solicitada e como isso será respondido (GCIO, 2005).

Os protocolos definidos dentro da especificação SAML realizam as seguintes ações:

 Retornar uma ou mais asserções solicitadas. Isto é, em resposta a uma solicitação direta da asserção desejada, ou uma consulta por asserções que atendam a critérios específicos;

 Executar a autenticação mediante uma solicitação e retornar a asserção correspondente;

 Registrar um identificador de nome ou rescindir um registro de nome, mediante solicitação;

 Recuperar uma mensagem do protocolo que tenha sido solicitada por meio de um artefato;

 Solicitar simultaneamente a saída de uma coleção de asserções relacionadas, ou seja desconecta de tudo ao mesmo tempo, conhecido como “single logout”; e

 Fornecer um mecanismo de ligação ou mapeamento de nomes identificadores em sites federados.

Ligações (bindings)

O mapeamento do SAML para troca de mensagens de solicitação-resposta entre as partes participantes utilizando protocolos de comunicação é chamado de Ligações SAML. Segundo o GCIO (2005), há uma variedade de ligações definidas para o transporte de mensagens entre as partes participantes. As ligações SAML v2.0 são:

Ligação SOAP (SOAP Binding). As mensagens SAML podem ser transmitidas utilizando o

protocolo SOAP bem definido;

Ligação SOAP Reverso (Reverter Binding SOAP). As mensagens SAML também podem ser

trocadas via SOAP reverso;

Ligação Redirecionamento HTTP (HTTP Redirect Binding). Esta ligação fornece o padrão

SAML com um mecanismo para transmitir uma mensagem SAML dentro da URL de uma solicitação HTTP. Isso normalmente é necessário quando não há um caminho direto entre um provedor de identidade e um provedor de serviços, caso em que a mensagem SAML tem que ser transportado indiretamente, normalmente, via o navegador web do usuário final;

Ligação Mensagem HTTP (HTTP Post Binding). As mensagens SAML podem ser

transmitidas dentro do conteúdo de um formulário HTML postado em um provedor de serviços;

Ligação Artefato HTTP (HTTP Artifact Binding). O Artefato HTTP SAML é um

mecanismo que permite a comunicação através de um agente do usuário HTTP intermediário, esta ligação tem o objetivo de reduzir o fluxo de mensagens através do SAML; e

Ligação URI (URI Binding). Uma asserção SAML específica pode ser repassada em uma

HTTP URI.

Perfis (profiles)

Um perfil SAML é uma maneira de definir como as asserções, os protocolos e as ligações SAML são combinados para especificar um caso de uso particular. O objetivo de um perfil é remover algumas das ambiguidades na aplicação SAML que surge inevitavelmente em um padrão de uso geral. Um perfil pode ser usado para definir restrições e / ou extensões de SAML para melhorar a sua adequação para um uso ou aplicação particular. Por exemplo, o Web SSO especifica o perfil como federação de identidades habilitado para a sessão do navegador web do usuário, especificando a maneira pela qual as afirmações de autenticação SAML são comunicadas entre um Provedor de Identidade e um Provedor de Serviços.

Outro tipo de perfil SAML é o perfil baseado em atributos, que prevê regras específicas para interpretação de atributos em uma asserção SAML. Um exemplo é o Perfil X.500/LDAP, que descreve como utilizar atributos X.500/LDAP dentro de asserções SAML atributos (OASIS, 2005).

2.3.1.2 Benefícios da utilização da especificação SAML

Segundo OASIS (2005) os benefícios de utilização da especificação SAML para troca de informações de identidades digitais dos usuários e das organizações incluem os seguintes itens:

Neutralidade da plataforma: A segurança da especificação SAML é garantida independente da lógica da aplicação, que é um princípio importante da arquitetura orientada a serviços. Este benefício é garantido por abstrair da estrutura de segurança a arquitetura determinada;

Liberdade no acoplamento de diretórios: O SAML não requer que as informações do usuário sejam mantidas e sincronizadas entre os diretórios;

Melhora da experiência on-line dos usuários finais: SAML permite o SSO (single sign-on), permitindo aos usuários se autenticar em um provedor de identidade e, em seguida, acessar provedores de serviços sem a necessidade de nova autenticação. Além disso, possibilita a ligação de múltiplas identidades em uma federação de identidade. Desta forma o SAML promove a privacidade e melhora a experiência dos usuários na personalização em cada serviço;

Redução dos custos administrativos para os provedores de serviço: a reutilização de um único ato de autenticação possibilitado pelo uso do SAML pode reduzir os custos de manutenção da conta, desta forma transferindo os custos para o fornecedor das identidades; e

Transferência de risco: O SAML pode impulsionar a responsabilidade pela gestão das identidades para o provedor de identidade, que geralmente possui o modelo de negócio mais compatível do que um provedor de serviços.