Artículo
· 13 jun, 2023 Lectura de 8 min

Mi primera experiencia usando IAM

Experiencia & comentarios del curso online "Hands-On with InterSystems API Manager for Developers

Con mis conocimientos básicos de contenedores Docker y API REST, me gustaría probar el uso del administrador de APIs de InterSystems para gestionar las API y los microservicios. Completé este curso en línea utilizando mi instancia local de IRIS como host (sistema operativo Windows) e IAM ejecutándose en una máquina virtual Linux.

En primer lugar, presentaré InterSystems API Manager (IAM), a continuación explicaré los pasos para configurar mi entorno local y, por último, repasaré los capítulos del curso.

Introducción

Hoy en día, la administración de API es muy importante al aprovechar las ventajas de una implementación fácil, siempre que se cuente con un portal de interfaz de usuario centralizado para administrar, monitorizar y proteger el tráfico de las APIs.

InterSystems API Manager (IAM) permite la gestión de las API y los microservicios consumidos y expuestos por la aplicación IRIS. Es una puerta de enlace API entre los sistemas ascendentes y descendentes y también tiene una forma de seguimiento visual para averiguar a qué API se llama, con qué frecuencia se han llamado y quién las llamó.

Beneficios del uso de IAM:

  • Monitorización de APIs basadas en HTTP
  • Control del tráfico. 
  • Protección de la seguridad de las APIs mediante el uso de mecanismos de securización. 
  • Facilidad de uso para nuevos desarrolladores.

Configuración de IAM

Lo que tengo instalado antes de empezar a configurar el IAM:

  • Windows (Instancia de IRIS instalada)
  • Linux VM (Docker instalado)

Habilitación de la instancia de InterSystems IRIS para usar IAM

  1. Open management portal of IRIS instance, enable IAM.
    1. En el Portal de Gestión seleccionar System Administration > Security > Users y seleccionar al usuario IAM
    2. Hacer click en la opción Password
    3. Introducir y confirmar una contraseña para el usuario IAM
    4. Habilitar el usuario IAM marcando el check box
    5. Grabar
  2. Habilitar la aplicación web IAM (Asegúrate que tu licencia de IRIS especifica "API Management")
    1. En el Portal de Gestión selecciona System Administration > Security > Applications > Web Applications y selecciona "/api/iam" 
    2. Marca Habilitar aplicación
    3. Grabar

Descarga y descomprime los archivos de instalación de IAM

  1. Descarga el kit de instalación de IAM de WRC para entornos Linux
  2. Extrae los archivos tar (No descomprimas iam-image.tar, es la imagen de Docker de IAM)

Configuración y arranque de IAM 

En este paso, he usado el usuario ROOT porque recibía errores como "No se puede cargar el Portal de Gestión correctamente" o el script de configuración no pasaba el valor de la variable de entorno al archivo docker-compose.yml cuando usaba sudo con mi usuario de Linux. Una solución a este último fue usar "sudo -E" para pasar las variables de entorno.

  1. Abrir el terminal y ejecutar el comando "docker load -i iam_image.tar" desde el directorio en el que se ubicó el tar de la imagen de IAM.
  2. Ejecuta "source ./scripts/iam-setup.sh" en el directorio actual o "source ./iam-setup.sh" desde la carpeta "scripts".
    1. Introduce el nombre exacto de la imagen de IAM y el nombre del repositorio de https://containers.intersystems.com/contents Por ejemplo: intersystems/iam:3.0.2.0-2 (Este paso es obligatorio; de lo contrario, recibirá un error sobre fallo de autenticación del repositorio al ejecutar "docker compose") 
    2. Introduce la IP de tu máquina (Puedes encontrarla bajo la etiqueta de  IPV4 en la configuración de Windows o lanzando un ipconfig (no uses localhost o 127.0.0.1)  
    3. Introduce el puerto web de la instancia de IRIS, for example 52773 
    4. Configura el password definido previamente para el usuario IAM
  3. Dentro de la carpeta "scripts" asegúrate de ejecutar "iam-test.sh" para probar la conexión
  4. Dentro de la carpeta "scripts" ejecuta "docker compose up -d" para arrancar la IAM
  5. Abre el portal de gestión del IAM accediendo a: http://localhost:8002/overview

Si no puede hacer ping a la dirección del host usando VM, comprueba el Firewall de Windows - Advanced Settings - Inbound Rules. Habilita File and Printer Sharing (Echo Request - ICMPv4-In) Profile: Private, Public

Prueba de IAM

Dentro del kit de instalación, encontrará un script llamado "iam-test.sh" en el directorio de scripts.

Escriba y ejecute "./iam-test.sh" para comenzar a probar la conexión entre IAM y la instancia de IRIS.

Nota: Si el resultado de la prueba dice "Error al crear el servicio. Código de estado HTTP: 000 o Error al crear el servicio. Código de estado HTTP: 409", comprueba el estado de Docker, si funciona correctamente pero sigue sin funcionar, tire el contenedor desplegado y ejecuta nuevamente la instrucción de docker compose, por mi experiencia, esto puede suceder tras pausar la máquina virtual.

Para más información puedes encontrar aquí la documentación de configuración de IAM: https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=CIAM3.0_install#CIAM3.0_install_setupIAM

Y el ejercicio: https://learning.intersystems.com/course/view.php?name=IAMExercise

 

Capítulos del curso

Tras realizar el ejercicio podemos encontrar 3 capítulos principales:

  • Configuración de Servicios (Services)
  • Configuración de Rutas (Routes)
  • Configuración de Consumidores y Plugins (Consumers)

Antes de comenzar a usar IAM, este ejercicio me pedía que hiciera una solicitud REST usando el método GET, esta solicitud HTTP es del servidor del cliente que apunta directamente al punto final, que es una aplicación web creada en una instancia de IRIS.

Para los siguientes pasos, este ejercicio me mostró cómo configurar los servicios a los que se reenvía la solicitud API y la ruta que analiza la solicitud entrante y luego la asigna a la API más adecuada.

Configuración de servicios y enrutadores

¿Qué es un servicio?

Se configura un servicio para conectar API Manager a InterSystems IRIS; normalmente tiene un servicio por cada servicio REST o aplicación web dentro de InterSystems IRIS. Por ejemplo, si tiene una aplicación web con la ruta base /rest/coffeemakerapp, configurará un servicio dentro de API Manager para esta URL. Los servicios generalmente se definen antes que las rutas.

¿Qué es una Ruta?

Una ruta define lo que llamarán las aplicaciones cliente a InterSystems API Manager. Por lo general, define un servicio antes que una ruta porque la interfaz le permite crear fácilmente las rutas correspondientes directamente desde un servicio definido. Las rutas suelen ser versiones simplificadas de las rutas dentro de InterSystems IRIS. En el siguiente ejemplo, creará rutas para /test, /coffeemakers, /coffeemaker y /newcoffeemaker. Cuanto más específicas sean sus rutas, más control tendrá sobre sus API dentro de API Manager, tanto en la visualización de métricas como en la adición de complementos a rutas específicas.

Crear un servicio:

  1. Desde el portal de administración de IAM, seleccione la pestaña Services
  2. Haga clic en New Service y asígnele un nombre
  3. Seleccione Add usando URL
  4. Proporcione la URL base, que es la ruta URL exacta que especificó en la aplicación web, y verifique que la dirección IP de la instancia sea correcta (no use localhost o 127.0.0.1)

Crear una ruta:

  1. Desplácese hacia abajo en el resumen del servicio y haga clic en Add a Route
  2. Especifique nombre, protocolos, ruta(s)
  3. El campo Service debe generarse automáticamente con los detalles del servicio creado previamente.
  4. El ejercicio requería que deseleccionáramos Strip Path en Advanced Fields. Si se selecciona, esto elimina la ruta al enviar la solicitud a InterSystems IRIS, que es un elemento importante para conectarse al endpoint de InterSystems IRIS.

Una vez creados el servicio y la ruta, puede utilizar un cliente REST como Postman para enviar una solicitud directamente a IAM y recibir una respuesta "200 ok", por ejemplo: GET http://10.0.0.1:8000/test ( /test es la Route creada).

Nota: en mi caso, la URL de la solicitud HTTP debe coincidir con la dirección IP de la VM de Linux, puedes encontrar la dirección IP a través de Configuración-Red o ejecutar el comando "ifconfig" en la terminal.

Abra el Portal de administración de IAM, verá que la solicitud para mostrar todas las cafeteras se registró correctamente, desde el cliente REST hasta IAM.

Incluso con las solicitudes CRUD básicas, en lugar de enviar una solicitud HTTP directamente a la aplicación web de IRIS, el uso de IAM le brinda una representación visual para tomar el control de las API y mantener la seguridad de los endpoints.

Uso de complementos

Uno de los beneficios de usar IAM es que tiene muchos complementos disponibles, como el complemento de limitación de velocidad para ayudar con la limitación, el complemento ACL, el complemento OAuth2.0. En mi caso, compartiré mi experiencia de habilitar la autenticación básica y crear un consumidor.

Habilitar complemento de autenticación básica

  1. Abra el portal de administración de IAM Admin y selecciona la pestaña de Plugin
  2. Click en New Plugin > Basic Authentication > Create

Cree un usuario de IRIS que necesite para la autenticación básica

  1. Abra el portal de gestión de IRIS
  2. Vaya a Administración del sistema > Seguridad > Usuarios > Crear nuevo usuario
  3. Establecer nombre de usuario, contraseña
  4. Puedes dejar el resto de campos en blanco, en mi caso he creado un usuario llamado "CoffeeManager"

Crear un consumidor y configurar sus credenciales

  1. Vaya al Portal de administración de IAM, seleccione la pestaña Consumers  
  2. Haga clic en New Consumer > Introduce CoffeeManager (en mi caso) en Username > Create
  3. Vaya a la página de información de CoffeeManager > Credentials > New Basic Auth Credential
  4. Utilice las credenciales de usuario que creamos en la instancia de IRIS > Guardar

Hemos concluido con todos los requisitos para que el plugin de autenticación básica sea funcional.

Enviemos una solicitud HTTP utilizando autenticación básica con la credencial "CoffeeManager" que creamos en el último paso

Vaya a la página de información de CoffeeManager > Activity, verá que se ha registrado una solicitud con éxito

Conclusión

En conclusión, he comenzadopresentando qué es InterSystems API Manager (IAM) y sus beneficios. A continuación he seguido de un tutorial sencillo sobre cómo configurar IAM en una máquina virtual Linux y cómo usar IAM implementando sus funciones básicas, crear servicios y rutas, habilitar complementos y consumidores.

Si tienes alguna pregunta y comentario, no dudes en ponerte en contacto.

¡Diviértete y disfruta con IAM!

Comentarios (0)1
Inicie sesión o regístrese para continuar