# Configurazione di Qlik Data Gateway - Accesso diretto in un contenitore

Questo argomento illustra come configurare Gateway di Direct Access containerizzato. Fornisce i prerequisiti e le istruzioni di installazione e descrive le limitazioni e le considerazioni di cui tenere conto quando si lavora con Gateway di Direct Access containerizzato.

Nota informaticaSupportato a partire da Gateway di Direct Access 1.8.0.

## Che cos'è Gateway di Direct Access containerizzato?

È possibile distribuire Gateway di Direct Access in un contenitore Docker. Questo tipo di distribuzione è denominato Gateway di Direct Access containerizzato. Le distribuzioni containerizzate di Gateway di Direct Access sono supportate per Linux, macOS e Windows.

Gateway di Direct Access containerizzato fornisce portabilità al tuo ambiente Gateway di Direct Access.

## Procedure consigliate quando si utilizza Qlik Data Gateway - Accesso diretto

Per un'esperienza ottimale quando si utilizza Qlik Data Gateway - Accesso diretto, si consiglia vivamente di seguire le seguenti procedure consigliate:

* Non usare lo stesso Gateway di Direct Access per lo sviluppo, il testing dell'accettazione degli utenti e la produzione, poiché così facendo aumenterà il rischio di sovraccaricare le risorse disponibili con conseguenze negative sulla stabilità del sistema. Da una prospettiva aziendale, la combinazione di risorse insufficienti e stabilità ridotta, possono causare un ritardo negli aggiornamenti dei dati di applicazione di produzione.

* Per ottenere prestazioni ottimali, installare Gateway di Direct Access in un ambiente il più vicino possibile alla sorgente dati.

## Prerequisiti di sistema

Questa sezione descrive i requisiti per l'utilizzo di Gateway di Direct Access containerizzato.

### Requisiti software

* Docker Engine versione 20.9+ e il plugin Docker Compose (docker compose, sintassi v2) installati sull'host.

### Porte e protocolli richiesti

Per le porte e i protocolli richiesti, vedere [Porte e protocolli richiesti](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Ports).

### Hardware consigliato

* Host: 8 core, 32 GB di memoria, 5 GB di spazio di archiviazione disponibile per Docker

* Facoltativo: impostare limiti corrispondenti sul contenitore nel file compose in modo che il gateway disponga di capacità dedicata anziché competere con altri contenitori o processi sull'host:

  ```
  direct-access-agent:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "6"
            memory: 24G
  ...
  dcaas:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "2"
  ```

#### Requisiti hardware minimi

I requisiti hardware minimi sono adatti solo per scenari specifici che utilizzano distribuzioni dedicate più piccole (sviluppo, test o produzione), con volumi di dati costantemente bassi e un numero limitato di ricaricamenti simultanei.

* Host: 4 core, 8 GB di memoria, 5 GB di spazio di archiviazione disponibile per Docker

* Facoltativo: impostare limiti corrispondenti sul contenitore nel file compose in modo che il gateway disponga di capacità dedicata anziché competere con altri contenitori o processi sull'host:

  ```
  direct-access-agent:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "2"
            memory: 4G
  ...
  dcaas:
      image: ...
      deploy:
        resources:
          limits:
            cpus: "2"
  ```

## Installazione di Qlik Data Gateway - Accesso diretto

La configurazione del gateway di Direct Access comporta procedure che devono essere eseguite sia nel centro attività Amministrazione sia sul server del gateway di Direct Access.

Nota informaticaLe procedure per il gateway dati che è necessario eseguire nel centro attività Amministrazione richiedono l'autorizzazione dell'amministratore tenant.

### Passaggio uno: scaricare Qlik Data Gateway - Accesso diretto

1. Nel centro attività Amministrazione, selezionare Gateway dati.

   Tutti i gateway di dati esistenti saranno elencati in [una tabella che riporta le informazioni di base su ciascun gateway](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-managing-console.htm#gateprop).

2. Fare clic sul pulsante della barra degli strumenti Distribuisci.

   Si apre la finestra di dialogo Distribuisci gateway dati.

3. Selezionare Data Gateway - Accesso diretto - Containerized Direct Access Gateway, accettare il Contratto con il cliente Qlik e fare clic su Scarica. Il file di installazione del gateway di Direct Access (docker-compose.qlik-data-gateway-direct-access.yml) verrà scaricato sul computer.

### Fase due: Avviare la distribuzione eseguendo il file Docker Compose

Per avviare la distribuzione del Gateway di Direct Access, eseguire il comando seguente:

docker compose -f docker-compose.qlik-data-gateway-direct-access.yml up

### Fase tre: Configurazione di Gateway di Direct Access

Per istruzioni dettagliate sulla configurazione, consultare [Fase tre: Configura Gateway di Direct Access](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Stage3).

### Fase quattro: registrare il gateway dati

Il passaggio successivo consiste nel registrare il gateway dati. Questa operazione può essere eseguita sia tramite il centro attività Amministrazione sia da riga di comando.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)

#### Opzione 1: Tramite il centro attività Amministrazione

È possibile registrare il gateway utilizzando il centro attività Amministrazione. Vedere [Opzione 1: Tramite il centro attività Amministrazione](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#StageConsole).

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)

#### Opzione 2: Registrazione automatica tramite la riga di comando

È inoltre possibile registrare Gateway di Direct Access automaticamente dalla riga di comando, senza utilizzare il centro attività Amministrazione. Questo metodo utilizza un token di sessione di breve durata generato da un client OAuth.

Nota informaticaLa registrazione automatica è supportata solo tramite riga di comando. Un'API REST per la registrazione automatica del gateway non è attualmente disponibile.

Prerequisiti

Una chiave API con autorizzazione di amministratore tenant per creare e gestire client OAuth.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)Registrazione del gateway tramite registrazione automatica

1. Per prima cosa, è necessario configurare un ambiente Python per generare un ID client OAuth, nonché una chiave di asserzione (token di breve durata) nel contenitore direct-access-agent. Eseguire i comandi seguenti separatamente, in questo ordine:

   1. docker exec -it --user root direct-access-agent-1 bash

   2. apt-get update && apt-get install -y python3 python3-pip

   3. apt install python3.11-venv

   4. python3 -m venv .venv

   5. source .venv/bin/activate

   6. pip install cryptography pyjwt

   7. [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)python3 generate\_gateway\_assertion.py --tenant-url &lt;tenant-url&gt;

2. Per l'[ultimo comando dell'elenco sopra](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#python3), segui i prompt interattivi e copia client\_id (ID client OAuth) e assertion quando forniti. Conserva questi dettagli su carta o in un file di testo temporaneo per il momento—sono necessari per i passaggi successivi della procedura.

3. Dopo aver annotato client\_id e assertion, pulisci l'ambiente Python con il comando seguente:

   deactivate

4. Imposta il metodo di consenso del client OAuth su attendibile.

   curl "https://&lt;tenant-url&gt;/api/v1/oauth-clients/&lt;client-id&gt;/connection-configs/me" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;api-key&gt;' -d '[{"op":"replace","path":"/consentMethod","value":"trusted"}]'

5. Richiedi un token di accesso. Questo attiva anche la creazione automatica dell'account utente bot utilizzato dal gateway.

   curl "https://&lt;tenant-url&gt;/oauth/token" -X POST -H 'content-type: application/x-www-form-urlencoded' -d "grant\_type=client\_credentials" -d "client\_id=&lt;client-id&gt;" -d "client\_assertion\_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" -d "client\_assertion=&lt;assertion&gt;" -d "scope=admin.direct-access-gateways:register\_gateway admin.direct-access-gateways:delete\_gateway"

   Nota informatica

   Se l'asserzione è scaduta, riesegui lo script dall'ambiente virtuale.

6. Cerca l'utente bot creato automaticamente.

   curl "https://&lt;tenant-url&gt;/api/v1/users" -H 'accept: application/json' -H 'authorization: Bearer &lt;API-key&gt;'

7. Copia l'ID di my-bot-client.

8. Crea un ruolo "DAG Registration".

   curl "https://&lt;tenant-url&gt;/api/v1/roles" -X POST -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d '{"name":"DAG Registration","description":"Role for registering a gateway","assignedScopes":["admin.direct-access-gateways:register\_gateway", "admin.direct-access-gateways:delete\_gateway"]}'

9. Assegna ruoli a livello di tenant all'utente bot.

   curl "https://&lt;tenant-url&gt;/api/v1/users/&lt;bot-user-ID&gt;" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d ' [ { "op": "replace", "path": "/assignedRoles", "value": [ { "name": "DAG Registration" } ] } ]'

10. Ottieni lo spazio di Direct Access Gateway.

    curl "https://&lt;tenant-url&gt;/api/v1/spaces" -H 'authorization: Bearer &lt;API-key&gt;'

11. Copia l'ID dello spazio Direct Access Gateway.

12. Aggiungi l'utente bot allo spazio con l'autorizzazione Può modificare.

    curl "https://&lt;tenant-url&gt;/api/v1/spaces/&lt;DAG-space-ID&gt;/assignments" -X POST -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d '{"assigneeId": "&lt;bot-user-ID&gt;","roles": ["consumer","dataconsumer","producer"], "type": "user"}'

13. Nel caso in cui l'asserzione esistente sia scaduta, generane una nuova. Eseguire il comando seguente:

    python3 generate\_gateway\_assertion.py --tenant-url &lt;tenant-url&gt;

14. Seguire i passaggi necessari nel prompt dei comandi. Poiché il client OAuth è già stato creato, è necessario aggiornare il JWK utilizzando questa chiamata API:

    curl "https://&lt;tenant-url&gt;/api/v1/oauth-clients/&lt;client-ID&gt;" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer &lt;API-key&gt;' -d '[{"op":"replace","path":"/publicKeys/0/y","value":"&lt;Y-value-from-JWK&gt;"},{"op":"replace","path":"/publicKeys/0/x","value":"&lt;X-value-from-JWK&gt;"},{"op":"remove","path":"/publicKeys/0/use"},{"op":"replace","path":"/publicKeys/0/kid","value":"&lt;kid-value-from-JWK&gt;"}]'

15. Registrare il gateway:

    dotnet ConnectorAgent.dll qcs register\_gateway --tenant\_url &lt;tenant-url&gt; --gateway\_name &lt;DAG-name&gt; --gateway\_description &lt;DAG-description&gt; --space\_name &lt;space-name&gt; --client-id &lt;client-ID&gt; --assertion &lt;assertion&gt;

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)Rimozione di un gateway registrato automaticamente

Utilizzare i passaggi seguenti per annullare la registrazione di un gateway registrato tramite il metodo automatico basato su token di sessione descritto sopra. Questi passaggi rimuovono anche il client OAuth, l'utente bot e il ruolo creati per esso.

1. Genera un'asserzione, come descritto nella [sezione precedente](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#AutoRegister).

2. Elimina il gateway:

   dotnet ConnectorAgent.dll qcs delete\_gateway --tenant\_url &lt;tenant-url&gt; --gateway\_name &lt;gateway-name&gt; --client-id &lt;client-ID&gt; --assertion &lt;assertion&gt;

3. Individuare l'account utente del bot creato per il gateway.

   curl "https://&lt;tenant-url&gt;/api/v1/users" -H 'accept: application/json' -H 'authorization: Bearer &lt;api-key&gt;'

4. Copia l'ID del bot.

5. Elimina questo account utente bot.

   curl -X DELETE "https://&lt;tenant-url&gt;/api/v1/users/&lt;bot-user-ID&gt;" -H "Authorization: Bearer &lt;api-key&gt;"

6. Cerca il ruolo “DAG Registration” creato per il gateway.

   curl "https://&lt;tenant-url&gt;/api/v1/roles?limit=1&filter=(name%20eq%20%22DAG%20Registration%22)" -H "Authorization: Bearer &lt;api-key&gt;"

7. Copia l'ID del ruolo.

8. Elimina questo ruolo.

   curl -X DELETE "https://&lt;tenant-url&gt;/api/v1/roles/&lt;role-ID&gt; -H "Authorization: Bearer &lt;api-key&gt;"

9. Elimina il client OAuth.

   curl -X DELETE https://&lt;tenant-url&gt;/api/v1/oauth-clients/&lt;OAuth-client-ID&gt; -H "qlik-confirm-delete: &lt;OAuth-client-ID&gt;" -H "Authorization: Bearer &lt;api-key&gt;

### Fase cinque: Avviare il servizio Qlik Data Gateway - Accesso diretto sul server del gateway di c

Per avviare il servizio Qlik Data Gateway - Accesso diretto, avviare i container dcaas-dg e direct-access-agent.

### Passaggio sei: aggiunta di una connessione alla sorgente dati

Vedere [Passaggio sei: aggiunta di una connessione alla sorgente dati](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#Stage6).

## Impostazioni dell'ambiente

Questa sezione elenca specifiche variabili di ambiente del file docker-compose.qlik-data-gateway-direct-access.yml che potrebbe essere necessario configurare per connettere correttamente le proprie origini dati tramite il gateway.

* ALLOW\_SOURCES: Un elenco consentiti separato da virgole di nomi host e IP. Quando l'agente gateway deve connettersi a qualcosa sul tuo server o su un altro host nella rete locale o privata (ad esempio, un database su localhost, il nome di un servizio Docker o un host con IP privato), aggiungi tale indirizzo a ALLOW\_SOURCES — altrimenti il tentativo di connessione viene rifiutato.

## Sorgenti dati supportate

* I seguenti connettori ODBC sono supportati per le installazioni containerizzate:

  * PostgreSQL
  * SQL Server
  * Oracle

  Per maggiori informazioni sui connettori ODBC, vedere [Database ODBC - Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/ODBC_Connector_help/Content/Connectors_ODBC/Introduction/ODBC-connector.htm) (solo in lingua inglese).

* REST connettore (REST tramite gateway di Direct Access). Per ulteriori informazioni sulle origini dati REST, consultare [Origini REST ‒ Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/REST_Connector_help/Content/Connectors_REST/REST-connector.htm) (solo in lingua inglese).

## Ulteriori informazioni

* [Configurazione di Qlik Data Gateway - Accesso diretto](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm)
* [Configurazione di Qlik Data Gateway - Accesso diretto su un server Windows](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-win.htm)