16.8. Configuração do Kerberos ou Microsoft Active Directory Desktop SSO para os Aplicativos da Web
Para autenticar os seus aplicativos EJB ou da web usando sua infraestrutura da autorização e autenticação baseado no Kerberos existente de sua organização, tal como o Microsoft Active Directory, você pode usar as capacidades do JBoss Negotiation construídas no JBoss EAP 6. Caso você configure o seu aplicativo da web de maneira apropriada, um login da rede ou desktop é suficiente para autenticar o seu aplicativo da web, de forma que nenhuma solicitação de login adicional é requerida.
Existem poucas diferenças notáveis entre o JBoss EAP 6 e as versões anteriores:
- Os security domains são configurados centralmente, para cada perfil de um managed domain ou de cada servidor autônomo. Eles não fazem parte da implantação. O security domain que uma implantação deve usar está nomeado no arquivo
jboss-web.xml
oujboss-ejb3.xml
. - As propriedades de segurança são configuradas como parte do security domain, como parte de sua configuração central. Elas não fazem parte da implantação.
- Você não precisa mais substituir os autenticadores como parte de sua implantação. No entanto, você pode adicionar uma válvula ao seu descritor
jboss-web.xml
para atingir o mesmo efeito. A válvula continua requerendo os elementos<security-constraint>
e<login-config>
a serem definidos noweb.xml
. Eles são usados para decidir quais recursos são assegurados. No entanto, o método de autorização escolhido será substituído pela válvula do NegotiationAuthenticator nojboss-web.xml
. - Os atributos
CODE
nos security domains agora usam o nome simples ao invés de um nome de classe inteiramente qualificado. As seguintes tabelas apresentam os mapeamentos entre as classes usadas para o JBoss Negotiation e suas classes.
Nome Simples | Nome da Classe | Propósito |
---|---|---|
Kerberos | com.sun.security.auth.module.Krb5LoginModule | Módulo de login Kerberos |
SPNEGO | org.jboss.security.negotiation.spnego.SPNEGOLoginModule | Os mecanismos que habilitam seus aplicativos da Web para autenticar o seu servidor de autenticação Kerberos. |
AdvancedLdap | org.jboss.security.negotiation.AdvancedLdapLoginModule | Usado para os servidores LDAP além do Microsoft Active Directory. |
AdvancedAdLdap | org.jboss.security.negotiation.AdvancedADLoginModule | Usado com os servidores Microsoft Active Directory LDAP. |
O JBoss Negotiation Toolkit
é uma ferramenta de depuração que está disponível para download a partir do https://community.jboss.org/servlet/JiveServlet/download/16876-2-34629/jboss-negotiation-toolkit.war. Isto é fornecido como uma ferramenta extra para ajudá-lo a depurar e testar os mecanismos de autenticação antes da introdução de seu aplicativo à produção. Isto é uma ferramenta não suportada, porém é considerada de muita ajuda, uma vez que o SPNEGO pode ser difícil de ser configurado para os aplicativos da web.
Procedimento 16.1. Configuração da Autenticação SSO para os seus Aplicativos EJB
Configure um security domain para representar a identidade do servidor. Determine as propriedades caso seja necessário.
O primeiro security domain autentica o próprio contêiner ao serviço do diretório. Ele precisa usar um módulo de login que aceita algum tipo de mecanismo de login estático, uma vez que o usuário real não está envolvido. Esta amostra usa um principal estático e referencia um arquivo keytab que contém o credencial.O código XML é gerado aqui para clareza, porém você deve usar o Console de Gerenciamento ou CLI de Gerenciamento para configuração de seus security domains.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure o segundo security domain para assegurar o aplicativo da web ou aplicativos. Determine as propriedades do sistema caso seja necessário.
O segundo security domain é usado para autenticar o usuário individual ao Kerberos ou servidor de autenticação SPNEGO. Você precisa de pelo menos um módulo de login para autenticação do usuário e outro para buscar as funções a serem aplicadas ao usuário. O seguinte código XML apresenta um modelo de autorização para mapeamento das funções no próprio servidor de autenticação.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Especifique o security-constraint e login-config no
web.xml
O descritorweb.xml
contém informação sobre as restrições de segurança e configuração de login. Segue abaixo algumas amostras de valores para cada uma.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Especifique o security domain e outras configurações no descritor
jboss-web.xml
.Especifique o nome do security domain ao lado do cliente (a segunda amostra) no descritorjboss-web.xml
de sua implantação para direcionar o seu aplicativo para uso de seu security domain.Você não pode mais substituir os autenticadores diretamente. Ao invés disto, você pode adicionar o NegotiationAuthenticator como um valor ao seu descritorjboss-web.xml
, caso seja necessário. O<jacc-star-role-allow>
permite você usar o caractere (*) de asterisco para coincidir com os nomes de função múltiplos e é opcional.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Adicione uma dependência ao seu
MANIFEST.MF
do aplicativo para localizar as classes de Negociação.O aplicativo da web precisa de uma dependência noorg.jboss.security.negotiation
da classe a ser adicionada ao manifesto doMETA-INF/MANIFEST.MF
da implantação, com o objetivo de localizar as classes do JBoss Negotiation. Segue abaixo uma entrada propriamente formatada.Manifest-Version: 1.0 Build-Jdk: 1.6.0_24 Dependencies: org.jboss.security.negotiation
Manifest-Version: 1.0 Build-Jdk: 1.6.0_24 Dependencies: org.jboss.security.negotiation
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
O seu aplicativo da web aceita e autentica os credenciais em relação ao Kerberos, Microsoft Directory ou outro serviço do diretório compatível com o SPNEGO. Caso o usuário executar o aplicativo a partir de um sistema que já está conectado ao serviço do diretório, e onde as funções solicitadas já são aplicadas ao usuário, o aplicativo da web não solicita a autenticação e as capacidade SSO são atingidas.