Artigo Java Magazine 16 - Segurança com JAAS
Aplicações que restringem o acesso de usuários ou processos a apenas alguns de seus recursos são muito comuns. Veja nesse artigo como implementar esse tipo de controle de segurança no JAAS.
Clique aqui para ler esse artigo em PDF.
Segurança com JAAS
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.
Listagem 1. Exemplo de autenticação: JMMain.java package jm.jaas; import java.security.*; import javax.security.auth.*; import javax.security.auth.callback.*; import javax.security.auth.login.*; // Usando o JAAS para fazer o login e o logout de um usuário public class JMMain { public static void main(String[] args) { ?// Informaçoes e objetos necessários para o login String nomeConfiguracao = “JavaMagazine”; Subject subject = new Subject(); CallbackHandler callbackHandler = new JMCallbackHandler();"
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo