Article
· Jan 3 8m de lecture

Ma première expérience dans l'utilisation d'IAM

Expérience et retour d'expérience du cours en ligne "Hands-On with InterSystems API Manager for Developers

Avec mes connaissances de base du conteneur Docker et de l'API REST, j'aimerais faire mon premier essai d'utilisation du gestionnaire d'API InterSystems pour prendre le contrôle des API et des microservices. J'ai suivi ce cours en ligne en utilisant mon instance IRIS locale comme hôte (système d'exploitation Windows) et IAM exécuté sur une machine virtuelle Linux (invité).

Tout d'abord, je présenterai InterSystems API Manager (IAM), puis j'expliquerai les étapes de configuration de mon environnement local et enfin je parcourrai les chapitres du cours.

Introduction

De nos jours, la gestion des API est très importante en tirant parti des avantages d'un déploiement facile, à condition d'avoir un portail d'interface utilisateur intégré pour gérer, surveiller et sécuriser le trafic API.

InterSystems API Manager (IAM) prend le contrôle des API et des microservices consommés et exposés par l'application IRIS. Il s'agit d'une passerelle API entre les systèmes en aval et en amont et dispose également d'un moyen de trace visuelle pour savoir quelles API sont appelées, à quelle fréquence elles ont été appelées et qui les a appelées.

Avantages de l'utilisation d'IAM :

  • Surveiller les API basées sur HTTP
  • Contrôler le trafic.
  • Protéger la sécurité des API en utilisant un mécanisme de sécurité.
  • Facile à utiliser pour les nouveaux développeurs intégrés.

Installation IAM

Ce que j'ai installé avant de commencer à configurer l'IAM

  • Windows (Instance IRIS installée)
  • VM Linux (Docker installé)

Activer l'instance IRIS InterSystems pour utiliser IAM

  1. Ouvrir le portail IRIS de l'instance et activer IAM
    1. Dans le portail de gestion, sélectionnez Administration système > Sécurité > Utilisateurs et sélectionnez l'utilisateur IAM.
    2. Cliquez sur le bouton radio Mot de passe
    3. Saisissez et confirmez un mot de passe pour l'utilisateur IAM
    4. Cochez la case Utilisateur activé
    5. Sélectionnez Enregistrer
  1. Activez l'application Web IAM (assurez-vous que votre licence IRIS spécifie « Gestion des API »
    1. Dans le portail de gestion, sélectionnez Administration système > Sécurité > Applications > Applications Web et sélectionnez "/api/iam". 
    2. Cochez la case Activer l'application
    3. Sélectionnez Enregistrer

Téléchargez et extrayez les fichiers d'installation IAM

  1. Téléchargez le kit d'installation IAM depuis WRC dans l'environnement Linux
  2. Extrayez les fichiers tar (n'extrayez pas iam-image.tar, car il s'agit de l'image Docker IAM)

Configurer et démarrer IAM

Dans cette étape, j'ai utilisé l'utilisateur ROOT car j'obtenais des erreurs telles que "Impossible de charger correctement le portail de gestion" ou le script de configuration ne transmettait pas la valeur de la variable d'environnement au fichier docker-compose.yaml lorsque j'utilisais sudo avec mon utilisateur Linux. Une solution de contournement à ce dernier problème consistait à utiliser "sudo -E" pour transmettre les variables d'environnement.

  1. Ouvrez le terminal en exécutant la commande "docker load -i iam_image.tar" dans le répertoire où vous avez extrait l'archive IAM.
  2. Exécutez "source ./scripts/iam-setup.sh" dans le répertoire actuel ou "source ./iam-setup.sh" dans le dossier "scripts".
    1. Entrez le nom exact de l'image IAM et le nom du référentiel de https://containers.intersystems.com/contents Par exemple: intersystems/iam:3.0.2.0-2 (Cette étape est obligatoire, sinon vous recevrez une erreur concernant l'échec de l'authentification du référentiel une fois que vous aurez exécuté "docker compose")
    2. Entrez l'adresse IP exacte de la machine hôte (vous pouvez connaître la spécification IPV4 sous les paramètres Windows, n'entrez pas localhost ou 127.0.0.1)
    3. Entrez le numéro de port de l'instance IRIS sous le système d'exploitation Windows, par exemple 52773 
    4. Saisissez et confirmez le mot de passe de l'utilisateur IAM
  3. Dans le répertoire "scripts", assurez-vous d'exécuter "iam-test.sh" pour tester la connexion
  4. Dans le répertoire "scripts", exécutez "Dans le répertoire "scripts", exécutez "docker compose up -d" pour démarrer l'IAM" pour démarrer l'IAM
  5. Démarrez le portail IAM sous Linux en accédant à: http://localhost:8002/overview

Si vous ne pouvez pas envoyer une requête ping à l'adresse de l'hôte à l'aide de la VM, vérifiez Pare-feu Windows - Paramètres avancés - Règles entrantes. Activer le partage de fichiers et d'imprimantes (Echo Request - ICMPv4-In) Profile: Private, Public

Test IAM

À l'intérieur du kit d'installation, vous trouverez un script appelé "iam-test.sh" dans le répertoire des scripts.

Exécutez « ./iam-test.sh » pour commencer à tester la connexion entre IAM et l'instance IRIS.

Remarque : Si le résultat du test indique "Error creating service. HTTP Status Code:000 or Error creating service. HTTP Status Code:409", vérifiez l'état du menu fixe. S'il est sain mais ne fonctionne toujours pas, arrêtez le conteneur et exécutez Docker Compose. encore une fois, d'après mon expérience, cela peut se produire après avoir mis la VM en pause.

Pour plus d'informations, vous pouvez trouver ici la documentation de configuration IAM : https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=CIAM3.0_install#CIAM3.0_install_setupIAM

Exercice pratique: https://learning.intersystems.com/course/view.php?name=IAMExercise

 

Chapitres du cours

Après avoir réalisé cet exercice, j'ai conclu 3 chapitres principaux que j'aimerais partager :

  • Configuration des services
  • Configuration d'itinéraires
  • Définition des consommateurs et des plugins

Avant de commencer à utiliser IAM, cet exercice m'a demandé de faire une requête REST à l'aide de la méthode GET, cette requête HTTP provient du serveur client et pointe directement vers le point de terminaison qui est une application Web construite sur une instance IRIS.

Pour les étapes suivantes, cet exercice m'a montré comment configurer les services vers lesquels la requête API est transmise et un itinéraire qui analyse la requête entrante puis l'attribue à l'API la mieux adaptée.

 

Configuration des services et des routeurs

Qu'est-ce qu'un Service? 

Un service est configuré pour connecter API Manager à InterSystems IRIS ; vous disposez généralement d'un service par service REST ou application Web au sein d'InterSystems IRIS. Par exemple, si vous disposez d'une application Web avec le chemin de base /rest/coffeemakerapp, vous configurerez un service dans API Manager pour cette URL. Les services sont généralement définis avant les routes.

Qu'est-ce qu'une Route?

Une route définit ce qui sera appelé par les applications clientes vers InterSystems API Manager. On définit généralement un service avant un itinéraire car l'interface permet de créer facilement les itinéraires correspondants directement à partir d'un service défini. Les routes sont généralement des versions simplifiées des chemins dans InterSystems IRIS. Dans l’exemple suivant, vous allez créer des itinéraires pour /test, /coffeemakers, /coffeemaker et /newcoffeemaker. Plus vos itinéraires sont spécifiques, plus vous avez de contrôle sur vos API dans API Manager, à la fois dans l'affichage des métriques et dans l'ajout de plugins à des itinéraires spécifiques.

Créer Service:

  1. Accédez au portail d'administration IAM, sélectionnez l'onglet Services.
  2. Cliquez sur Nouveau service et nommez-le
  3. Sélectionnez Ajouter à l'aide d'une URL
  4. Fournissez l'URL de base qui correspond au chemin d'URL exact que vous avez spécifié dans l'application Web et vérifiez que l'adresse IP de l'instance est correcte (n'utilisez pas localhost ou 127.0.0.1).

Créer une Route:

  1. Faites défiler vers le bas le résumé du service et cliquez sur Ajouter un itinéraire
  2. Spécifiez le nom, les protocoles et le(s) chemin(s)
  3. Le champ Service doit être généré automatiquement avec les détails du service
  4. L'exercice nous a obligé à désélectionner Supprimer le chemin sous Champs avancés. Si cette option est sélectionnée, cela supprime le chemin lors de l'envoi de la demande à InterSystems IRIS, qui est un élément important pour se connecter au point de terminaison InterSystems IRIS.

Une fois le service et la route créés, vous pouvez utiliser un client REST tel que Postman, pour envoyer une requête directement à IAM et recevoir une réponse « 200 ok », par exemple : GET http://10.0.0.1:8000/test ( /test est la Route créée).

Remarque : dans mon cas, l'URL de la requête HTTP doit correspondre à l'adresse IP de la VM Linux, vous pouvez trouver l'adresse IP via Paramètres-Réseau ou exécuter la commande " ifconfig " dans le terminal.

Ouvrez le portail d'administration IAM, vous verrez la demande d'affichage de toutes les cafetières enregistrées avec succès, du client REST à IAM.

Même avec les requêtes CRUD de base, au lieu d'envoyer une requête HTTP directement à l'application Web IRIS, l'utilisation d'IAM vous apporte une représentation visuelle pour prendre le contrôle des API et maintenir la sécurité des points de terminaison.

Utiliser des Plugins

L'un des avantages de l'utilisation d'IAM est qu'il dispose de nombreux plugins disponibles, tels que le plugin Rate Limiting pour faciliter la limitation, le plugin ACL, le plugin OAuth2.0. Dans mon cas, je partagerai mon expérience en matière d'activation de l'authentification de base et de création d'un consommateur.

Activer le plugin d'authentification de base

  1. Accédez au portail d'administration IAM, sélectionnez l'onglet Plugins.
  2. Cliquez sur Nouveau plugin > Authentification de base > Créer

Créez un utilisateur IRIS dont vous avez besoin pour l'authentification de base

  1. Ouvrir le portail de gestion IRIS
  2. Accédez à Administration système > Sécurité > Utilisateurs > Créer un nouvel utilisateur
  3. Définir le nom d'utilisateur, le mot de passe
  4. D'autres le laissent vide puis cliquent sur Enregistrer. Dans mon cas, j'ai créé un utilisateur appelé "CoffeeManager".

Créer un consommateur et configurer ses informations d'identification

  1. Accédez au portail d'administration IAM, sélectionnez l'onglet Consommateurs.
  2. Cliquez sur Nouveau consommateur > Entrez CoffeeManger (dans mon cas) sous Nom d'utilisateur > Créer
  3. Accédez à la page d'informations de CoffeeManager > Informations d'identification > Nouvelles informations d'identification de base
  4. Utilisez les informations d'identification utilisateur que nous avons créées dans l'instance IRIS > Enregistrer

Nous avons maintenant rempli toutes les conditions requises pour rendre le plugin basic-auth fonctionnel.

Envoyez une requête HTTP en utilisant Basic Auth avec les informations d'identification "CoffeeManager" que nous avons créées à la dernière étape

Accédez à la page d'informations de CoffeeManager > Activity, vous verrez qu'une demande réussie a été déposée.

Conclusion

En conclusion, j'ai commencé par présenter ce qu'est InterSystems API Manager (IAM) et ses avantages. Suivi d'une présentation simple expliquant comment configurer IAM dans une machine virtuelle Linux et comment utiliser IAM en implémentant ses fonctions de base, créer des services et des routes, activer les plugins et les consommateurs.

Si vous avez des questions et des commentaires, n'hésitez pas à nous contacter.

Amusez-vous et profitez avec IAM !

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer