3.9.2. Uso do LDAP para Autenticação das Interfaces de Gerenciamento
- Criação de uma conexão outbound para o servidor LDAP.
- Crie um security realm habilitado LDAP.
- Referencie o novo security domain na Interface de Gerenciamento.
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
- 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>
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.
- 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))
Após sair do caractere ampersand, o filtro aparece como:(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
Exemplo 3.15. Representação XML de um Security Realm habilitado LDAP
- 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
Exemplo 3.16. Adição de um LDAP Security Realm
/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 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
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=TestRealm)