Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 16 - Segurança com JAAS
Artigo publicado pela Java Magazine 16.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

Aplicações que restringem o acesso de usuários ou processos a apenas alguns de seus recursos são muito comuns; implementar esse tipo de controle de segurança, no entanto, não é nada fácil – e fazê-lo de forma que a aplicação seja independente da tecnologia de segurança utilizada é ainda mais difícil. É exatamente isso que o JAAS (Java Authentication and Authorization Service) se propõe a resolver.
Conceitos
Antes de descrever a API de autenticação e autorização de Java, precisamos apresentar alguns conceitos:
• Autenticação é o processo de identificação de um “usuário” (pessoa, processo etc.) em um sistema. Isto é feito comparando-se as credenciais passadas pelo usuário com as esperadas pelo sistema. O método mais comum de autenticação é o uso de senhas, mas pode-se utilizar várias outras técnicas, como biometria.
• Autorização é o processo de verificação dos direitos que um usuário possui para acessar/manipular um determinado recurso do sistema. Um exemplo seria restringir o acesso de um cliente de um banco a apenas sua própria conta.
Iniciando a autenticação
Ao iniciar o processo de autenticação com JAAS, a aplicação deve criar um objeto do tipo javax.security.auth.login.LoginContext, passando para ele um nome de configuração de módulos de login (que são implementações da interface javax.security.auth.spi.LoginModule). Essa configuração é definida em um arquivo-texto simples, externo à aplicação (veja detalhes adiante).
O LoginContext é responsável por armazenar as informações do usuário; o LoginModule, por obter essas informações.
Veja a Listagem 1. Note que, antes de instanciar o LoginContext, foi criado um javax.security.auth.Subject. Um Subject
armazena as informações relacionadas a uma entidade colhidas no processo de autenticação, por exemplo: o nome, o login e a senha de um usuário. Para isso, o Subject usa um ou mais objetos java.security.Principal, representando
identidades e, opcionalmente, credenciais públicas ou privadas.
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Mauricio De Diana
Mauricio De Diana (mauricio.dediana@locaweb.com.br) é Bacharel em Engenharia Elétrica (Poli-USP) e é Engenheiro de Sistemas da Locaweb, onde atualmente desenvolve projetos de voz sobre IP.



