Capítulo 17. Segurança baseada na Função nos Aplicativos

17.1. Arquitetura de Extensão de Segurança

A arquitetura das extensões de segurança do JBoss EAP 6 consiste de três partes. Essas três partes conectam seu aplicativo à sua infraestrutura de segurança subjacente, se é que é LDAP, Kerberos ou outro sistema externo.
JAAS

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.

A implementação principal no JAAS é 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.
Refira-se à Seção 17.2, “Java Authentication and Authorization Service (JAAS)” para maiores informações sobre o JAAS.
O 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.

A função primária do 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.
A segunda função fundamental do 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>.
Quando você especifica o nome JNDI, é necessário que um object-binding esteja existente. Com o objetivo de simplificar a configuração entre o nome JNDI e o gerenciador de segurança, o 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

Você não precisa incluir o prefixo java:/jaas em seu descritor da implantação. No entanto, você poderá incluí-lo para compatibilidade reversa, porém isto é ignorado.
O JaasSecurityDomain MBean

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.

Maiores Informações

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.