esofitec. CoreDocs

esofitec. CoreDocs

Instalación y configuración

Usuarios y permisos

En la API a3ERP el acceso es por usuario: cada usuario tiene sus credenciales, un conjunto de permisos sobre extremos concretos y, si integra a3ERP, los datos de la empresa contra la que opera. Todo se gestiona desde la pantalla de Configuración de la API (Sit.a3ERP.Api.Config), nunca editando las tablas a mano.

Antes de empezar

Necesitas haber creado ya la base de datos de la API. Si no, ve primero a Instalación y puesta en marcha.

Crear un usuario#

Abre Sit.a3ERP.Api.Config.exe y ve a la sección Usuarios:

Pantalla de gestión de usuarios en la configuración de la API

Para dar de alta un usuario no hay un botón de «añadir»: se escribe directamente en la fila vacía del final de la parrilla de usuarios. Los campos que defines son:

  • Descripción — texto identificativo del usuario/aplicación.
  • Contraseña — la que se enviará en el login; la aplicación propone una automáticamente al añadir el usuario.
  • Duración (tiempo de sesión) — minutos de validez del token que devuelve el login.
  • Empresa — la base de datos contra la que se ejecutarán sus consultas (ver más abajo).
  • Usuario NAX y Contraseña NAX (las credenciales de a3ERP) — solo si el usuario va a ejecutar operaciones custom sobre a3ERP (ver más abajo).

El UserId (un identificador único) y el Secreto del usuario, en cambio, se generan al guardar (los crea la base de datos). El UserId es el identificador con el que ese usuario hace login.

El UserId es necesario para los workers

Cada worker se autentica ante la API con el UserId de un usuario y solo procesa las tareas de los usuarios que tiene asignados. Si vas a desplegar un worker, hay que facilitar ese UserId a quien lo configure; sin él, el worker no recogerá las peticiones de ese usuario.

La empresa y las credenciales de a3ERP#

El campo Empresa cumple dos funciones:

  • Para endpoints SQL (vistas y procedimientos): es la base de datos sobre la que se ejecuta cada petición de ese usuario. Es lo que permite que distintos usuarios apunten a empresas/bases de datos distintas con la misma API.
  • Para operaciones custom: identifica la empresa de a3ERP. El worker abre sesión en a3ERP con el usuario y clave de a3ERP (NAX, a3ERP ActiveX) del usuario; si no se informan, se usa solo la empresa para seleccionar la base de datos.

Un usuario que solo consume endpoints SQL no necesita usuario ni clave de a3ERP.

Asignar permisos#

Un usuario no puede llamar a ningún extremo por defecto. Hay que concederle permisos explícitos. Un permiso liga al usuario con un extremo concreto y exige que coincidan tres cosas en la llamada:

  • el método HTTP (GET / POST),
  • el tipo de extremo (Vista SQL, Procedimiento almacenado u Operación personalizada),
  • el nombre del extremo (y, en las operaciones custom, también el dispatcher).

En la misma pantalla de Usuarios, en la parte inferior, tienes Extremos disponibles a la izquierda y Permisos de usuario a la derecha: con el usuario seleccionado, marca los extremos que quieras —previamente dados de alta (ver Configuración de endpoints)— y pulsa Permitir (o Denegar para retirarlos). Si una petición no encuentra un permiso que case, la API responde 403 Forbidden.

Operaciones custom: permiso por dispatcher

En las operaciones personalizadas, un permiso cuyo nombre de extremo coincide con su propio dispatcher concede todos los métodos de ese dispatcher, en lugar de tener que dar permiso método a método.

Sesión y revocación#

  • El tiempo de sesión del usuario fija cuántos minutos vale el token emitido en el login.
  • Modificar el perfil de un usuario invalida todos sus tokens anteriores: es la forma de revocar el acceso de inmediato. Tras cambiarlo, las aplicaciones deberán volver a hacer login.

El detalle del modelo de autenticación (token, cabecera User-Agent, firma por usuario) se explica en Seguridad.