Capítulo 17. Segurança baseada na Função nos Aplicativos
17.1. Arquitetura de Extensão de Segurança
A primeira parte da infraestrutura é o JAAS API. O JAAS é um framework plugável que fornece uma camada de abstração entre a sua infraestrutura de segurança e seu aplicativo.
org.jboss.security.plugins.JaasSecurityManager
, que implementa as interfaces AuthenticationManager
e RealmMapping
. O JaasSecurityManager
integra o EJB e camadas do contêiner da web, baseado no elemento <security-domain>
do descritor de implantação do componente correspondente.
JaasSecurityManagerService
MBean
O serviço JaasSecurityManagerService
MBean coordena os gerenciadores de segurança. Embora seu nome inicie com Jaas, os gerenciadores de segurança que este serviço gerencia não precisam usar o JAAS em suas implementações. O nome reflete o fato de que a implementação do gerenciador de segurança default é o JaasSecurityManager
.
JaasSecurityManagerService
é externalizar a implementação do gerenciador de segurança. Você pode alterar a implementação do gerenciador de segurança fornecendo uma implementação alternativa das interfaces AuthenticationManager
e RealmMapping
.
JaasSecurityManagerService
é fornecer uma implementação JNDI javax.naming.spi.ObjectFactory
para permitir um gerenciamento simples sem código do binding entre o nome JNDI e a implementação do gerenciador de segurança. Para habilitar a segurança, especifique o nome JNDI da implementação do gerenciador de segurança através do elemento descritor de implantação <security-domain>
.
JaasSecurityManagerService
efetua o bind no next naming system reference, nomeando-se como JNDI ObjectFactory
sob o nome java:/jaas
. Isto permite uma convenção de nomeação na forma de java:/jaas/XYZ
como valor para o elemento <security-domain>
e que a instância do gerenciador de segurança para o security domain XYZ
seja criada conforme o necessário. Tudo isto, pela criação de uma instância de classe especificada pelo atributo SecurityManagerClassName
, usando um construtor que leva o nome do security domain.
Nota
java:/jaas
em seu descritor da implantação. No entanto, você poderá incluí-lo para compatibilidade reversa, porém isto é ignorado.
O org.jboss.security.plugins.JaasSecurityDomain
é uma extensão do JaasSecurityManager
que adiciona a noção de um KeyStore
, KeyManagerFactory
e um TrustManagerFactory
para suporte do SSL e outros de uso de criptografia.
Por favor refira-se à Seção 17.3, “Java Authentication and Authorization Service (JAAS)” para maiores informações e exemplos práticos sobre a arquitetura de segurança.