A tecnologia Java inclui um amplo conjunto de APIs, ferramentas e implementações de algoritmos de segurança, mecanismos de utilização e protocolos. As APIs de segurança abrangem uma diversidade de áreas, incluindo a criptografia, infra-estrutura de chaves públicas, comunicação segura, autenticação e controle de acesso. Fornece ao desenvolvedor uma estrutura de segurança completa para a criação de aplicativos, e para o usuário ou administrador um conjunto de ferramentas para gerenciar com segurança as aplicações.
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 autorização Java Service (JAAS) foi introduzido como um pacote opcional para o JavaTM 2 SDK, Standard Edition (JDK), v 1.3. JAAS foi agora integrada no 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 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árias para fazer as ações.
A autenticação JAAS é feita de forma conectada e é extensível. Isso permite que aplicações Java permaneçam independente 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 desejado 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 integra clique aqui
Outros exemplos de implementação:
http://www.guj.com.br/article.show.logic?id=184
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. 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:
codebase concessão "file:. / SampleAcn.jar" (
javax.security.auth.AuthPermission permissão
"CreateLoginContext.Sample";
);
Como é realizado a autorização no JAAS?
• O usuário deve ser autenticado, conforme descrito no tutorial de autenticação JAAS.
• Principais entradas com base deve ser configurado na 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 a implementação de um exemplo clique aqui
Para usar os módulos PAM com o JAAS é necessário usar uma bridge, como por exemplo uma das seguintes:
http://sourceforge.net/projects/jaas-pam/
http://jpam.sourceforge.net/
Conclusão
Para minimizar a probabilidade de falhas de segurança causadas por erro de programação, os desenvolvedores Java devem aderir a diretrizes recomendadas de codificação e 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.
Referências:
ORACLE – Java SE Security. Disponível em http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html
Nenhum comentário:
Postar um comentário