PUT | Atualizar servidor LDAP por [id]

Prev Next

Descrição

Substitua todos os atributos de um perfil de conexão de servidor LDAP/AD na plataforma Segura™. A requisição carrega a configuração completa, então qualquer campo opcional deixado de fora é limpo.

Para alterar apenas alguns campos e deixar o restante intocado, acesse PATCH | Atualizar parcialmente servidor LDAP por [id].


Pré-requisitos


Requisição

PUT /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/json.
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

O corpo recebe os mesmos campos de POST | Criar servidor LDAP, com as mesmas regras.

Campo Tipo Obrigatório Descrição
host string Sim Hostname ou endereço IP do servidor de diretório. Máximo de 200 caracteres.
port integer Sim Porta em que o diretório escuta. Valores permitidos: 1 a 65535.
dn_base string Sim DN base para buscas de usuário. Máximo de 255 caracteres.
use_ssl boolean Sim Habilita o LDAPS.
member_is_dn boolean Sim Indica que o atributo de membro retorna uma DN completa.
bind_requires_dn boolean Sim Indica que o diretório exige uma DN para o bind.
account_form string Sim Formato de usuário esperado pelo diretório. Valores permitidos: dn, username, backslash, principal, null.
order integer Sim Ordem de avaliação na cadeia de autenticação. Deve ser único entre os servidores ativos.
domain_id integer Sim Código de identificação do domínio ao qual o servidor pertence.
bind_credential_id integer Sim Código de identificação da credencial PAM usada no bind.
use_credential_domain boolean Sim Usa o domínio da credencial de bind em vez do domínio próprio do servidor.
ignore_disabled_expired boolean Sim Ignora contas expiradas durante a sincronização de grupo.
network_connector_id integer Não Código de identificação do agente de network connector usado para alcançar o servidor.
account_filter_format string Não Filtro LDAP customizado usado para localizar uma conta, em que %s é o placeholder do nome de usuário. Máximo de 100 caracteres.
username_attribute string Não Atributo do diretório que contém o nome de usuário. Padrão: uid. Máximo de 30 caracteres.
dn_bind string Não Caminho base usado na operação de bind. Máximo de 200 caracteres.
group string Não Restringe a autenticação aos membros deste grupo. Máximo de 200 caracteres.
group_dn string Não DN base para buscas de grupo. Máximo de 200 caracteres.
group_attribute string Não Atributo do diretório que contém o nome do grupo. Máximo de 200 caracteres.
group_scope string Não Escopo da busca de grupo. Valores permitidos: subtree, onelevel, base, null.
group_filter string Não Filtro LDAP aplicado ao buscar grupos. Máximo de 200 caracteres.
member_attribute string Não Atributo do grupo que lista seus membros. Máximo de 200 caracteres.
Info

active, account_domain_name e account_domain_name_short não podem ser enviados. O estado é alterado por meio de POST | Ativar servidor LDAP e POST | Desativar servidor LDAP, e os dois nomes de domínio são derivados de domain_id.


Exemplo de requisição

PUT {{url}}/api/v2/iam/ldap-servers/7

Cabeçalhos

If-Match: "a3f8c2e1d9b04567"

Corpo

{
    "host": "ad.example.com",
    "port": 636,
    "dn_base": "CN=Users,DC=example,DC=com",
    "use_ssl": true,
    "member_is_dn": false,
    "bind_requires_dn": true,
    "account_form": "principal",
    "order": 1,
    "domain_id": 5,
    "bind_credential_id": 102,
    "use_credential_domain": false,
    "ignore_disabled_expired": true,
    "dn_bind": "CN=svc-ldap,OU=Service Accounts,DC=example,DC=com"
}

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

{
    "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": true,
            "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": true,
            "username_attribute": null,
            "dn_bind": "CN=svc-ldap,OU=Service Accounts,DC=example,DC=com",
            "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:03:51+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.
422 api.validation.required_field Um campo obrigatório está ausente do corpo da requisição. Adicione o campo ausente 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 campo somente leitura, como active, account_domain_name ou account_domain_name_short. 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

428 a requisição chegou sem o cabeçalho If-Match:

{
    "code": "api.precondition.required",
    "message": "If-Match header is required for this request.",
    "details": null
}

Para mensagens de erros de autenticação e a política de 403 versus 404, acesse API v2 - Convenções e comportamentos compartilhados.