# Configuration de Passerelle de données Qlik - Accès direct dans un conteneur

Cette rubrique explique comment configurer une installation Direct Access gateway conteneurisée. Elle fournit les conditions préalables requises et les instructions d’installation et décrit les limitations et les considérations à prendre en compte lors de l’utilisation de Direct Access gateway dans un conteneur.

Note InformationsSupporté à partir de Direct Access gateway 1.8.0.

## Qu’est-ce qu’une installation Direct Access gateway conteneurisée ?

Vous pouvez déployer Direct Access gateway dans un conteneur Docker. Ce type de déploiement est appelé un déploiement Direct Access gateway conteneurisé. Les déploiements Direct Access gateway conteneurisés sont supportés pour Linux, macOS et Windows.

Un déploiement Direct Access gateway conteneurisé fournit la portabilité à votre environnement Direct Access gateway.

## Bonnes pratiques lors de l'utilisation de Passerelle de données Qlik - Accès direct

Pour une expérience concluante lors de l'utilisation de Passerelle de données Qlik - Accès direct, il est vivement recommandé de suivre les bonnes pratiques suivantes :

* N'utilisez pas la même Direct Access gateway pour le développement, les tests d'acceptation utilisateur et la production, car cela augmenterait le risque de surcharge des ressources disponibles et aurait un impact sur la stabilité du système. D'un point de vue commercial, la combinaison de ressources insuffisantes et d'une stabilité réduite peut entraîner des retards de mise à jour des données des applications de production.

* Pour des performances optimales, installez Direct Access gateway dans un environnement aussi proche que possible de votre source de données.

## Conditions préalables requises du système

Cette section décrit les conditions requises relatives à l’utilisation d’un déploiement Direct Access gateway conteneurisé.

### Conditions logicielles requises

* Docker Engine version 20.9+ et le plug-in Docker Compose (Docker Compose, syntaxe v2) installés sur l’hôte.

### Ports et protocoles requis

Pour les ports et protocoles requis, consultez [Ports et protocoles requis](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Ports).

### Matériel recommandé

* Hôte : 8 cœurs, 32 Go de mémoire, 5 Go de stockage disponible pour Docker

* Facultatif : définissez des limites correspondantes pour le conteneur dans le fichier Compose afin que la passerelle dispose d’une capacité dédiée plutôt que d’entrer en concurrence avec d’autres conteneurs ou processus sur l’hôte :

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

#### Configuration minimale requise

La configuration matérielle minimale requise ne convient qu’à des scénarios spécifiques qui utilisent des déploiements (développement, test ou production) dédiés de plus petite taille avec des volumes de données continuellement faibles et un nombre limité de chargements simultanés.

* Hôte : 4 cœurs, 8 Go de mémoire, 5 Go de stockage disponible pour Docker

* Facultatif : définissez des limites correspondantes pour le conteneur dans le fichier Compose afin que la passerelle dispose d’une capacité dédiée plutôt que d’entrer en concurrence avec d’autres conteneurs ou processus sur l’hôte :

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

## Installation de Passerelle de données Qlik - Accès direct

La configuration de Direct Access gateway implique des procédures à réaliser dans le centre d'activités Administration et sur le serveur Direct Access gateway.

Note InformationsLes procédures de la passerelle de données à effectuer dans le centre d'activités Administration nécessitent une autorisation d'administrateur de clients.

### Étape un : téléchargez Passerelle de données Qlik - Accès direct

1. Dans le centre d'activités Administration, sélectionnez Passerelles de données.

   Toutes les passerelles de données existantes seront répertoriées dans [un tableau indiquant des informations de base sur chacune](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-managing-console.htm#gateprop).

2. Cliquez sur le bouton de barre d'outils Déployer.

   La boîte de dialogue Déployer la passerelle de données s'ouvre.

3. Sélectionnez Passerelle de données - Accès direct - Direct Access gateway conteneurisée, acceptez le Contrat client Qlik, puis cliquez sur Télécharger. Le fichier d’installation de Direct Access gateway (docker-compose.qlik-data-gateway-direct-access.yml) sera téléchargé sur votre poste.

### Étape deux : Démarrer le déploiement en exécutant le fichier Docker Compose

Pour démarrer le déploiement de Direct Access gateway, exécutez la commande suivante :

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

### Étape trois : Configuration de Direct Access gateway

Pour obtenir des instructions de configuration détaillées, consultez [Étape trois : Configurer Direct Access gateway](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm#Stage3).

### Étape quatre : Enregistrer la passerelle de données

L’étape suivante consiste à enregistrer la passerelle de données. Cela peut être fait soit via le centre d’activités Administration, soit via la ligne de commande.

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

#### Option 1 : via le centre d’activités Administration

Vous pouvez enregistrer la passerelle à l’aide du centre d’activités Administration. Consultez [Option 1 : via le centre d’activités Administration](https://help.qlik.com/fr-FR/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)

#### Option 2 : enregistrement automatique à l’aide de la ligne de commande

Vous pouvez également enregistrer automatiquement Direct Access gateway depuis la ligne de commande sans utiliser le centre d’activités Administration. Cette méthode utilise un jeton de session de courte durée généré à partir d’un client OAuth.

Note InformationsL’enregistrement automatique est supporté uniquement via la ligne de commande. Il n’existe actuellement pas d’API REST pour l’enregistrement automatique de la passerelle.

Conditions préalables requises

Une clé API avec l’autorisation d’administrateur de clients pour créer et gérer des clients OAuth.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm)Enregistrement de la passerelle avec l’enregistrement automatique

1. Vous devez commencer par configurer un environnement Python pour générer un ID client OAuth, ainsi qu’une clé d’assertion (jeton de courte durée) dans le conteneur direct-access-agent. Exécutez les commandes suivantes séparément, dans cet ordre :

   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. Pour la [dernière commande de la liste ci-dessus](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#python3), suivez les invites interactives et copiez le client\_id (ID client OAuth) et le assertion lorsqu’ils sont fournis. Conservez ces informations sur papier ou dans un fichier texte temporaire pour le moment — elles seront nécessaires pour les étapes ultérieures du processus.

3. Lorsque vous avez noté le client\_id et le assertion, nettoyez l’environnement Python avec la commande suivante :

   deactivate

4. Définissez la méthode de consentement du client OAuth sur approuvé.

   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. Demandez un jeton d’accès. Cela déclenche également la création automatique du compte d’utilisateur bot utilisé par la passerelle.

   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"

   Note Informations

   Si l’assertion a expiré, réexécutez le script depuis l’environnement virtuel.

6. Recherchez l’utilisateur bot automatiquement créé.

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

7. Copiez l’ID de my-bot-client.

8. Créez un rôle « Enregistrement DAG ».

   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. Affectez des rôles au niveau du client à l’utilisateur 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. Obtenez l’espace Direct Access gateway.

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

11. Copiez l’ID d’espace Direct Access gateway.

12. Ajoutez l’utilisateur bot à l’espace avec l’autorisation Accès en écriture.

    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. Si l’assertion existante a expiré, générez-en une nouvelle. Exécutez la commande suivante :

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

14. Suivez les étapes requises dans l’invite de commande. Puisque le client OAuth est déjà créé, il est nécessaire de mettre à jour le JWK à l’aide de cet appel d’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. Enregistrez la passerelle :

    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)Suppression d’une passerelle automatiquement enregistrée

Suivez les étapes suivantes pour annuler l’enregistrement d’une passerelle qui a été enregistrée à l’aide de la méthode automatique basée sur un jeton de session décrite ci-dessus. Ces étapes suppriment également le client OAuth, l’utilisateur bot et le rôle qui ont été créés pour la passerelle.

1. Générez une assertion, comme décrit dans [la section ci-dessus](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#AutoRegister).

2. Supprimez la passerelle :

   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. Recherchez le compte d’utilisateur bot créé pour la passerelle.

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

4. Copiez l’ID de bot.

5. Supprimez ce compte d’utilisateur 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. Recherchez le rôle « Enregistrement DAG » qui a été créé pour la passerelle.

   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. Copiez l’ID de rôle.

8. Supprimez ce rôle.

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

9. Supprimez le 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;

### Étape cinq : démarrez le service Passerelle de données Qlik - Accès direct sur le serveur Direct Access gateway

Pour démarrer le service Passerelle de données Qlik - Accès direct, démarrez les conteneurs dcaas-dg et direct-access-agent.

### Étape six : ajoutez une connexion à votre source de données

Consultez [Étape six : ajoutez une connexion à votre source de données](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-container.htm#Stage6).

## Paramètres d’environnement

Cette section répertorie les variables d’environnement spécifiques du fichier docker-compose.qlik-data-gateway-direct-access.yml que vous devrez peut-être configurer pour connecter correctement vos sources de données via la passerelle.

* ALLOW\_SOURCES : liste d’autorisation de noms d’hôte et d’adresses IP séparés par des virgules. Lorsque l’agent de passerelle doit se connecter à un élément situé sur votre propre serveur ou sur un autre hôte du réseau local ou privé (par exemple, une base de données sur localhost, un nom de service Docker ou un hôte avec une adresse IP privée), vous ajoutez cette adresse à ALLOW\_SOURCES — sinon, la tentative de connexion est refusée.

## Sources de données supportées

* Les connecteurs ODBC suivants sont supportés pour les installations conteneurisées :

  * PostgreSQL
  * SQL Server
  * Oracle

  Pour plus d’informations sur les connecteurs ODBC, consultez [Bases de données ODBC ‒ Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/ODBC_Connector_help/Content/Connectors_ODBC/Introduction/ODBC-connector.htm) (uniquement en anglais).

* Connecteur REST (REST via Direct Access gateway). Pour plus d’informations sur les sources de données REST, consultez [Sources REST ‒ Qlik Cloud](https://help.qlik.com/en-US/cloud-services/Subsystems/REST_Connector_help/Content/Connectors_REST/REST-connector.htm) (uniquement en anglais).

## En savoir plus

* [Configuration de Passerelle de données Qlik - Accès direct](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setting-up.htm)
* [Configuration de Passerelle de données Qlik - Accès direct sur un serveur Windows](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/direct-access-gateway-setup-win.htm)