O Serviço de Autenticação e Autorização do Java (Java Authentication and Authorization Service), ou JAAS, é uma API que permite às aplicações escritas na plataforma J2EE usar serviços de controle de autenticação e autorização sem necessidade de estarem fortemente dependentes.
A autenticação e a autorização Java Service (JAAS) foi introduzida como um pacote opcional para o JavaTM 2 SDK, Standard Edition (JDK), v 1.3. JAAS foi agora integrado ao JDK, v 1.4.
JAAS pode ser usado para duas finalidades:
- Para autenticação de usuários de forma segura e determinar quem está atualmente em execução de código Java, independentemente do código que está sendo executado como um aplicativo, applet ou servlet.
- Para a autorização dos usuários, garantindo que eles tenham os direitos de controle de acesso (permissões) necessários para fazer as ações.
A autenticação JAAS é feita de forma conectada, além de ser extensível. Isso permite que aplicações Java permaneçam independentes de tecnologias de autenticação básica.
Exemplo de Autenticação utilizando três arquivos:
- SampleAcn.java contém o exemplo da classe de aplicação (SampleAcn) e uma outra classe usada para manipular a entrada do usuário (MyCallbackHandler).
- SampleLoginModule.java é a classe especificada pelo tutorial do arquivo de configuração de login como a classe implementar a autenticação desejada subjacente. SampleLoginModule do usuário de autenticação consiste em simplesmente verificar se o nome e a senha especificados pelo usuário foram inseridos
- SamplePrincipal.java é uma classe de exemplo que implementa a interface java.security.Principal. Ele é usado por SampleLoginModule.
No site da Oracle, na seção Java SE Security, podemos encontrar esse exemplo na íntegra. Você também pode ver outros exemplos de implementação aqui.
O que é a autorização JAAS?
Estende a arquitetura de segurança existentes em Java que utiliza uma política de segurança para especificar quais direitos de acesso são concedidos a execução de código. Essa arquitetura foi introduzida na plataforma Java 2. As permissões são concedidas com base nas características do código: se o código está vindo e se ele é assinado digitalmente. Exemplo de código-fonte:
Como é realizado a autorização no JAAS?
O usuário deve ser autenticado, conforme descrito no tutorial de autenticação JAAS.
As principais entradas com base devem ser configuradas de acordo com a política de segurança. O sujeito, que é o resultado da autenticação, deve ser associado com o contexto atual de controle de acesso. Veja aquia implementação de um exemplo.
Para usar os módulos PAM com o JAAS, é necessário usar uma bridge, como por exemplo nos seguintes nos links:
Podemos concluir que para minimizar a probabilidade de falhas de segurança causadas por erro de programação, os desenvolvedores Java devem aderir às diretrizes recomendadas de codificação e às orientações para segurança do software.
A escolha da linguagem e dos impactos ou qualquer erro de execução pode ter desdobramentos graves de segurança, e podem aparecer em qualquer camada da pilha de software.
Fora de tópico Mostrar Código Esconder Código Mostrar EmoticonEsconder Emoticon