Descrição
Altere atributos selecionados de um perfil de conexão de servidor LDAP/AD na plataforma Segura™. A requisição segue o formato JSON Merge Patch descrito na RFC 7396: ela carrega apenas os campos a alterar, e todo campo ausente do corpo mantém seu valor atual.
Para substituir a configuração completa em uma única requisição, acesse PUT | Atualizar servidor LDAP por [id].
Pré-requisitos
- Uma aplicação com a autorização Users concedida pelo administrador no A2A, com a permissão do recurso definida como Leitura e escrita. Para mais informações, acesse Como gerenciar autorizações no A2A.
- Um token de acesso OAuth 2.0 válido. Para mais informações, acesse Como autenticar uma aplicação A2A.
- A versão atual do servidor, lida no cabeçalho
ETagretornado por GET | Listar um servidor LDAP por [id]. - O servidor deve estar ativo. Acesse POST | Ativar servidor LDAP primeiro quando não estiver.
Requisição
PATCH /api/v2/iam/ldap-servers/{id}
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id |
integer | Sim | Código de identificação único do servidor LDAP. Nota: este valor é atribuído pela Segura™ em POST | Criar servidor LDAP. |
Cabeçalhos
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
Content-Type |
Sim | Deve ser application/merge-patch+json. Outro valor retorna 415 Unsupported Media Type. |
If-Match |
Sim | Versão atual do servidor, conforme retornada no cabeçalho ETag da última leitura. |
If-Match é obrigatório. Uma requisição sem o cabeçalho retorna 428 Precondition Required, e uma requisição carregando uma versão que não corresponde mais retorna 412 Precondition Failed.
Corpo da requisição
Todos os campos são opcionais, e cada campo enviado segue as mesmas regras que tem em POST | Criar servidor LDAP: host, port, dn_base, use_ssl, member_is_dn, bind_requires_dn, account_form, order, domain_id, bind_credential_id, network_connector_id, account_filter_format, use_credential_domain, ignore_disabled_expired, username_attribute, dn_bind, group, group_dn, group_attribute, group_scope, group_filter e member_attribute.
Enviar null em um campo opcional limpa o valor. network_connector_id: null, por exemplo, remove o agente de network connector e retorna o servidor a uma conexão direta.
Campos que não podem ser modificados
| Campo | Motivo |
|---|---|
id |
Atribuído pela Segura™ e permanente. |
active |
Alterado por meio de POST | Ativar servidor LDAP e POST | Desativar servidor LDAP. |
account_domain_name |
Derivado do domínio referenciado em domain_id. |
account_domain_name_short |
Derivado do domínio referenciado em domain_id. |
created_at |
Definido pela Segura™. |
updated_at |
Definido pela Segura™. |
tenant_code |
Definido pela Segura™. |
Enviar qualquer um deles retorna 422 patch.field.not.allowed.
Exemplo de requisição
PATCH {{url}}/api/v2/iam/ldap-servers/7
Cabeçalhos
Content-Type: application/merge-patch+json
If-Match: "a3f8c2e1d9b04567"
Corpo
{
"port": 636,
"use_ssl": true
}
Resposta
HTTP/1.1 200 OK
ETag: "b7c1e4f2a8d93016"
O cabeçalho ETag contém a nova versão do servidor. Use o valor no cabeçalho If-Match da próxima escrita.
Exemplo de corpo da resposta
A resposta carrega o servidor completo, no mesmo formato de GET | Listar um servidor LDAP por [id], já com os campos alterados aplicados.
{
"data": {
"id": 7,
"ldap_server": {
"host": "ad.example.com",
"port": 636,
"dn_base": "CN=Users,DC=example,DC=com",
"active": true,
"use_ssl": true,
"member_is_dn": false,
"bind_requires_dn": false,
"account_form": "principal",
"order": 1,
"domain": { "id": 5, "name": "EXAMPLE.COM" },
"bind_credential": {
"id": 102,
"username": "[email protected]",
"domain": { "id": 5, "name": "EXAMPLE.COM" }
},
"network_connector": null,
"account_filter_format": null,
"use_credential_domain": false,
"ignore_disabled_expired": false,
"username_attribute": null,
"dn_bind": null,
"account_domain_name": "EXAMPLE.COM",
"account_domain_name_short": "EXAMPLE",
"group": null,
"group_dn": null,
"group_attribute": null,
"group_scope": null,
"group_filter": null,
"member_attribute": null,
"created_at": "2026-05-08T22:42:34+00:00",
"updated_at": "2026-05-12T14:11:07+00:00"
}
},
"meta": {
"links": { "self": "/api/v2/iam/ldap-servers/7" },
"actions": {
"test-connection": "/api/v2/iam/ldap-servers/7/test-connection",
"deactivate": "/api/v2/iam/ldap-servers/7/deactivate"
}
}
}
Campos do corpo da resposta
Os campos da resposta correspondem aos de GET | Listar um servidor LDAP por [id].
| Campo | Tipo | Descrição |
|---|---|---|
data |
object | O servidor LDAP atualizado. |
data.id |
integer | Código de identificação único do servidor. |
data.ldap_server |
object | Atributos do servidor, com todos os campos retornados. |
meta |
object | Metadados do recurso. |
meta.links.self |
string | Caminho do servidor. |
meta.actions |
object | Ações disponíveis para o servidor em seu estado atual. |
A partir da versão 4.2.10, a resposta retorna id e o id de cada objeto aninhado como string, por exemplo "7". O corpo das requisições continua recebendo esses valores como inteiros.
Erros
| Código HTTP | Mensagem | Causa possível | Solução |
|---|---|---|---|
400 |
api.request.bad_request |
A requisição carrega um parâmetro de query desconhecido. | Remova o parâmetro e reenvie a requisição. |
401 |
api.auth.unauthorized |
O token de acesso está ausente ou expirou. | Solicite um novo token de acesso. |
404 |
api.resource.not_found |
O servidor não existe. | Verifique o código de identificação enviado no caminho. |
409 |
api.resource.inactive |
O servidor está inativo, e um servidor inativo não pode ser alterado. | Ative o servidor com POST | Ativar servidor LDAP e reenvie a requisição. |
412 |
api.precondition.failed |
O valor de If-Match não corresponde à versão atual do servidor, o que significa que o servidor foi alterado depois de ser lido. |
Leia o servidor novamente com GET | Listar um servidor LDAP por [id], revise as alterações e reenvie a requisição com o novo ETag. |
415 |
api.request.unsupported_media_type |
O cabeçalho Content-Type não é application/merge-patch+json. |
Corrija o cabeçalho e reenvie a requisição. |
422 |
api.validation.invalid_type |
Um campo recebeu um valor de tipo incorreto. | Verifique o tipo esperado para o campo e reenvie a requisição. |
422 |
api.validation.order.duplicate |
Outro servidor ativo já usa este valor de order. |
Envie um valor diferente ou desative o servidor que usa esse valor. |
422 |
api.validation.invalid_reference |
O domínio, a credencial ou o network connector referenciado não existe. | Verifique os códigos de identificação enviados no corpo. |
422 |
api.enum.invalid_value |
account_form ou group_scope recebeu um valor fora da lista permitida. |
Verifique os valores permitidos para o campo e reenvie a requisição. |
422 |
patch.field.not.allowed |
O corpo carrega um dos campos que não podem ser modificados. | Remova o campo e reenvie a requisição. |
428 |
api.precondition.required |
A requisição chegou sem o cabeçalho If-Match. |
Leia o servidor e reenvie a requisição com o valor do ETag em If-Match. |
429 |
api.rate_limit.exceeded |
O limite de requisições foi excedido. | Reduza a frequência de requisições e tente novamente. |
Exemplo de resposta de erro
422 o corpo carrega um campo que não pode ser modificado:
{
"code": "patch.field.not.allowed",
"message": "Field 'active' cannot be set via the API.",
"details": [
{ "field": "active", "code": "patch.field.not.allowed" }
]
}
Para mensagens de erros de autenticação e a política de 403 versus 404, acesse API v2 - Convenções e comportamentos compartilhados.