Introdução ao PicketLink

Postado em

Sei que já dei uma “introdução” ao PicketLink, mas dessa vez vou fazer um post mais detalhando,  portanto vamos lá :

PicketLink é uma solução de IDM que está sendo construida para antender a plataform JBoss. Identity Management (IDM) descreve o gerenciamento de identidades individuais, sua autenticação, autorização e privilégios/permissões dentro de um contexto de segurança.

Exemplos de IDMs concorrentes do PicketLink:

http://www-01.ibm.com/software/tivoli/products/identity-mgr/
http://www.oracle.com/technetwork/middleware/id-mgmt/overview/index.htm

Uma das perguntas mais frequentes e que até eu mesmo me fazia antes de conheçer o PicketLink mais a fundo é: Qual é a referência entre o PicketLink e o PicketBox?

Picketbox (implementa o JAAS) é API que sustenta quaquer implementação de segurança dentro do JBoss Application Server (JBoss AS). O PicketLink está em cima dessa camada e visa fornecer diversas soluções para gerenciamento de identidade.

O PicketLink agrupa vários projetos por exemplo:

  • IDM: Provide an object model for managing Identities (Users/Groups/Roles) and associated behavior using different identity store backends like LDAP and RDBMS.
  • Federated Identity:  Support SAMLv2, WS-Trust and OpenID.
  • AuthZ: Developer friendly authorization framework
  • XACML:  Oasis XACMLv2 implementation.
  • Negotiation: Provide SPNego/Kerberos based Desktop SSO.

Mais informações podem ser encontradas na página do projeto: http://www.jboss.org/picketlink .

PicketLink Federation (PicketLink Federated Identity)

O projeto PicketLink Federation fornece suporte para Federated Identity e Single Sign On.

É oferecido suporte para as seguintes especificações:

Oasis SAML v2.0
Oasis SAML v1.1
Oasis WS-Trust v1.3
OpenID

Planeja-se suporte para:

OAuth

Para utilizarmos o PicketLink Federation devemos entender alguns conceitos de SAML v2.0.

O que é o SAML?

È um padrão para troca de informações de autorização de usuário pela web de uma forma interoperável(xml). O objetivo é que o usuário se autentique em algum lugar e receba um token (identidade), e com esse token ele consiga acessar qualquer recurso que esteja dentro do contexto de segurança onde o token foi emitido.

Nesse contexto podemos destacar as duas entidades: Identity Provider(IDP) e Service Provider(SP).

A especificação SAML possui uma série de profiles, que funcionam como se fossem casos de uso. Por exemplo um dos profiles que vamos abordar nesse post será o Web Browser SSO Profile, que define um caso de uso para SSO utilizando o browser. Para mais informações sobre os profiles do SAML veja o link abaixo:

http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf

O próximo conceito a ser entendido é o SAML protocol binding, que são mapeamentos (canais) padrões para trocas de mensagens SAML entre o IDP e o SP.
Por exemplo no profile(caso de uso) Web Browser SSO é utilizado o HTTP Binding, então toda a troca de informações entre IDP e SP será realizada utilizando HTTP Binding. Existem também outros bindings como SAML SOAP Binding ou Reverse SOAP (PAOS) Binding. Para mais informações sobre o SAML protocol binding veja o link abaixo:

http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf

Finalmente chegamos ás assertions que são as informações de autenticação e alguns atributos do contexto de segurança.

http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
http://saml.xml.org/assertions

A parte sobre Authentication Context e Metadata ainda não está totalmente implementada.

 

Ps: Eu vou continuar editando esse post e colocando mais informações (ultimo update  30/06/12)

2 comentários sobre “Introdução ao PicketLink

    Luiz Vieira disse:
    20 de agosto de 2012 às 18:51

    opa, uma boa introdução mesmo,
    você já usou o picketlink em algum projeto?

      Mauricio Magnani respondido:
      20 de agosto de 2012 às 20:00

      Olá Luiz Obrigado. Eu particularmente só fiz alguns testes utilizando o Picketlink, mas muitos orgãos do governo estão utilizando… se não me engano existem até alguns projetos nessas eleições envolvendo PicketLink e JBoss..

      Abraços

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s