3. Alguns exemplos de extensões SOAP

Para criar um protocolo SOAP independente da heterogeneidade de sistemas, foi necessário fazer algumas concessões ao nível da complexidade do protocolo, o que veio trazer limitações, nomeadamente no que diz respeito a especificações de segurança, suporte transacional, reencaminhamento, qualidade de serviço, especialmente quando estamos a falar de aplicações que correm sobre a Internet.

Para fazer face a estas necessidades surgem módulos/extensões que se podem associar ao cabeçalho das mensagens SOAP.

Apresentam-se de seguida, e de forma bastante sucinta, algumas extensões em fases diferentes de desenvolvimento.

3.1. Security Assertion Markup Language (SAML)

Security Assertion Markup Language é um formato XML aberto para troca de dados de autenticação e autorização entre as partes, em particular, entre um servidor de identidade e um fornecedor de serviços. O SAML é um produto desenvolvido pelo Comité de Serviços OASIS. A primeira versão data de 2001, a sua atualização mais recente é de 2005.

O problema mais importante que o SAML pretende resolver endereços é o denominado single sign-on (SSO): um utilizador autentica-se na entrada de sum site e a partir daí esse site não lhe pede mais que se autentique. As soluções SSO são abundantes ao nível de intranets (o uso de cookies, por exemplo), mas estender essas soluções além da intranet tem sido problemático e tem levado à proliferação de tecnologias proprietárias e não-interoperáveis.

A especificação SAML define três intervenientes: o cliente (normalmente um utilizador), o servidor de identidade (aka IdP - Identity Provider), e o prestador do serviço (aka SP - Service Provider). No caso de uso abordada por SAML, os pedidos principais de um serviço do provedor de serviço. Os pedidos de serviços do provedor e obtém uma afirmação de identidade a partir do provedor de identidade. Com base nesta afirmação, o prestador de serviços possa tomar uma decisão de controle de acesso - em outras palavras, ele pode decidir se quer realizar algum serviço para o principal conectado. Antes de entregar a afirmação de identidade para o SP, o IdP pode solicitar algumas informações do diretor - como um nome de usuário e senha - para autenticar o principal. SAML especifica as afirmações entre as três partes: em particular, as mensagens que asseguram a identidade que são passadas do IdP para o SP. Em SAML, um provedor de identidade pode fornecer asserções SAML para muitos prestadores de serviços. Por outro lado, um SP pode confiar e confiar afirmações de muitos deslocados internos independentes. SAML não especifica a implementação do serviço de provedor de identidade, que pode utilizar um nome de usuário / senha, pode usar a autenticação multifatorial, que pode ter uma implementação opaco. Serviço de uma empresa de diretório, que permite aos usuários fazer login com um nome de usuário e senha, é um exemplo típico de um provedor de identidade. Qualquer um dos populares serviços de internet sociais comuns também oferecem serviços de identidade que, em teoria, poderiam ser usados ​​para apoiar os intercâmbios SAML.