Skip to main content

Guia Instalación API Mifel

Scripts de Inicialización

  1. Crear la base de datos para el Identity
  2. Correr el script de inicialización de la base de datos del Identity. init_database_identity.sql

Scripts de Inicialización

  1. Insertar la configuración para el RabbitMQ
INSERT INTO [siglonet_mifel_dev].[dbo].[Scisa_ApplicationSettings](ApplicationID, Property, Value)
VALUES
('B14B9217-414B-460E-B973-AD990680B32F', 'AMQHostname', 'localhost'),
('B14B9217-414B-460E-B973-AD990680B32F', 'AMQUser', 'guest'),
('B14B9217-414B-460E-B973-AD990680B32F', 'AMQPassword', 'guest');
  1. Insertar los default del Producto y del Portafolio
INSERT INTO [siglonet_mifel_dev].[dbo].[Scisa_ApplicationSettings](ApplicationID, Property, Value)
VALUES
('B14B9217-414B-460E-B973-AD990680B32F', 'API_DEFAULT_PORTFOLIO_ID', '1'),
('B14B9217-414B-460E-B973-AD990680B32F', 'API_DEFAULT_PRODUCT_ID', '1'),
('B14B9217-414B-460E-B973-AD990680B32F', 'API_DEFAULT_PRODUCT_NAME', '01-Orden de Pago');

Instalar Redis

Si siguen los pasos de esta guía, se recomienda utilizar la opción 3. El siguiente enlace los llevará directamente a dicha opción:

GitHub - ServiceStack/redis-windows: Vagrant redis configuration and the binary releases of MS Open Tech redis port of windows

  1. Descargar el .zip Descargar el .zip

  2. Extraer en C:\SCISA\redis

  3. Instalar el servicio de redis. Abrir una consola de powershell en el directorio

  4. cd C:\SCISA\redis

  5. ./redis-server --service-install redis.windows.conf --loglevel verbose Artemis Site

  6. Deberiamos verlo en los servicios Artemis Site

  7. Configurar el servicio para que siempre este corriendo Artemis Site

Instalar Erlang

Antes de descargar Erlang o RabbitMQ, es importante consultar la matriz de compatibilidad de RabbitMQ en el siguiente enlace: RabbitMQ Compatibility Matrix.

Esta matriz permite verificar qué versiones de RabbitMQ son compatibles con las distintas versiones de Erlang. Artemis Site

  1. Descargar Erlang

Para instalar RabbitMQ, primero es necesario descargar e instalar Erlang. Puede descargarse desde el siguiente enlace, en la sección Download Windows Installer.

Erlang es un requisito fundamental para RabbitMQ, ya que este depende de su máquina virtual (BEAM) y de sus bibliotecas OTP para gestionar funcionalidades clave, como la distribución y el procesamiento de mensajes. Si Erlang no se instala antes que RabbitMQ, este último no funcionará correctamente.

Otp 26.2.5.5 - Erlang/OTP Artemis Site

  1. Instalar Erlang

Una vez descargado, iniciamos la instalación. No es necesario seleccionar las opciones Erlang Documentation o Associations, ya que no afectan el funcionamiento de RabbitMQ.

  • Associations permite abrir archivos .erl.
  • Erlang Documentation solo proporciona documentación de Erlang.

Después, hacemos clic en Next para continuar. Artemis Site

Seleccionamos la ubicación donde se instalará Erlang. Artemis Site

No es necesario crear un acceso directo. Artemis Site

Si Microsoft Visual C + + no está instalado, el sistema solicitará su instalación. En ese caso, procedemos a instalarlo.

Es posible que se nos pida reiniciar la máquina, pero debemos esperar hasta que Erlang haya sido completamente instalado antes de hacerlo. Artemis Site

Instalar RabbitMQ

  1. Descargar RabbitMQ

Para descargar RabbitMQ, seguimos la siguiente ruta y seleccionamos la opción rabbitmq-server-3.13.7.exe en la sección de descargas.

Installing on Windows | RabbitMQ

Artemis Site

  1. Instalar RabbitMQ

Una vez descargado RabbitMQ, podemos proceder con la instalación de RabbitMQ.

  • La opción RabbitMQ Service es necesaria para poder levantar el servicio de RabbitMQ.
  • La opción Start Menu habilita el CMD de RabbitMQ, que está preconfigurado con las rutas necesarias para ejecutar comandos, lo que facilita la administración y la realización de configuraciones más complejas. Sin embargo, esta opción no afecta el funcionamiento básico de RabbitMQ.

Artemis Site

Seleccionamos la ubicación donde se instalará RabbitMQ. Artemis Site

Una vez completada la instalación, abrimos el CMD de RabbitMQ c:\Program Files\RabbitMQ Server\rabbitmq_server-{version descargada de rabbit}\sbin y ejecutamos la siguiente línea de código: rabbitmqctl status. Esto nos indicará si la aplicación está corriendo.

Si el resultado es el que se muestra en la siguiente imagen, significa que hubo un fallo. En ese caso, pasamos al siguiente paso. Artemis Site

En los archivos de Windows, accedemos a la siguiente dirección: c:\users%username% (%username% es el nombre de usuario de Windows). Copiamos el archivo .erlang.cookie, que es necesario para la autenticación y permitir que RabbitMQ se levante correctamente. Artemis Site

Lo movemos a la siguiente carpeta c:\Windows\System32\config\systemprofile para que se esté configurando en los servicios de Windows. Artemis Site

En el CMD de RabbitMQ, volvemos a ejecutar la línea de código rabbitmqctl status. Si todo está correcto, debe aparecer el siguiente mensaje, lo que indica que la instalación fue exitosa. Artemis Site

Revisamos en Services si el servicio de RabbitMQ está corriendo. Artemis Site

Debemos ir a la carpeta donde se instaló RabbitMQ y abrir un CMD de Windows, o también podemos abrir el CMD de RabbitMQ. La ruta es: C:\Program Files\RabbitMQ Server\rabbitmq_server-4.0.4\sbin.

Una vez allí, ejecutamos la siguiente línea de código: rabbitmq-plugins enable rabbitmq_management. Esta línea habilitará la interfaz gráfica web de RabbitMQ.

Abrimos un navegador web y vamos a la dirección http://localhost:15672/. El nombre de usuario y la contraseña son guest. Si puedes acceder, significa que RabbitMQ está funcionando correctamente. Artemis Site

Instalar .NetCore 8

  1. SDK .Net 8.0

Para descargar el instalador se accede a la siguiente liga, (https://dotnet.microsoft.com/es-es/download/dotnet/8.0), clic la liga Hosting Bundlede del apartado ASP.NET Core Runtime 8.0.5 Artemis Site

Se abre la liga (https://dotnet.microsoft.com/es-es/download/dotnet/thank-you/runtime-aspnetcore-8.0.5-windows-hosting-bundle-installer) y en automático la carpeta de descargas de la máquina, clic en el botón Guardar. Artemis Site

Si la descarga no se realiza automáticamente, visita la página (https://dotnet.microsoft.com/es-es/download/dotnet/thank-you/runtime-aspnetcore-8.0.5-windows-hosting-bundle-installer). Luego, ve a la sección Vínculo Directo y haz clic en la liga. Artemis Site

Abrimos el archivo .exe que se descargó para iniciar la instalación. Seleccionamos la casilla de verificación Acepto los términos y condiciones de licencia. Luego, hacemos clic en el botón Instalar. Aparecerá una ventana de diálogo, donde debemos hacer clic en Sí y esperar a que la instalación finalice. Artemis Site

Instalar Postman

  1. Descargar el Windows 64-bit Installer Download Postman | Get Started for Free

Instalar Identity

  1. Descargar el Windows 64-bit InsLos .zip se encuentran en la siguiente carpeta: Zip

Desempacar el .zip en C:\SCISA

  1. Crear nuevo sitio en IIS Click derecho en Sites para agregar un nuevo sitio Artemis Site

  2. Para poder apuntar un dominio hay que primero configurar el DNS para poder redireccionar las peticiones y posterior poder generar el certificado

Agregar a tu proveedor de DNS el registro Artemis Site

  1. Llenamos los datos del sitio Artemis Site

  2. Ya con el DNS configurado y el sitio en línea podemos generar el certificado. Esto es muy propio del proveedor de seguridad y de infraestructura. Nosotros en SCISA utilizamos a (https://letsencrypt.org/) para la generación de nuestros certificados. Dentro de los proveedores posibles que ayudan a la generacion de certificados utilizamos win-acme (https://letsencrypt.org/docs/client-options/)

    • 4.1 Descargamos el .zip, extraemos y corremos como administrador el archivo wacs.exe
    • 4.2 Seguimos instrucciones para generar un nuevo certificado y como le dimos permisos de administrador solito configura el IIS para habilitar el puerto 443 de nuestro dominio configurado

    Artemis Site Artemis Site Artemis Site

    • 4.3 Este proceso hay que repetirlo por cada aplicación que deseemos que esté expuesta. Es recomendable y sugerido que TODA comunicación entre aplicativos sea con HTTPS/SSL.
    • 4.4. NOTA: Los servicios de Identity NO funcionan si no se tiene habilitado HTTPS/SSL

Validar que el Identity esté corriendo

Correr scripts para poder consumir el siglonet desde POSTMAN

Insertar la configuración para el Identity

UPDATE [siglo_identity].[dbo].[OpenIddictApplications]
SET Permissions = '["scp:security_console","ept:introspection","ept:logout","ept:token","ept:authorization","gt:authorization_code","gt:refresh_token", "gt:client_credentials", "rst:token","rst:code","scp:email","scp:profile","scp:roles"]',
Id = '387B6376-5FA9-4953-A909-203DC9A426BF'
WHERE ClientId = 'FrameworkApi'
  1. Configurar los settings del appsettings.json Artemis Site Cambiar la cadena de coneccion donde estará la Base de Datos

La Url Base donde apuntan

Artemis Site

Aquí se configura los settings del RabbitMQ en caso de cambiar algun parametro aquí se modifica.

Artemis Site

Configuración del logueo, en la sección “path” es donde se guardaran los archivos de logueo. Artemis Site

Instalar Siglo Web

Mismo proceso que el Identity

  1. Configurar los settings del appsettings.json

Artemis Site

¿Qué es MaxRetryAttempts? Es la cantidad de intentos que hará siglo para intentar conectarse al emulador.

¿Qué es UrlWebSocket? Esta es la cadena de conexión utilizada para conectarse al emulador a través de WebSocket.

Artemis Site Aquí se configuran las cadenas de conexión a las que se conectará Siglo.

En caso de errores con la base de datos de autenticación o autorización es necesario agregar al final de las cadenas la siguiente línea.

;TrustServerCertificate=true;

Ejemplo:

"DefaultConnection": "System.Data.SqlClient|Data Source=localhost,1433;Initial Catalog=siglonet2;User ID=sa;Password=Scis#Passw0rd;TrustServerCertificate=true;"

Artemis Site

Un sistema para autenticación y autorización basado en OAuth 2.0 y OpenID Connect.

  • Issuer: URL del servidor que emite los tokens (servidor de identidad).
  • Audience: Identificador del recurso o API que aceptará los tokens.
  • ClientId: Identificador único de la aplicación cliente que consume el servidor de identidad.
  • ClientSecret: Contraseña secreta del cliente (debe ser protegida).

Instalar PriceCalculator

Mismo proceso que el Identity

  1. Configurar los settings del appsettings.json

Artemis Site

¿Qué son los CORS y para qué sirven (AllowedOrigins)?

CORS (Cross-Origin Resource Sharing) es un mecanismo de seguridad en los navegadores que controla qué dominios pueden hacer solicitudes a tu API o servidor.

Por defecto, los navegadores bloquean solicitudes HTTP entre diferentes dominios (Cross-Origin), pero con CORS puedes permitir o restringir qué orígenes pueden acceder a tu API.

Agrega los dominios autorizados para realizar solicitudes a tu API.

¿Qué es TTLMilliseconds?

Esta variable indica el tiempo de expiración de un precio. Actualmente, está configurada en 10,000 milisegundos (10 segundos). Modifica este parámetro si se requiere un tiempo mayor.

Configuración de Redis

Configuración de Redis, donde encontraremos la contraseña, el host y el puerto. Artemis Site