Descrição
Substitua todas as configurações de uma sincronização de grupo LDAP na plataforma Segura™. A requisição carrega o recurso completo: qualquer campo opcional que você omitir retorna ao seu valor padrão. Para alterar alguns campos e manter o restante intacto, acesse PATCH | Atualizar parcialmente sincronização de grupo 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 no A2A.
- O
ETagatual da sincronização, retornado por GET | Consultar sincronização de grupo LDAP por [id].
Requisição
PUT /api/v2/iam/ldap-group-syncs/[id]
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id |
int | Sim | Código de identificação único da sincronização. |
Cabeçalhos
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
Content-Type |
Sim | Deve ser application/json. |
If-Match |
Sim | O ETag da sincronização conforme lido pela última vez. A plataforma rejeita a requisição quando a versão armazenada é diferente. |
Corpo da requisição
O corpo carrega os mesmos objetos e campos de POST | Criar sincronização de grupo LDAP. Todo campo obrigatório deve estar presente.
Enviar um campo somente leitura retorna 422 patch.field.not.allowed. Os campos somente leitura são id, active, last_sync_at, last_sync_succeeded, created_at, updated_at e tenant_code. Para alterar o estado ativo, acesse POST | Ativar sincronização de grupo LDAP ou POST | Desativar sincronização de grupo LDAP.
Exemplo de requisição PUT {{url}}/api/v2/iam/ldap-group-syncs/501
Corpo
{
"group_sync": {
"name": "Infrastructure operators",
"server_id": 10,
"user_group_id": 7,
"synchronization_enabled": true,
"overwrite_user_accesses": true,
"force_roles": true,
"automatic_sync": true,
"dn": "OU=Operators,DC=example,DC=com",
"ad_username_attribute": "sAMAccountName",
"ad_name_attribute": "displayname",
"ad_query": "(&(objectClass=group)(cn=ops-*))",
"role_ids": [1, 3, 8]
},
"domum": {
"enabled": true,
"type": "full_users",
"vendor_id": 22
}
}
Resposta
HTTP/1.1 200 OK
ETag: "9f2c71ab04e85d16"
O header ETag carrega a nova versão da sincronização. Use esse valor no próximo header If-Match.
Alterar role_ids também altera o ETag, mesmo quando nenhum outro campo é diferente.
Exemplo de corpo da resposta
A resposta carrega o mesmo modelo canônico de GET | Consultar sincronização de grupo LDAP por [id].
{
"data": {
"id": "501",
"group_sync": {
"name": "Infrastructure operators",
"active": true,
"server": { "id": "10" },
"user_group": { "id": "7" },
"synchronization_enabled": true,
"overwrite_user_accesses": true,
"force_roles": true,
"automatic_sync": true,
"dn": "OU=Operators,DC=example,DC=com",
"ad_username_attribute": "sAMAccountName",
"ad_name_attribute": "displayname",
"department": null,
"ad_query": "(&(objectClass=group)(cn=ops-*))",
"roles": [{ "id": 1 }, { "id": 3 }, { "id": 8 }]
},
"domum": {
"enabled": true,
"type": "full_users",
"vendor": { "id": 22 }
}
},
"meta": {
"links": { "self": "/api/v2/iam/ldap-group-syncs/501" },
"actions": {
"sync": "/api/v2/iam/ldap-group-syncs/501/sync",
"deactivate": "/api/v2/iam/ldap-group-syncs/501/deactivate"
}
}
}
Campos do corpo da resposta
Os campos da resposta correspondem a GET | Consultar sincronização de grupo LDAP por [id].
Erros
| Código HTTP | Mensagem | Causa possível | Solução |
|---|---|---|---|
400 |
api.request.malformed |
O corpo não é um JSON válido. | Verifique a sintaxe do JSON e reenvie a requisição. |
403 |
api.permission.denied |
A aplicação não tem permissão para este recurso. | Peça ao administrador para verificar a autorização Users da aplicação no A2A. |
404 |
api.resource.not_found |
Não existe sincronização com o código de identificação enviado. | Verifique o id e reenvie a requisição. |
412 |
api.precondition.failed |
O valor de If-Match não corresponde à versão armazenada. Outro cliente alterou o recurso. |
Leia o recurso novamente, revise a alteração e reenvie a requisição com o novo ETag. |
428 |
api.precondition.required |
O header If-Match está ausente. |
Leia o recurso, depois reenvie a requisição com seu ETag em If-Match. |
422 |
api.validation.required_field |
Um campo obrigatório está ausente ou é null. |
Envie todos os campos obrigatórios. Um PUT substitui o recurso inteiro. |
422 |
api.validation.invalid_reference |
server_id, user_group_id, department_id, uma entrada em role_ids ou domum.vendor_id não existe. |
Confirme que os recursos referenciados existem antes de reenviar a requisição. |
422 |
api.validation.overwrite.requires_sync_enabled |
overwrite_user_accesses é true enquanto synchronization_enabled é false. |
Defina synchronization_enabled como true, ou defina overwrite_user_accesses como false. |
422 |
api.validation.unknown_field |
O corpo carrega uma chave que não faz parte do esquema do recurso. | Remova a chave. Verifique se o corpo usa os objetos group_sync e domum. |
422 |
patch.field.not.allowed |
O corpo carrega um campo somente leitura. | Remova id, active, last_sync_at, last_sync_succeeded, created_at, updated_at e tenant_code. |
422 |
api.feature.unavailable |
O bloco domum foi enviado sem o módulo de licença cote. |
Remova o bloco domum, ou peça ao administrador para licenciar o módulo. |
429 |
rate_limit_exceeded |
A aplicação excedeu sua cota de requisições. | Aguarde o período indicado no header Retry-After e reenvie a requisição. |
Erros de autenticação
| Mensagem | Causa possível | Solução |
|---|---|---|
Client authentication failed. |
Falha na autenticação da aplicação com o servidor Segura. | Verifique os parâmetros de autenticação (Access Token URL, Client ID e Client secret) e solicite um novo token de acesso. |
Invalid signature |
Falha no reconhecimento da URL da aplicação cliente. | Verifique a URL da aplicação cliente e reenvie a requisição. |
No route matched with those values. |
Header de autorização ausente na requisição da API. | Solicite um novo token de acesso. |
Request timed out. |
A requisição excedeu o limite de tempo. | Verifique a conectividade entre a origem da requisição e o servidor Segura. |