Cómo autenticar usuarios del servidor SMPP con una base de datos

Cuando operas tu propio servicio de SMS, es posible que desees almacenar información de usuarios en tu servidor de base de datos. Esta información puede usarse para autenticar usuarios que intentan acceder a tu servidor a través de varios canales. Por ejemplo, puedes autenticar conexiones de clientes SMPP, conexiones de API HTTP, clientes SMS UCP o CIMD2 con la misma base de datos de usuarios. Esta guía te proporciona instrucciones paso a paso sobre cómo configurar la autenticación de usuarios por base de datos para una configuración de servidor SMPP. Los pasos son similares para otros canales de servicio que puedas configurar. Puedes usar Microsoft SQL Server, MySQL, Oracle o cualquier otro servidor de base de datos.

Resumen

Si almacenas la información de usuarios de tu servidor SMPP SMS en una tabla de base de datos, debes seguir estos pasos para configurar Ozeki 10 SMS Gateway y consultar tu base de datos cuando un cliente SMPP intente conectarse, para decidir si está autorizado a usar tu servicio.

  • Abre el panel de control
  • Crea una conexión a la base de datos
  • Elige consultas SQL
  • Selecciona el tipo de base de datos
  • Ingresa los detalles de inicio de sesión de la base de datos
  • Crea un nuevo proveedor de autenticación
  • Escribe la consulta SELECT SQL para verificar al usuario
  • Abre la aplicación SMS Gateway
  • Haz clic en Avanzado en la barra de herramientas
  • Selecciona la configuración del servidor SMPP
  • Abre la pestaña Avanzado
  • Selecciona el proveedor de autenticación por base de datos

Paso 1 - Crear una conexión a la base de datos en Ozeki SMS Gateway

El primer paso es abrir la aplicación Panel de Control en Ozeki SMS Gateway. Simplemente navega al escritorio de Ozeki SMS Gateway y, como puedes ver en la Figura 1, abre el Panel de Control haciendo clic en su icono.

abrir panel de control
Figura 1 - Abrir Panel de Control

Ahora deberías estar en la página principal del Panel de Control, donde puedes crear, modificar o eliminar conexiones. Haz clic en el botón azul Crear nueva conexión y selecciona Aplicación en el cuadro que aparece en el lado derecho de la pantalla (Figura 2).

crear nueva conexión de aplicación
Figura 2 - Crear nueva conexión de aplicación

En este ejemplo usaremos MySQL Database para almacenar los detalles de usuario para el Proveedor de Autenticación. Así que selecciona el tipo de conexión MySQL como muestran las Figuras 3-5.

crear conexión a base de datos
Figura 3 - Crear conexión a base de datos

conexión de consultas SQL
Figura 4 - Conexión de consultas SQL

conexión MySQL
Figura 5 - Conexión MySQL

Luego completa el siguiente formulario con los detalles de conexión. Asegúrate de proporcionar la IP del servidor SQL y el número de puerto. El número de puerto SQL predeterminado suele ser 3306. También necesitas proporcionar el nombre de la base de datos donde están tus usuarios. Finalmente, proporciona el nombre de usuario y contraseña SQL y haz clic en 'Aceptar' (Figura 6).

detalles de conexión MySQL
Figura 6 - Detalles de conexión MySQL

Finalmente, la conexión fue exitosa como puedes ver en la Figura 7.

base de datos conectada
Figura 7 - Base de datos conectada

Paso 2 - Conectar el Proveedor de Autenticación por Base de Datos a la base de datos SQL

En este paso configuraremos una consulta SELECT en la tabla SQL. Esta consulta SELECT se llamará cuando ocurra un intento de inicio de sesión. Buscará usuarios en la tabla de usuarios. Dirígete a la página del proveedor de autenticación haciendo clic en Proveedores de autenticación en el menú Usuarios (Figura 8).

abrir menú de proveedores de autenticación
Figura 8 - Abrir menú de Proveedores de autenticación

En la página del Proveedor de autenticación puedes crear, modificar o eliminar proveedores de autenticación. Crea un nuevo proveedor de autenticación haciendo clic en el botón azul Crear nuevo proveedor de autenticación. Se abrirá un nuevo cuadro en el lado derecho de la página. En este cuadro puedes seleccionar entre proveedores de autenticación. Por favor, elige Proveedor de autenticación por base de datos (Figura 9).

crear nuevo proveedor de base de datos
Figura 9 - Crear nuevo proveedor de base de datos

Se mostrará un formulario en el cuadro. Debes completar el formulario para configurar el proveedor de autenticación por base de datos. En el campo más importante, debes escribir la consulta SQL como puedes ver en la Figura 10. En el PASO 4 configuraremos una base de datos SQL compatible con esta consulta SQL.

SELECT * FROM user WHERE
Password = MD5("${password}") /* Hashea la contraseña y compara el hash. */
and User="${username}";

proporcionar consulta SQL
Figura 10 - Proporcionar consulta SQL

Paso 3 - Crear Servicio SMPP con Autenticación SQL

El siguiente paso es abrir la aplicación SMS Gateway. Simplemente navega al escritorio de Ozeki SMS Gateway y haz clic en el icono de SMS Gateway. Aquí puedes encontrar el menú Avanzado de SMS Gateway. Para abrirlo, haz clic en el botón "Avanzado" en la página principal. (Figura 11)

abrir menú avanzado de SMS Gateway
Figura 11 - Abrir menú avanzado de SMS Gateway

En la página Avanzado puedes crear, modificar o eliminar Servicios SMS. Crea un nuevo Servicio SMS haciendo clic en el botón azul Crear nuevo Servicio. Se abrirá un nuevo cuadro en el lado derecho de la página. En este cuadro puedes seleccionar entre Servicios SMS como puedes ver en la Figura 12. Luego elige Servicio SMPP (Figura 13).

crear nuevo servicio SMS
Figura 12 - Crear nuevo Servicio SMS

crear servicio SMPP
Figura 13 - Crear Servicio SMPP

Se mostrará un formulario en el cuadro. Debes completar el formulario para configurar el Servicio SMPP. Proporciona un nombre único y un puerto para este servicio como puedes ver en la Figura 14.

detalles del servicio SMPP
Figura 14 - Detalles del Servicio SMPP

Luego, en la pestaña Avanzado del Servicio SMPP, configura el proveedor de autenticación por base de datos en la sección Autenticación de usuario como muestra la Figura 15.

configurar proveedor de autenticación
Figura 15 - Configurar Proveedor de autenticación

Paso 4 - Crear tabla de base de datos SQL para usuarios

Para usar el Proveedor de Autenticación por Base de Datos, necesitarás tener al menos una tabla SQL que contenga información de inicio de sesión de los usuarios. La tabla debe tener al menos 2 columnas. 1 columna es para el nombre de usuario y la otra es para el hash de la contraseña del usuario. (Figura 16) Ahora necesitarás crear una tabla en la base de datos:
CREATE TABLE user (
    User VARCHAR(255),
    Password VARCHAR(255)
    );

crear tabla de usuarios en la base de datos
Figura 16 - Crear tabla de Usuarios en la base de datos

Agrega credenciales de usuario a tu tabla. Puedes usar esta tabla más tarde para autenticación de usuarios. Ozeki SMS Gateway buscará usuarios en esta tabla. (Figura 17) No olvides hashear las contraseñas como se muestra a continuación:
INSERT INTO user (User, Password)
VALUES ("Ozeki", MD5('123451')),
	   ("smppuser", MD5("qwe123"));

crear usuarios en la base de datos
Figura 17 - Crear usuarios en la base de datos

Finalmente, si un Cliente SMPP se conecta con el nombre de usuario y contraseña que creaste en la base de datos, verás que el Usuario aparece en la sección Usuarios y aplicaciones de SMS Gateway (Figura 18).

usuario SMPP conectado
Figura 18 - Usuario SMPP conectado

Preguntas frecuentes

¿Tu gateway admite clustering en múltiples servidores y cómo ocurre?

Para escenarios que involucran un alto volumen de conexiones de usuarios, Ozeki SMS Gateway ofrece una solución de clustering para mejorar la escalabilidad del servicio. Un cluster comprende un grupo de computadoras independientes, cada una equipada con software Ozeki. Cada instancia de Ozeki se conecta de forma independiente a sus proveedores de servicios SMS designados y atiende a los usuarios de manera autónoma, sin depender de otros miembros del cluster.

Estrategias de Balanceo de Carga:

El clustering de Ozeki SMS Gateway emplea dos métodos principales para distribuir conexiones de clientes entre los miembros del cluster:

  1. Selección de Servidor basada en DNS: Este enfoque utiliza el algoritmo round-robin dentro del servidor DNS. Cuando un cliente consulta por el servicio, el servidor DNS devuelve direcciones IP de un grupo asignado al cluster, distribuyendo efectivamente las conexiones entre los servidores disponibles.
  2. Enrutador preseleccionado con Traducción de Direcciones de Red (NAT): En este método, un enrutador preconfigurado aprovecha NAT para distribuir el tráfico entrante entre los servidores del cluster. Este enfoque ofrece mayor control sobre el balanceo de carga en comparación con el método basado en DNS.
Beneficios del Clustering:
  • Escalabilidad mejorada: El clustering permite escalar horizontalmente, permitiéndote agregar más servidores al cluster para aumentar la capacidad y manejar una base de usuarios en crecimiento.
  • Mayor disponibilidad: Si un servidor individual encuentra problemas, los demás miembros del cluster continúan operando, garantizando la continuidad del servicio.
  • Rendimiento mejorado: Distribuir la carga entre múltiples servidores reduce la carga en máquinas individuales, lo que lleva a un mejor rendimiento general y tiempos de respuesta más rápidos para los usuarios.

No puedo enviar más de 6 mensajes por segundo, aunque tengo una licencia de 10 MPS. ¿Cuál puede ser el problema? ¿Cuál es el esquema de escalabilidad del software?

¿Experimentas velocidades de entrega de mensajes lentas en Ozeki SMS Gateway? Aquí hay varios cuellos de botella potenciales para investigar:

Gestión de Cola de Mensajes:

  • Tamaño de la Bandeja de Salida: Monitorea el tamaño de tu cola de salida. Idealmente, debería estar entre 100 y 2,000 mensajes. Una cola consistentemente baja (0-100) sugiere mensajes insuficientes para la transmisión. Por el contrario, una cola muy grande (más de 100,000) indica que la fuente de mensajes está sobrecargando el sistema.
  • Eliminación Automática de Mensajes: Considera habilitar la eliminación automática de mensajes antiguos en el formulario "Editar/Preferencias del Servidor". Esto evita la acumulación excesiva de la cola y la degradación del rendimiento.
Recursos del Sistema y Red:
  • Rendimiento del Hardware: Utiliza el Administrador de Tareas de Windows para identificar procesos que consuman recursos excesivos de CPU. La desfragmentación de disco, protectores de pantalla, software antivirus o actualizaciones automáticas pueden afectar temporalmente el rendimiento.
  • Ancho de Banda de Red: Verifica un ancho de banda de carga adecuado (idealmente superior a 256 Kbps). Minimiza la congestión de la red cerrando aplicaciones que consuman mucho ancho de banda, como transmisión de video o software de intercambio de archivos.
Factores Externos:
  • Limitaciones del Proveedor SMS: En algunos casos, el sistema del proveedor de servicios SMS podría ser más lento que el tuyo. Consulta con ellos sobre configuraciones óptimas de tamaño de ventana dentro del "formulario de configuración del proveedor de servicios SMPP". Un tamaño de ventana más pequeño puede restringir la velocidad de envío al esperar respuestas de confirmación antes de transmitir mensajes adicionales.
Resolución del Problema:
  • Mantén un Tamaño Óptimo de Cola de Salida: Apunta a un flujo constante de mensajes manteniendo la cola de salida dentro del rango recomendado (100-2,000 mensajes).
  • Implementa Eliminación Automática de Mensajes: Configura el software para eliminar automáticamente mensajes antiguos usando el formulario "Editar/Preferencias del Servidor".
  • Minimiza el Tráfico Entrante: Si es posible, reduce el volumen de mensajes entrantes, como informes de entrega, para agilizar el proceso de envío.
  • Optimiza el Rendimiento del Hardware: Identifica y cierra aplicaciones que consuman muchos recursos a través del Administrador de Tareas de Windows.
  • Actualiza el Ancho de Banda de Red (si es necesario): Considera actualizar tu plan de internet para garantizar capacidad de carga suficiente.
  • Consulta al Proveedor SMS: Discute configuraciones óptimas de tamaño de ventana con tu proveedor de servicios SMS para mejorar el rendimiento de envío.
Al abordar sistemáticamente estas posibles causas, puedes solucionar efectivamente problemas de transmisión lenta de mensajes y garantizar un rendimiento óptimo en Ozeki SMS Gateway.

More information