3.9.2. Uso do LDAP para Autenticação das Interfaces de Gerenciamento

Para uso do servidor do diretório LDAP como fonte de autenticação para o Management Console, Management CLI ou Management API, você precisa executar os seguinte procedimentos:
  1. Criação de uma conexão outbound para o servidor LDAP.
  2. Crie um security realm habilitado LDAP.
  3. Referencie o novo security domain na Interface de Gerenciamento.
Criação da Conexão Outbound a um Servidor LDAP

A conexão outbound LDAP permite os seguintes atributos:

Tabela 3.1. Atributos de uma Conexão Outbound LDAP

Função Solicitado Descrição
nome sim
O nome para identificar esta conexão. Este nome é usado na definição do security realm.
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.

Exemplo 3.13. Adição de uma Conexão Outbound LDAP

Esta amostra adiciona uma conexão outbound com o seguinte conjunto de propriedades:
  • 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/ldap-connection=ldap_connection/:add(search-credential=myPass,url=ldap://127.0.0.1:389,search-dn="cn=search,dc=acme,dc=com")

Exemplo 3.14. Representação XML de uma Conexão Outbound LDAP

<outbound-connections>
   <ldap name="ldap_connection" url="ldap://127.0.0.1:389" search-dn="cn=search,dc=acme,dc=com" search-credential="myPass" />
</outboundconnections>	
	

Criação de um Security Realm Habilitado LDAP

As Interfaces de Gerenciamento podem autenticar em relação ao servidor LDAP ao invés do arquivo de propriedade baseado nos security realms 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.

O security realm LDAP precisa dos seguintes atributos de configuração e elementos com o objetivo de executar suas funções.
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 ou advanced-filter como um elemento filho
O username-filter leva um atributo único chamado attribute, cujo valor é o nome do atributo LDAP que mantém o nome do usuário, tal como o userName ou sambaAccountName.
O advanced-filter leva um único atributo chamado filter. Este atributo contém uma fila de filtro na sintaxe do LDAP default. Recomendamos cuidado ao sair de qualquer caractere & alterando-os pelo &amp;. Segue abaixo uma amostra de um filtro:
(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
Após sair do caractere ampersand, o filtro aparece como:
(&amp;(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))

Exemplo 3.15. Representação XML de um Security Realm habilitado LDAP

Essa amostra usa os seguintes parâmetros:
  • connection - ldap_connection
  • base-dn - cn=users,dc=acme,dc=com.
  • username-filter - attribute="sambaAccountName"
<security-realm name="TestRealm">
   <authentication>
      <ldap connection="ldap_connection" base-dn="cn=users,dc=acme,dc=com">
         <username-filter attribute="sambaAccountName" />
      </ldap>
  </authentication>
</security-realm>	


Atenção

É importante certificar-se de que você não permita as senhas LDAP vazias (a não ser que você as deseje especificamente no seu ambiente, uma vez que elas implicam em sérios critérios de segurança.
O EAP 6.1 inclui um caminho para o CVE-2012-5629, que determina a opção allowEmptyPasswords para os módulos de login LDAP para falso, caso esta opção já não esteja configurada. Para as versões antigas, esta opção deve ser configurada manualmente.

Exemplo 3.16. Adição de um LDAP Security Realm

O comando adiciona o security realm e determina seus atributos para o servidor autônomo.
/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")
Aplicação do Novo Security Realm à Interface de Gerenciamento

Após você criar um security realm, você precisa referenciá-lo na configuração de sua interface de gerenciamento. A interface de gerenciamento usará o security realm para a autenticação de resumo HTTP.

Exemplo 3.17. Aplicação do Security Realm à Interface HTTP

Após esta configuração estar pronta e você restaurar o host controller, o Management Console baseado na web usará o LDAP para autenticação de seus usuários.
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=TestRealm)