PATCH | Atualizar parcialmente servidor LDAP por [id]

Prev Next

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


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.
Atenção

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.
Info

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.