> For the complete documentation index, see [llms.txt](https://docs.linuxcontrolcenter.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.linuxcontrolcenter.com.br/hook-bridge/execute-hook-bridge.md).

# Token Hook Bridge

## Requisitos

Linux Control Center = 2.10.X ou superior

## Ovewview

O *Hook Bridge* do LCC é uma funcionalidade que permite a execução automatizada de Ações em redes específicas por meio de requisições Web. Cada requisição contém um **Token** de autorização que define qual Ações será executada e em qual rede (CIDR). Essas ações são pré-configuradas no momento da criação do Token, garantindo que apenas *Ações* autorizadas sejam executadas.

O *Hook Bridge* também é utilizado para facilitar integrações com o Linux Control Center. Servindo como um ponto de acesso, esta funcionalidade permite que o usuário execute ações pré configuradas no LCC sem necessáriamente estar logado na Console mas ainda assim garantindo alta rastreabilidade do fluxo e múltiplas opções de acompanhamento da execução.

1. Veja o fluxo de funcionamento do **Hook Bridge** com *Propagation Action* do BeyondTrust Password Safe.

   ![](/files/G8RtwaQGM23sRCQ1MGRn)

## Objetivo

O objetivo deste documento é prover o passo a passo e demonstrar a utilização da funcionalidade **Hook Bridge** do Linux Control Center.

## Token do Hook Bridge

1. Acesse a tela **Hook Bridge** no menu lateral esquerdo.

   ![](/files/bkH60ioxTIGz7pdaC55L)
2. Clique em **Create**.

   ![](/files/s87VQ7fT9UZdzQ60ggFS)
3. Preencha o campo **Name**.

   **Name**: Nome para identificar o *Hook Bridge*.<br>
4. Escolha o **CIDR** cadastrado na base de dados do LCC.

   **CIDRs**: Define qual faixa de endereço IP (CIDR) o Token terá acesso para executar as *Ações*.<br>

   ![](/files/TiveZOrlS0SC05k3rxhD)
5. Também é possível criar uma nova **CIDR**, para isso, clique no sinal **+**

   ![](/files/JPcMHsTKjvWvNrH2fWyU)
6. Preencha os campos necessários, sendo;

   **Name:** Nome para identificar a *CIDR.*\
   **CIDR:** Insira a faixa de endereço IP seguido da máscara da rede. Ex: 192.168.0.0/24<br>
7. Clique em **Save**.

   ![](/files/D0Mat5HLf4rq5bVXf5H6)
8. Defina a *Ação* no campo **Action**

   **Action**: Define qual *Ação* o *Token* terá permissão para executar.<br>

   ![](/files/3XHxJBiItiV92jotRjbo)
9. Escolha o método de login do *Token* no campo *Login Type*.

   **Login Type**: Define o tipo de autenticação do *Token*, se será o *Request Credential* ou o *System Configuration*.<br>

   ![](/files/GLemMOugvE3jkvCEKFLr)

* Diferença entre Login Type *System Configuration* e *Request Credential*.

{% hint style="info" %}
Ao selecionar **Request Credentials** como tipo de login, a requisição deve **obrigatoriamente** conter o usuário e senha com permissão de acesso ao Host de destino, juntamente com o *Token*, servindo como dupla autenticação.

Com a opção **System Configuration**, o usuário pode executar a Ação configurada apenas com o *Token* como autenticação.
{% endhint %}

1. Verifique se os campos foram preenchidos corretamente e clique em **Save**.

   ![](/files/ZaLh7VIA5vV6zdHeur0M)

## Parâmetros de Requisição

* O *Token* serve para limitar qual *Ação* será executada e para realizar autenticação, mas não define em qual *Host* a Ação será executada. Para isso definir o Host, o LCC disponibiliza alguns parâmetros que permitem configurar a requisição conforme a necessidade.

{% hint style="info" %}
A URL da requisição deve conter Host e/ou Hostname para definir em qual Host a Ação será executada. Quando enviado apenas um deles, a busca será feita pelo parâmetro informado.

Se ambos os parâmetros forem informados, a busca será realizada usando os dois. Isso significa que, se o *Hostname* não estiver associado ao parâmetro *Host* fornecido, o match não será feito, e a requisição retornará um erro informando o ocorrido.
{% endhint %}

### Login Type *Request Configuration*

* Veja como montar uma requisição com Login Type *Request Configuration*. **Observação: Sempre utilize o sinal & para unir cada um dos argumentos.**

*Argumentos do Login Type Request Configuration:*

* **token:** Token que foi gerado na Console do LCC.<br>
* **username:** Usuário utilizado para fazer login no Host.<br>
* **password:** Senha utilizada para fazer login no Host.<br>
* **host:** Endereço IPV4 do host em que a Ação será executada.<br>
* **hostname:** Hostname do host em que a Ação será executada.<br>

1. A requisição precisa iniciar com o **Endereço IP** ou o **Hostname** do Linux Control Center
   * https\://**ip\_ou\_hostname\_do\_lcc**/
2. Em seguida, insira o endpoint da API */api/v2/hook\_bridge/request/action/*
   * <https://ip\\_ou\\_hostname\\_do\\_lcc/**api/v2/hook\\_bridge/request/action/>\*\*
3. Após colocar o endpoint, coloque o **ID** do Hook Bridge com o sinal **?** logo em seguida. O ID está disponível no campo *ID* do Hook Bridge.

   * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/**1>?\*\*

   ![](/files/wUYF7jZwjacfcQ8izpIL)
4. Defina o endereço IP no parâmetro **host=** e/ou o **hostname=** do Host em que a ação será executada.
   * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/1?**host=10.15.88.4>\*\*
   * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/1?**hostname=lcc-ubuntu-22>\*\*
5. Defina os argumentos de autenticação **\&username=** e o **\&password=** que serão responsáveis por realizar o login no servidor em que as açõe serão executadas.
   * <https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.&#x34;**\\&username=USUARIO\\_HOOKBRIDGE\\&password=SENHA\\_HOOKBDRIGE>\*\*
6. Defina o *Token* da requisição com o parâmetro **\&token=**

* O Campo *Token* é obtido no campo **Token** na tela do Hook Bridge.

  ![](/files/1NMnOUcOECRnOQdIf1Re)

  * <https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.4\\&username=USUARIO\\_HOOKBRIDGE\\&password=SENHA\\_HOOKBDRIG&#x45;**\\&token=YfNa1UKBlMV7nLpa>\*\*

1. Veja o exemplo de uma requisição *Request Configuration* completa com o utilitário **curl**:
   * Terminal Windows: **curl.exe -k "<https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.4\\&username=USUARIO\\_HOOKBRIDGE\\&password=SENHA\\_HOOKBDRIGE\\&token=YfNa1UKBlMV7nLpa>"**
   * Terminal Linux: **curl -k "<https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.4\\&username=USUARIO\\_HOOKBRIDGE\\&password=SENHA\\_HOOKBDRIGE\\&token=YfNa1UKBlMV7nLpa>"**

### Login Type *System Configuration*

* Veja como montar uma requisição com Login Type *System Configuration*. **Observação: sempre utilize o sinal & para unir cada um dos argumentos.**
* *Argumentos Login Type System Configuration:*
* **token:** Token que foi gerado na Console do LCC.<br>
* **host:** Endereço IPV4 do host em que a Ação será executada.<br>
* **hostname:** Hostname do host em que a Ação será executada.<br>

> Veja que a única diferença é que o Login Type *System Configuration* não precisa dos argumentos *username e password*

1. A requisição precisa iniciar com o **Endereço IP** ou o **Hostname** do Linux Control Center
   * https\://**ip\_ou\_hostname\_do\_lcc**/
2. Em seguida, insira o endpoint da API */api/v2/hook\_bridge/request/action/*
   * <https://ip\\_ou\\_hostname\\_do\\_lcc/**api/v2/hook\\_bridge/request/action/>\*\*
3. Após colocar o endpoint, coloque o valor do **ID** do Hook Bridge com o sinal **?** logo em seguida. O ID está disponível no campo *ID* do Hook Bridge.

   * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/**1>?\*\*

   ![](https://gitlab.com/7dev-doc/linux-control-center/-/blob/main/pt-br/images/hook-bridge/execute-hook-bridge)
4. Defina o endereço IP no parâmetro **host=** e/ou o **hostname=** do Host em que a ação será executada.
   * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/1?**host=10.15.88.4>\*\*
   * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/1?**hostname=lcc-ubuntu-22>\*\*

* Veja um exemplo de utilização dos dois argumentos simultaneamente;
  * <https://ip\\_ou\\_hostname\\_do\\_lcc/api/v2/hook\\_bridge/request/action/1?**host=10.15.88.4\\&hostname=lcc-ubuntu-22>\*\*

1. Defina o *Token* da requisição com o parâmetro **\&token=**
   * <https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.&#x34;**\\&token=YfNa1UKBlMV7nLpa>\*\*
2. Veja o exemplo de uma requisição *System Configuration* completa com o utilitário **CURL**:
   * Terminal Windows: **curl.exe -k "<https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.4\\&token=YfNa1UKBlMV7nLpa>"**
   * Terminal Linux: **curl -k "<https://ip-ou-hostname-do-lcc/api/v2/hook-bridge/request/action/1?host=10.15.88.4\\&token=YfNa1UKBlMV7nLpa>"**

### Ação *Custom Script* com o Login Type *Script Configuration*

{% hint style="info" %}
Ao selecionar a opção *Script Configuration*, o login será efetuado na máquina de acordo com as configurações registradas na aba *Credential* do *Script*, não sendo necessário informar o parâmetro Username ou Password como arg da requisição. Também é possível utilizar o *Login Type* Request Credential.

Esta Ação permite utilizar apenas 1 script para cada *Token*, sendo possível altera-lo sempre que necessário.
{% endhint %}

1. Clique em **Action** e escolha a opção **Custom Script**.

   ![](/files/ZozmW36Jli3lvACRpf43)
2. Clique em **Login Type** e escolha a opção **Script Configuration**

   ![](/files/pRQceLHwII05bbzCEq2e)
3. Clique em **Script** e defina qual script será executado pelo *Token*

   ![](/files/dh7OwTz4W5QRApGvK7Qa)
4. Clique em **Save**

   ![](/files/TCLMSpDXhNExrR3ej8QC)

* *Argumentos Login Type Script Configuration:*
* **token:** Token que foi gerado na Console do LCC.<br>
* **host:** Endereço IPV4 do host em que a Ação será executada.<br>
* **hostname:** Hostname do host em que a Ação será executada.<br>

## Logs de Requisições

### Hook Bridge Request

1. Acesse a tela Hook Brigde

   ![](/files/bkH60ioxTIGz7pdaC55L)
2. Clique no Hook Bridge desejado.

   ![](/files/DZ2hWG4kF1xxL6KY1gis)
3. Nesta página é possível ver todo o histórico de execuções para o Hook Bridge selecionado.

* Host: em que a requisição foi executada.<br>
* Status: Resultado da requisição.<br>
* Data e Hora de Criação e ultima Atualização.<br>
* Logs: Informações detalhadas do resultado da requisição.<br>

  ![](/files/JflSvJ07GZEa30mCS8ZZ)

O campo **STATUS** conta com um identificador para cada etapa do processo como:

* Solicitado
* Em fila
* Executando
* Sucesso
* Erro
* Sem licença
* Cancelado


---

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.linuxcontrolcenter.com.br/hook-bridge/execute-hook-bridge.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
