O LDAP realiza operações em um servidor LDAP.

Dê uma olhada nos parâmetros de configuração do componente:

  • Account: conta a ser utilizada pelo componente.

  • Operation: comando a ser acionado (Add, Delete ou Modify).

  • Search Operation: operação de busca (Object, One level ou Sub trees).

  • Host Name: nome ou IP do servidor LDAP.

  • Port: porta do LDAP.

  • Authentication DN: Distinguished Name (DN) utilizado para conectar o servidor LDAP.

  • Filter: expressões de filtros.

  • SSL: protocolo de segurança.

  • Fail On Error: se a opção estiver ativada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade sucesso.

IMPORTANTE: o parâmetro Authentication DN deve ser configurado com o path completo até o usuário desejado. Com isso, se o Distinguished Name for igual a "CN=UserExample,OU=FOLDER1,DC=abc,DC=com,DC=br", o parâmetro Authentication DN ficará configurado com "OU=FOLDER1,DC=abc,DC=com,DC=br". A configuração "CN=UserExample" deve ser utilizada no username do account configurado no componente, ou seja, username recebe o valor "UserExample".

LDAP em Ação

Você pode:

- utilizar um valor fixo:

(dnOperation = "ou=system,cn=users")

- conseguir algum JSON da mensagem, que vai buscar o objeto 'data' da mensagem:

(dnOperation = "{{ message.$.dn }}

- combinar ambos os exemplos:

(dnOperation = " ou={{ message.$.dn }}")

  • searchOperation: integra entre 0 e 2 utilizado para buscar, sendo:

0 -> Base Object

1 -> One Level

2 -> Full Subtree

  • modifyOperation: integra entre 0 e 3 utilizado para alterar, sendo:

0 -> Adicionar atributo

1 -> Excluir atributo

2 -> Substituir atributo

3 -> Incrementar atributo

  • filter: filtra configurações para a mesma operação de busca.

Exemplo: filtro "(objectClass=)"

Você pode:

- utilizar um valor fixo:

filtro = ("objectClass=)"

- conseguir algum JSON da mensagem, que vai buscar o objeto 'data' da mensagem:

filtro = "{{ message.$.filter }}

- combinar ambos os exemplos:

filtro = "objectClass={{ message.$.filter }}"

  • entries: o objeto utilizado para adicionar ou alterar as entradas no servidor LDAP.

Você pode:

- utilizar um valor fixo:

filtro = ("objectClass":["top","person"],"cn":"test_ad","sn":"test_sn"}

- conseguir algum JSON da mensagem, que vai buscar o objeto 'data' da mensagem:

entries = "{{ message.$.entries }}

- combinar ambos os exemplos:

entries = {"objectClass":["top","person"],"cn":"{{ message.$.entries }}","sn":"test_sn"}"

  • operation: a operação que você deseja executar no servidor LDAP: BUSCAR / ADICIONAR / ALTERAR / EXCLUIR

  • useSsl: se verdadeiro, será conectado utilizando SSL (conexão segura); do contrário, não será conectado

  • failOnError: se verdadeiro, um erro vai suspender a execução do pipeline

O LDAP precisa de autenticação. Para isso, você deve criar uma conta com privilégios de administrador (tipo BASIC) e utilizá-la no componente.

IMPORTANTE: o username a ser utilizado no account deve ser o campo "name" configurado no servidor LDAP.

Para converter Double Braces, nós utilizamos especificações de JSON Path. Clique aqui para saber mais.

Fluxo de Mensagens

Operação SEARCH

Entrada

{
"type": "connector",
"name": "ldap-connector",
"accountLabel": "ldap",
"stepName": "ldap",
"params": {
"operation": "SEARCH",
"host": "LDAP_IP",
"port": 389,
"dnAuthentication": "CN=Users,DC=digibee,DC=io",
"dnOperation": "DC=digibee,DC=io",
"filter": "(objectClass=)",
"searchOperation": 0,
"useSsl": false,
"failOnError": false
}
}

Saída

{
"result": [
{
"pwdhistorylength": "24"
},
{
"msds-alluserstrustquota": "1000"
},
{
"otherwellknownobjects": [
"B:32:683A24E2E8164BD3AF86AC3C2CF3F981:CN=Keys,DC=digibee,DC=io",
"B:32:1EB93889E40C45DF9F0C64D23BBB6237:CN=Managed Service Accounts,DC=digibee,DC=io"
]
}
]
}

Operação ADD

Entrada

{
"type": "connector",
"name": "ldap-connector",
"accountLabel": "ldap",
"stepName": "ldap",
"params": {
"operation": "ADD",
"host": "LDAP_IP",
"port": 389,
"dnAuthentication": "CN=Users,DC=digibee,DC=io",
"entries": "{{ message.$.entries }}",
"dnOperation": "DC=digibee,DC=io",
"useSsl": false,
"failOnError": false
}
}

Payload

{"entries": {
"objectClass": ["top", "person"],
"cn": "test_ad",
"sn": "test_sn"

}
}

Saída

{
"message": "Entry added successfully",
"success": true
}

Operação MODIFY

Entrada

{
"type": "connector",
"name": "ldap-connector",
"accountLabel": "ldap",
"stepName": "ldap",
"params": {
"operation": "MODIFY",
"host": "LDAP_IP",
"port": 389,
"dnAuthentication": "CN=Users,DC=digibee,DC=io",
"entries": "{{ message.$.entries }}",
"dnOperation": "DC=digibee,DC=io",
"modifyOperation": 0,
"useSsl": false,
"failOnError": false
}
}

Payload

{"entries": {
"objectClass": ["top", "person"],
"cn": "test_ad",
"sn": "test_sn"

}
}

Saída

{
"message": "Entry modified successfully",
"success": true
}

Operação DELETE

Entrada

{
"type": "connector",
"name": "ldap-connector",
"accountLabel": "ldap",
"stepName": "ldap",
"params": {
"operation": "DELETE",
"host": "LDAP_IP",
"port": 389,
"dnAuthentication": "CN=Users,DC=digibee,DC=io",
"dnOperation": "DC=digibee,DC=io",
"useSsl": false,
"failOnError": false
}
}

Saída

{
"message": "Entry modified successfully",
"success": true
}

O LDAP suporta Double Braces estáticos nos seguintes parâmetros previamente especificados:

  • operation

  • host

  • dnAuthentication

  • port

  • modifyOperation

  • searchOperation

  • useSsl

Para ler o nosso artigo sobre Double Braces, clique aqui.

Encontrou sua resposta?