> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/gestao-de-usuarios.md).

# Gestão de Usuários

Guia de Integração de gestão de usuários e grupos via userManager.cgi: listar/consultar, criar/alterar/excluir, permissões (AuthorityList), troca de senha (user/manager) e política LoginAuthCtrl.

## Dicas & Boas Práticas <a href="#dicas-and-boas-praticas" id="dicas-and-boas-praticas"></a>

* Utilize **HTTPS em conjunto com HTTP Digest Authentication** para garantir a confidencialidade e a integridade da comunicação entre cliente e dispositivo.
* Evite ferramentas como **Postman ou Insomnia** em APIs que utilizam **conexões persistentes, streaming ou multipart responses**, pois não oferecem suporte adequado a esses cenários.
* Implemente **tratamento de exceções**, **controle de timeout** e **mecanismos de reconexão automática** para aumentar a resiliência da aplicação.
* Em fluxos contínuos (eventos, status ou notificações), assegure o **encerramento correto das conexões**, evitando consumo excessivo de CPU, memória e conexões simultâneas.
* Antes de executar **operações críticas** (exclusão de usuários, alteração de permissões, reboot ou reset), valide o estado atual do sistema e registre ou informe os usuários impactados.

***

### Tabela de Parâmetros

| Campo                        | Tipo           | Descrição                                         | Exemplo                    |
| ---------------------------- | -------------- | ------------------------------------------------- | -------------------------- |
| Id                           | int            | Identificador do usuário                          | 1                          |
| Name / name / userName       | char\[128]     | Nome do usuário                                   | `"admin"`                  |
| Password / pwd               | char\[]        | Senha do usuário                                  | `"123456"`                 |
| Memo                         | char\[32]      | Observação / descrição da conta                   | `"admin's account"`        |
| Group / group                | char\[32]      | Grupo do usuário (`admin`, `user`)                | `"admin"`                  |
| Sharable                     | bool           | Permite login simultâneo em múltiplos IPs         | `true`                     |
| Reserved                     | bool           | Usuário reservado (não pode ser deletado)         | `true`                     |
| PwdValidPeriod               | int            | Dias para aviso de expiração da senha             | `30`                       |
| AuthorityList                | char\[]\[128]  | Lista de permissões                               | `["ShutDown","Monitor01"]` |
| ip                           | char\[32]      | Endereço IP do login                              | `"10.43.2.16"`             |
| clienttype                   | char\[32]      | Tipo de cliente                                   | `"web3.0"`                 |
| logintime                    | char\[32]      | Data e hora do login                              | `"2011-11-08 09:51:03"`    |
| managerName                  | char\[]        | Usuário administrador                             | `"admin"`                  |
| managerPwd                   | char\[]        | Senha do administrador                            | `"abc123"`                 |
| accountType                  | int            | Tipo de conta (0 comum / 1 ONVIF)                 | `0`                        |
| LoginAuthCtrl.PriSvrPolicy   | enum int8      | Política de autenticação (1 seguro, 2 compatível) | `1`                        |
| Group.Name                   | char\[128]     | Nome do grupo                                     | `"admin"`                  |
| Group.Memo                   | char\[32]      | Descrição do grupo                                | `"administrator group"`    |
| NetInterface.Name            | char\[]        | Nome da interface de rede                         | `"eth0"`                   |
| NetInterface.Type            | char\[]        | Tipo da interface                                 | `"Normal"`                 |
| NetInterface.Valid           | bool           | Interface válida                                  | `true`                     |
| NetInterface.NetCardName     | char\[8]       | Nome real da placa                                | `"eth0"`                   |
| NetInterface.ConnStatus      | enum char\[32] | Status da conexão                                 | `"Connected"`              |
| NetInterface.Speed           | uint8          | Velocidade (Mbps)                                 | `100`                      |
| NetInterface.PhysicalAddress | char\[18]      | Endereço MAC                                      | `"00:10:5C:F2:1C:B4"`      |
| AccessFilter.Enable          | bool           | Ativa filtro de acesso                            | `true`                     |
| AccessFilter.Type            | enum char\[32] | Tipo de lista (`TrustList/BannedList`)            | `"BannedList"`             |
| AccessFilter.TrustList       | char\[]\[]     | IPs confiáveis                                    | `["10.6.10.1"]`            |
| AccessFilter.BannedList      | char\[]\[]     | IPs bloqueados                                    | `["10.6.10.2"]`            |
| Network.Hostname             | char\[128]     | Nome do host                                      | `"badak"`                  |
| Network.Domain               | char\[128]     | Domínio                                           | `"dahua"`                  |
| Network.DefaultInterface     | char\[32]      | Interface padrão                                  | `"eth0"`                   |
| Network.IPAddress            | char\[40]      | Endereço IP                                       | `"192.168.0.108"`          |
| Network.SubnetMask           | char\[40]      | Máscara de rede                                   | `"255.255.255.0"`          |
| Network.DefaultGateway       | char\[40]      | Gateway padrão                                    | `"192.168.0.1"`            |
| Network.DhcpEnable           | bool           | DHCP habilitado                                   | `false`                    |
| PPPoE.Enable                 | bool           | Habilita PPPoE                                    | `true`                     |
| PPPoE.UserName               | char\[64]      | Usuário PPPoE                                     | `"hz150260"`               |
| PPPoE.Password               | char\[64]      | Senha PPPoE                                       | `"Dont Know"`              |
| DDNS.Enable                  | bool           | Habilita DDNS                                     | `true`                     |
| DDNS.Protocol                | enum char\[32] | Protocolo DDNS                                    | `"NO-IP DDNS"`             |
| DDNS.HostName                | char\[128]     | Hostname DDNS                                     | `"www.tech.com/IPCamera1"` |
| Email.Enable                 | bool           | Habilita envio de e-mail                          | `true`                     |
| Email.Address                | char\[128]     | Servidor SMTP                                     | `"www.xxx.com"`            |
| Email.Port                   | uint16         | Porta SMTP                                        | `25`                       |
| Email.UserName               | char\[128]     | Usuário do e-mail                                 | `"anonymity"`              |
| Email.SendAddress            | char\[254]     | Remetente                                         | `"wang_xxx@xxx.com"`       |
| Email.Receivers              | char\[3]\[254] | Destinatários                                     | `["1@xxx.com"]`            |
| WLan.Enable                  | bool           | Ativa Wi-Fi                                       | `true`                     |
| WLan.SSID                    | char\[32]      | Nome da rede Wi-Fi                                | `"ttt"`                    |
| WLan.Encryption              | enum char\[32] | Tipo de criptografia                              | `"WPA-PSK-CCMP"`           |

***

### Segurança de Credenciais

* Evite enviar senhas via GET quando possível.
* URLs podem ficar registradas em:
  * Logs de proxy
  * Histórico do navegador
  * Logs do servidor
* Utilize sempre HTTPS.
* Restrinja acesso ao endpoint `/cgi-bin/userManager.cgi` via firewall.

***

### Impacto em Sessões Ativas

Adicionar:

* Alteração de permissões pode:
  * Encerrar sessões ativas
  * Invalidar tokens
  * Forçar relogin
* Exclusão de usuário desconecta imediatamente a sessão.

***

### Obter Informações de um Usuário Específico

**Tópico:** Retorna os dados detalhados de um usuário, incluindo grupo associado, permissões (AuthorityList), período de validade da senha e atributos de compartilhamento e reserva.

* Método: `GET /cgi-bin/userManager.cgi?action=getUserInfo`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=getUserInfo&name=admin
```

**Resposta:**

```powershell
user.Name=admin 
user.Memo=admin's account 
user.Group=admin 
user.Reserved=true 
user.Sharable=true 
user.PwdValidPeriod=30 
user.AuthorityList[0]=AuthUserMag 
user.AuthorityList[1]=Monitor_01 
user.AuthorityList[2]=Replay_01 
user.AuthorityList[3]=AuthSysCfg 
user.AuthorityList[4]=AuthSysInfo 
user.AuthorityList[5]=AuthManuCtr
```

### Obter Informações de Todos os Usuários

**Tópico:** Retorna a lista completa de usuários cadastrados no dispositivo, com seus respectivos grupos, permissões e políticas de senha.

* Método: `GET /cgi-bin/userManager.cgi?action=getUserInfoAll`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=getUserInfoAll
```

**Resposta:**

```powershell
user[0].Name=admin 
user[0].Memo=admin's account 
user[0].Group=admin 
user[0].Reserved=true 
user[0].Sharable=true 
user[0].PwdValidPeriod=30  
user[0].AuthorityList[0]=AuthUserMag 
user[0].AuthorityList[1]=Monitor_01 
user[0].AuthorityList[2]=Replay_01 
user[0].AuthorityList[3]=AuthSysCfg 
user[0].AuthorityList[4]=AuthSysInfo 
user[0].AuthorityList[5]=AuthManuCtr 
… 
```

### Obter Informações de Todos os Usuários Ativos

**Tópico:** Retorna os usuários atualmente logados no sistema, incluindo IP de origem, tipo de cliente, grupo e horário de login.

* Método: `GET /cgi-bin/userManager.cgi?action=getUserInfoAll`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=getUserInfoAll
```

**Resposta:**

```powershell
users[0].name=admin 
users[0].ip=10.43.2.16 
users[0].group=admin 
users[0].clienttype=web3.0 
users[0].logintime=2011-11-08 09:51:03 
…
```

### Obter Informações de um Grupo Específico

**Tópico:** Retorna as informações de um grupo de usuários, incluindo descrição e lista de permissões associadas ao grupo.

* Método: `GET /cgi-bin/userManager.cgi?action=getGroupInfo`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=getGroupInfo&name=admin
```

**Resposta:**

```json
group.Name=admin 
group.Memo=administrator group 
group.AuthorityList[0]=AuthUserMag 
group.AuthorityList[1]=Monitor_01 
group.AuthorityList[2]=Replay_01 
group.AuthorityList[3]=AuthSysCfg 
group.AuthorityList[4]=AuthSysInfo 
group.AuthorityList[5]=AuthManuCtr 
… 
```

### Obter Informações de Todos os Grupos

**Tópico:** Retorna todos os grupos existentes no sistema, com seus identificadores, descrições e permissões configuradas.

* Método: `GET /cgi-bin/userManager.cgi?action=getGroupInfoAll`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=getGroupInfoAll
```

**Resposta:**

```powershell
group[0].Id=1 
group[0].Name=admin 
group[0].Memo=administrator group 
group[0].AuthorityList[0]=AuthUserMag 
group[0].AuthorityList[1]=Monitor_01 
group[0].AuthorityList[2]=Replay_01 
group[0].AuthorityList[3]=AuthSysCfg 
… 
group[1].Id=1 
group[1].Name=user 
group[1].Memo=user group 
group[1].AuthorityList[0]=Monitor_01 
…
```

### Adicionar um Novo Usuário

**Tópico:** Cria um novo usuário no sistema, definindo nome, senha, grupo, permissões de compartilhamento e status de reserva.

* Método: `GET /cgi-bin/userManager.cgi?action=addUser`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=addUser&user.Name=George&user.Password=12
3456&user.Group=user&user.Sharable=true&user.Reserved=false
```

**Resposta:**

```
OK
```

### Remover Usuário

**Tópico:** Remove um usuário existente do sistema. Usuários reservados geralmente não podem ser excluídos.

* Método: `GET /cgi-bin/userManager.cgi?action=deleteUser`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=deleteUser&name=George
```

**Resposta:**

```
OK
```

### Modificar Informações do Usuário

**Tópico:** Modifica um usuário existente do sistema.

* Método: `GET /cgi-bin/userManager.cgi?action=modifyUser`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=modifyUser&name=George&user.Password=1234
56&user.Group=user&user.Sharable=true&user.Reserved=false&user.AuthorityList=[ShutDown,Monitor
01,DataFormat,Replay_01]
```

**Resposta:**

```
OK
```

### Modificar a Senha do Usuário

**Tópico:** Permite que o próprio usuário altere sua senha, informando a senha atual e a nova senha.

* Método: `GET /cgi-bin/userManager.cgi?action=modifyPassword`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=modifyPassword&name=George&pwd=abcdef&p
wdOld=123456
```

**Resposta:**

```
OK
```

### Gerenciar Alteração de Senha de Usuário Comum

**Tópico:** Permite que um administrador altere a senha de outro usuário, mediante autenticação administrativa.

* Método: `GET /cgi-bin/userManager.cgi?action=modifyPasswordByManager`

**Exemplo**:

```http
http://<ip>/cgi-bin/userManager.cgi?action=modifyPasswordByManager&userName=Geoge&
pwd=123456&managerName=admin&managerPwd=abc123&accountType=0
```

**Resposta:**

```
OK
```

### Obter Configuração de Política de Autenticação de Login&#x20;

**Tópico:** Retorna as configurações de política de autenticação de login, como estratégia de validação primária do servidor.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=LoginAuthCtrl
```

**Resposta:**

```
table.LoginAuthCtrl.PriSvrPolicy=1
```

### Definir Configuração de Política de Autenticação de Login&#x20;

**Tópico:** Define ou altera a política de autenticação utilizada durante o processo de login dos usuários.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&LoginAuthCtrl.PriSvrPolicy=2
```

**Resposta:**

```
OK
```

### Adicionar um Novo Grupo

**Tópico:** Cria um novo grupo de usuários com um conjunto específico de permissões.

* Método: `POST /cgi-bin/api/userManager/addGroup`

**Exemplo**:

```powershell
{ 
"group": GroupInfo "
}
```

**Resposta:**

```
{}
```

### Modificar Informações do Grupo

**Tópico:** Atualiza as informações e permissões associadas a um grupo existente.

* Método: `POST /cgi-bin/api/userManager/modifyGroup`

**Exemplo**:

```powershell
{ 
"name": "groupName", 
"group": Info
}
```

**Resposta:**

```
{}
```

### Excluir um Grupo

**Tópico:** Remove um grupo de usuários do sistema.

* Método: `POST /cgi-bin/api/userManager/deleteGroup`

**Exemplo**:

```powershell
{ 
"name": "groupName" 
}
```

**Resposta:**

```
{}
```

***

Notas finais:

* A maioria dos endpoints de **gestão de usuários e grupos** utiliza requisições **HTTP GET com parâmetros na URL**, retornando respostas no formato `key=value`.
* Alterações em usuários, grupos ou permissões **podem entrar em vigor imediatamente**, afetando sessões ativas.

***


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://portal-integracao.intelbras.com.br/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/gestao-de-usuarios.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
