> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/security/ldap.md).

# LDAP

O **LDAP** executa operações de busca, adição, modificação e exclusão em um servidor LDAP a partir do seu pipeline na Digibee.

## **Parâmetros**

Configure o conector usando os parâmetros abaixo. Os campos que suportam [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados na coluna **Suporta DB**.

{% tabs %}
{% tab title="General" %}

<table><thead><tr><th width="112">Parâmetro</th><th width="231">Descrição</th><th width="83">Tipo de dado</th><th width="81">Suporta DB</th><th width="100">Valor padrão</th><th width="125">Visível quando</th></tr></thead><tbody><tr><td><strong>Account</strong></td><td>Conta usada para autenticar o conector no servidor LDAP. Deve ser uma conta do tipo Basic, configurada em <a href="/spaces/cO0A6g1dOsu8BiHYqO67/pages/fS1QLzAg8rGSSJFwtrvy">Contas</a> na plataforma.</td><td>String</td><td>❌</td><td>N/A</td><td>—</td></tr><tr><td><strong>SSL</strong></td><td>Se habilitado, o conector criptografa a conexão usando SSL. Configure o certificado através do parâmetro <strong>Custom SSL Certificate</strong>.</td><td>Boolean</td><td>❌</td><td><code>false</code></td><td>—</td></tr><tr><td><strong>Custom SSL Certificate</strong></td><td>Conta personalizada usada para a conexão SSL.</td><td>String</td><td>❌</td><td>N/A</td><td><strong>SSL</strong> está habilitado</td></tr><tr><td><strong>Operation</strong></td><td>Operação LDAP que o conector executa: Search, Add, Delete ou Modify.</td><td>String</td><td>❌</td><td><code>Search</code></td><td>—</td></tr><tr><td><strong>Search Operation</strong></td><td>Escopo da busca: Object, One level ou Sub trees.</td><td>String</td><td>❌</td><td><code>Object</code></td><td><strong>Operation</strong> é <strong>Search</strong></td></tr><tr><td><strong>Modify Operation</strong></td><td>Tipo de alteração aplicada à entrada: Add Attribute, Remove Attribute, Replace Attribute ou Increment Attribute.</td><td>String</td><td>❌</td><td><code>Add Attribute</code></td><td><strong>Operation</strong> é <strong>Modify</strong></td></tr><tr><td><strong>Hostname</strong></td><td>Nome ou endereço IP do servidor LDAP.</td><td>String</td><td>✅</td><td><code>199.199.199.1</code></td><td>—</td></tr><tr><td><strong>Port</strong></td><td>Porta usada para conectar ao servidor LDAP.</td><td>Integer</td><td>✅</td><td><code>389</code></td><td>—</td></tr><tr><td><strong>Authentication DN</strong></td><td>Distinguished Name (DN) usado para conectar ao servidor LDAP. Se deixado em branco, o nome de usuário da conta é usado como o bind DN completo, sem alterações aplicadas. Se preenchido, o conector o combina com o nome de usuário da conta no formato <code>CN=&#x3C;username>,&#x3C;Authentication DN></code>.</td><td>String</td><td>✅</td><td><code>CN=Users,DC=digibee,DC=io</code></td><td>—</td></tr><tr><td><strong>Operation DN</strong></td><td>Distinguished Name (DN) ao qual a operação se aplica.</td><td>String</td><td>✅</td><td><code>{{message.$.dnOperation}}</code></td><td>—</td></tr><tr><td><strong>Filter</strong></td><td>Expressão de filtro usada para refinar os resultados da busca.</td><td>String</td><td>✅</td><td>N/A</td><td>—</td></tr><tr><td><strong>Entries</strong></td><td>Expressão JSON que representa os atributos da entrada a serem adicionados ou modificados.</td><td>String</td><td>✅</td><td>N/A</td><td><strong>Operation</strong> é <strong>Modify</strong> ou <strong>Add</strong></td></tr><tr><td><strong>Binary Entries</strong></td><td>Lista de entradas adicionadas através da interface do conector. Selecione <strong>+ Add</strong> para adicionar um novo item, e use os controles de reordenação e exclusão para gerenciar os itens.</td><td>List</td><td>❌</td><td>N/A</td><td><strong>Operation</strong> é <strong>Modify</strong> ou <strong>Add</strong></td></tr><tr><td><strong>Entry Name</strong></td><td>Nome da entrada, definido dentro de um item de Binary Entries.</td><td>String</td><td>❌</td><td>N/A</td><td>Dentro de um item <strong>Binary Entries</strong></td></tr><tr><td><strong>Fail On Error</strong></td><td>Se habilitado, a execução do pipeline com erro é interrompida, e a exceção inclui tanto a mensagem traduzida quanto o detalhe do erro original. Caso contrário, a execução do pipeline continua, mas o resultado mostra um valor <code>false</code> na propriedade <code>"success"</code>.</td><td>Boolean</td><td>❌</td><td><code>false</code></td><td>—</td></tr></tbody></table>

{% endtab %}

{% tab title="Documentation" %}

| Parâmetro         | Descrição                                                                                          | Tipo de dado | Suporta DB | Valor padrão |
| ----------------- | -------------------------------------------------------------------------------------------------- | ------------ | ---------- | ------------ |
| **Documentation** | Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes. | String       | ❌          | N/A          |
| {% endtab %}      |                                                                                                    |              |            |              |
| {% endtabs %}     |                                                                                                    |              |            |              |

## **Configurando o parâmetro Authentication DN**

O parâmetro **Authentication DN** determina como o conector constrói o bind DN usado para autenticar no servidor LDAP. O nome de usuário da conta, configurado no campo **Username** de uma conta [**Basic**](/documentation/developer-guide/pt-br/development-cycle/build-overview/accounts.md#basic) na plataforma, sempre faz parte desse bind DN. O fato de o Authentication DN estar preenchido ou em branco determina se o nome de usuário é combinado com o Authentication DN para formar o bind DN, ou usado sozinho como o bind DN completo, conforme detalhado abaixo.

### **Authentication DN preenchido**

O conector constrói o bind DN combinando `CN=`, o nome de usuário da conta, e o valor do Authentication DN:

```
CN=<nome de usuário da conta>,<Authentication DN>
```

Se você já tiver o DN completo do usuário, divida-o nestas duas partes:

* **Username** (registrado no campo [**Username**](/documentation/developer-guide/pt-br/development-cycle/build-overview/accounts.md#basic), em **Contas** na plataforma): Apenas o valor do CN, sem o prefixo `CN=`. Exemplo: `UserExample`.
* **Authentication DN** (o parâmetro do conector): Tudo o que vem após o segmento CN. Exemplo: `OU=FOLDER1,DC=abc,DC=com,DC=br`.

Com esses valores, o conector se conecta como `cn=UserExample,OU=FOLDER1,DC=abc,DC=com,DC=br`.

{% hint style="info" %}

#### Informação importante:

* Não inclua `CN=` em nenhum dos campos. O conector o adiciona automaticamente.
* O nome de usuário configurado na conta deve corresponder ao campo "name" configurado no servidor LDAP.
  {% endhint %}

### **Authentication DN em branco**

O conector usa o nome de usuário da conta exatamente como registrado, sem alterações aplicadas. Nesse caso, o campo **Username** em Contas deve conter o bind DN completo, incluindo seu atributo RDN, por exemplo:

```
UID=jsilva,OU=people,DC=abc,DC=com,DC=br
```

Use esse modo quando o RDN do usuário não for `CN`, por exemplo em diretórios que autenticam com `UID=`, `sAMAccountName`, ou um UPN como `user@domain`.

{% hint style="info" %}
Quando o Authentication DN está em branco, o conector valida a configuração no momento do deploy: o nome de usuário da conta não pode estar vazio, o DN deve ser interpretável (parseable), e a senha da conta não pode estar em branco. Erros de configuração são reportados imediatamente, em vez de aparecerem apenas na execução.
{% endhint %}

## **Construindo expressões para os parâmetros do LDAP**

Vários parâmetros do LDAP aceitam um valor fixo, uma expressão Double Braces, ou uma combinação de ambos. As expressões Double Braces usam sintaxe JSON Path; consulte a [especificação do JsonPath](https://github.com/json-path/JsonPath) para a referência completa da sintaxe.

### **Operation DN**

Você pode:

* Usar um valor fixo: `dnOperation = "ou=system,cn=users"`
* Referenciar um campo da mensagem: `dnOperation = "{{ message.$.dn }}"`
* Combinar ambos: `dnOperation = "ou={{ message.$.dn }}"`

### **Filter**

Você pode:

* Usar um valor fixo: `filter = "(objectClass=)"`
* Referenciar um campo da mensagem: `filter = "{{ message.$.filter }}"`
* Combinar ambos: `filter = "objectClass={{ message.$.filter }}"`

### **Entries**

O parâmetro Entries é uma expressão JSON usada para adicionar ou modificar entradas no servidor LDAP.

Você pode:

* Usar um valor fixo: `entries = {"objectClass": ["top", "person"], "cn": "test_ad", "sn": "test_sn"}`
* Referenciar um campo da mensagem: `entries = "{{ message.$.entries }}"`
* Combinar ambos: `entries = {"objectClass": ["top", "person"], "cn": "{{ message.$.entries }}", "sn": "test_sn"}`

### **Valores de Search Operation**

| Valor | Significado  |
| ----- | ------------ |
| 0     | Base Object  |
| 1     | One Level    |
| 2     | Full Subtree |

### **Valores de Modify Operation**

| Valor | Significado          |
| ----- | -------------------- |
| 0     | Add attribute        |
| 1     | Exclude attribute    |
| 2     | Substitute attribute |
| 3     | Increment attribute  |

### **Operation, SSL e tratamento de erros**

* **Operation**: A operação a ser executada no servidor LDAP: `SEARCH`, `ADD`, `MODIFY` ou `DELETE`.
* **SSL**: Se `true`, a conexão usa SSL. Se `false`, a conexão não é criptografada.
* **Fail On Error**: Se `true`, um erro suspende a execução do pipeline.

## **Fluxo de mensagens**

### **Operation search**

#### **Input**

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

#### **Output**

```json
{
    "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"
            ]
        }
    ]
}
```

### **Operation add**

#### **Input**

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

#### **Payload**

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

#### **Output**

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

### **Operation modify**

#### **Input**

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

#### **Payload**

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

#### **Output**

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

### **Operation delete**

#### **Input**

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

#### **Output**

```json
{
    "message": "Entry deleted successfully",
    "success": true
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/security/ldap.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
