10.12.2. Uso do LDAP para Autenticação das Interfaces de Gerenciamento
- Criação de uma conexão outbound para o servidor LDAP.
- Crie um realm de segurança habilitado LDAP.
- Referencie o novo security domain na Interface de Gerenciamento.
A conexão outbound LDAP permite os seguintes atributos:
Função | Solicitado | Descrição |
---|---|---|
url | sim |
O endereço URL do servidor do diretório.
|
search-dn | sim |
O distinguished name (DN - nome distinguido) do usuário autorizado a executar as buscas.
|
search-credentials | sim |
A senha do usuário autorizado a executar as buscas.
|
initial-context-factory | não |
A criação do contexto inicial para uso quando estabelecendo a conexão. O default é
com.sun.jndi.ldap.LdapCtxFactory .
|
security-realm | não |
O security realm de referência para obter um
SSLContext configurado para uso quando estabelecendo a conexão.
|
Exemplo 10.13. Adição de uma Conexão Outbound LDAP
- DN de busca:
cn=search,dc=acme,dc=com
- Credencial de busca:
myPass
- URL:
ldap://127.0.0.1:389
/host=master/core-service=management/security-realm=ldap_security_realm:add
/host=master/core-service=management/security-realm=ldap_security_realm:add
/host=master/core-service=management/ldap-connection=ldap_connection/:add(search-credential=myPass,url=ldap://127.0.0.1:389,search-dn="cn=search,dc=acme,dc=com")
/host=master/core-service=management/ldap-connection=ldap_connection/:add(search-credential=myPass,url=ldap://127.0.0.1:389,search-dn="cn=search,dc=acme,dc=com")
As Interfaces de Gerenciamento podem autenticar em relação ao servidor LDAP ao invés do arquivo de propriedade baseado nos realms de segurança configurados por default. O autenticador LDAP opera primeiramente estabelecendo uma conexão ao servidor do diretório remoto. Ele então executa uma busca usando o nome do usuário que o usuário passou ao sistema de autenticação, com o objetivo de encontrar o distinguished name (DN - nome distinguido) inteiramente qualificado. Uma nova conexão é estabelecida usando o DN do usuário como credencial e senha suprida pelo usuário. Caso esta autenticação ao servidor LDAP for bem sucedida, o DN é confirmado como válido.
- conexão
- O nome da conexão definido no
<outbound-connections>
para uso da conexão ao diretório LDAP. - base-dn
- O nome distinguido do contexto para iniciar a busca pelo usuário.
- recursivo
- Se é que a busca deve ser recursiva através da árvore do diretório LDAP ou apenas buscar o contexto especificado. O default é
false
. - user-dn
- O atributo do usuário que mantém o nome distinguido. Isto é subsequentemente usado para testar a autenticação assim que usuário puder completar. O default é
dn
. - Um dos
username-filter
ouadvanced-filter
como um elemento filho - O
username-filter
leva um atributo único chamadoattribute
, cujo valor é o nome do atributo LDAP que mantém o nome do usuário, tal como ouserName
ousambaAccountName
.Oadvanced-filter
leva um único atributo chamadofilter
. Este atributo contém uma fila de filtro na sintaxe do LDAP default. Recomendamos cuidado ao sair de qualquer caractere&
alterando-os pelo&
. Segue abaixo uma amostra de um filtro:(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Após sair do caractere ampersand, o filtro aparece como:(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Exemplo 10.14. Representação XML de um Realm de Segurança habilitado LDAP
- connection -
ldap_connection
- base-dn -
cn=users,dc=acme,dc=com
. - username-filter -
attribute="sambaAccountName"
Atenção
Exemplo 10.15. Adição de um Realm de Segurança LDAP
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap:add(base-dn="DC=mycompany,DC=org", recursive=true, username-attribute="MyAccountName", connection="ldap_connection")
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap:add(base-dn="DC=mycompany,DC=org", recursive=true, username-attribute="MyAccountName", connection="ldap_connection")
Após você criar um realm de segurança, você precisa referenciá-lo na configuração de sua interface de gerenciamento. A interface de gerenciamento usará o realm de segurança para a autenticação de resumo HTTP.
Exemplo 10.16. Aplicação do Realm de Segurança à Interface HTTP
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap-security-realm)
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap-security-realm)
Com o objetivo de configurar um managed domain para autenticação ao Microsoft Active Directory, siga este procedimento, que cria um security domain e mapeia as funções aos grupos Active Directory usando a autenticação JAAS. Este procedimento Microsoft Active Directory permite o binding com uma senha vazia. Este procedimento previne que uma senha vazia seja usada com uma plataforma do aplicativo.
master
.
Adicione um
<security-realm>
nomeadoldap_security_realm
e configure-o para uso do JAAS.Os seguintes comandos do CLI de Gerenciamento adicionam um novo realm de segurança e determinam o mecanismo de autenticação. Altere o nome do host conforme solicitado./host=master/core-service=management/security-realm=ldap_security_realm/:add
/host=master/core-service=management/security-realm=ldap_security_realm/:add
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /host=master/core-service=management/security-realm=ldap_security_realm/authentication=jaas/:add(name=managementLDAPDomain)
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=jaas/:add(name=managementLDAPDomain)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configuração do
<http-interface>
para uso do novo realm de segurança.O seguinte comando do CLI de Gerenciamento configura a interface HTTP./host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap_security_realm)
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap_security_realm)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configuração do JBoss Enterprise Application Platform para adição da configuração JAAS personalizada aos seus parâmetros de inicialização.
Edite o arquivoEAP_HOME/bin/domain.conf
. Busque pela variávalHOST_CONTROLLER_JAVA_OPTS
. Isto é aonde você adiciona as diretivas para o JVM que são necessárias antes do JBoss Enterprise Application Platform iniciar. Segue abaixo uma amostra dos conteúdos default deste parâmetro:HOST_CONTROLLER_JAVA_OPTS="$JAVA_OPTS"
HOST_CONTROLLER_JAVA_OPTS="$JAVA_OPTS"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Adicione a seguinte diretiva à linha:-Djava.security.auth.login.config=/opt/jboss-eap-6.0/domain/configuration/jaas.conf"
A linha editada é parecida ao seguinte:-Djava.security.auth.login.config=/opt/jboss-eap-6.0/domain/configuration/jaas.conf"
-Djava.security.auth.login.config=/opt/jboss-eap-6.0/domain/configuration/jaas.conf"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Adicione o módulo de login às opções do módulo.
No mesmo arquivo, encontre a linha contendo o seguinte:JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Altere a linha para leitura conforme abaixo. Certifique-se de não inserir quaisquer espaços extra.JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.sun.security.auth.login"
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.sun.security.auth.login"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Salve e encerre o arquivodomain.conf
.Crie a configuração JAAS que será adicionada ao classpath.
Crie um novo arquivo na seguinte localização:EAP_HOME/domain/configuration/jaas.conf
O arquivo deve conter os seguintes conteúdos. Edite os parâmetros para coincidirem com o seu ambiente.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Reinicie o JBoss Enterprise Application Platform e sua interface HTTP usará o seu servidor LDAP para autenticação.