API Gateway es la capa intermedia entre los sistemas externos y la aplicación Evolve. Administra la seguridad de las API expuestas a las que acceden los sistemas de terceros. Por ejemplo, un sistema de terceros puede iniciar un proceso de formulario llamando a la API de extensión de procesos. Para realizar esta llamada correctamente, el sistema de terceros debe cumplir los requisitos de seguridad del API Gateway.
Detalles de seguridad del API Gateway
API Gateway ofrece opciones para registrar un cliente de terceros en la aplicación. Se puede registrar un cliente nuevo en el sitio de administración por medio de Configuración → Autenticación → Clientes de terceros → Registrar cliente. API Gateway admite tres opciones de seguridad: Clave secreta de cliente, Token seguro y Certificado.
Winshuttle recomienda la opción de seguridad Token seguro como opción preferida para su uso por el sistema de terceros.
Clave secreta de cliente
Es la opción de seguridad del encabezado HTTP. Para registrar un cliente nuevo, el usuario debe hacer clic en Registrar cliente, indicar un valor en Nombre de cliente y seleccionar Clave secreta de cliente en la lista desplegable Tipo de seguridad. Al registrar un cliente nuevo, la aplicación genera los valores de Id. del cliente y Código secreto. Para copiar el código secreto, seleccione cualquier cliente y haga clic en Ver → Mostrar clave secreta. Las aplicaciones de terceros deben enviar el id. del cliente registrado y el código secreto en el encabezado de la solicitud HTTP de la siguiente manera:
-
Encabezado de solicitud - Nombre: «c1» debe tener un id. de cliente registrado válido.
-
Encabezado de solicitud - Nombre: «ck» debe tener un código secreto.
Token seguro
Es la opción de seguridad del token JWT. Para registrar un cliente nuevo, el usuario debe hacer clic en Registrar cliente, indicar un valor en Nombre de cliente y seleccionar Token seguro en la lista desplegable Tipo de seguridad. Al registrar un cliente nuevo, la aplicación genera los valores de Id. del cliente y Código secreto. Para copiar el código secreto, seleccione un cliente y haga clic en Ver → Mostrar clave secreta. El cliente de terceros debe crear un Token JWT y también firmarlo con el código secreto. El token JWT debe enviarse en la solicitud de API. La API debe tener los encabezados de solicitud que se indican a continuación:
-
Encabezado de solicitud - Nombre: «c1» debe tener un id. de cliente registrado válido.
-
Encabezado de solicitud - Nombre: «ck» debe tener el token JWT.
El token JWT debe incluir los siguientes detalles:
-
El token debe tener un IdDeCliente de notificación y un id. de cliente registrado (el id. de cliente que se muestra mientras se registra el cliente). Debe ser igual que el valor del encabezado de solicitud «c1».
-
El token debe tener un ClientName de notificación y un nombre de cliente registrado (el nombre de cliente que se muestra mientras se registra el cliente).
-
El tiempo de caducidad predeterminado del token no debe ser superior a 5 minutos desde la hora de emisión del token. Si el usuario desea ampliar este tiempo, puede añadirse una clave en Sistema → Infraestructura → Configuración avanzada con la categoría System y la clave de configuración ExtAPITokenExpiryMinutes. El valor debe ser el tiempo en minutos.
Certificado
Se trata de la seguridad basada en certificados, donde tanto la aplicación de terceros como Evolve Server comparten un certificado y este se utiliza para autenticar la llamada. También se llama autenticación de certificado mutuo y solo se admite cuando Evolve está configurado en HTTPS. Para registrar un cliente nuevo, el usuario debe hacer clic en Registrar cliente, indicar un valor en Nombre de cliente y seleccionar Certificado en la lista desplegable Tipo de seguridad. Al registrar un cliente nuevo, la aplicación genera el valor de Id. del cliente. El id. de cliente generado, junto con el certificado de cliente, se usa para hacer la llamada a la API. La aplicación Evolve debe configurarse para habilitar la autenticación basada en certificados según los siguientes detalles:
-
Necesita un certificado de la entidad emisora raíz y certificados de cliente. El certificado de la entidad emisora raíz debe haber emitido los certificados de cliente.
-
Instale el certificado raíz en la ubicación de las entidades de certificación raíz de confianza en el equipo local de Evolve Server.
-
Instale el certificado de cliente en el equipo cliente y envíe dicho certificado de cliente al hacer la llamada a la API de extensión de procesos.
El usuario puede marcar o desmarcar la casilla Valide el nombre de la máquina del cliente. Si está marcada, el nombre del certificado de cliente debe coincidir con el nombre del equipo cliente.
Cómo solucionar un error «RequestEntityTooLarge» con la API externa mientras se inicia con la autenticación de certificados:
-
Seleccione el sitio en Sitio web predeterminado.
-
Seleccione Editor de configuración.
-
En la lista desplegable Sección, seleccione «system.webServer/serverRuntime».
-
Indique un valor mayor para «uploadReadAheadSize», por ejemplo, 1048576 bytes. El valor predeterminado es 49152 bytes.