TsgcWSAPIServer_WebAuthn

Solo OpenSSL 3.

Introducción

El componente TsgcWSAPIServer_WebAuthn ofrece una solución sencilla pero potente para implementar el servidor de parte confiante WebAuthn, habilitando la autenticación sin contraseña en su aplicación web. Una aplicación WebAuthn consta de un servidor WebAuthn que gestiona el registro y la autenticación del lado del servidor, y una aplicación del lado del cliente que normalmente es una aplicación JavaScript.

 

WebAuthn requiere el uso de conexiones seguras (SSL/TLS), por lo que las bibliotecas OpenSSL deben desplegarse y configurarse con el servidor.

 

Solo se admite la API de OpenSSL 3.0.0+, por lo que las versiones anteriores de OpenSSL pueden no funcionar.

 

Configuración

 

El TsgcWSAPIServer_WebAuthn debe asociarse a un servidor HTTP, TsgcWebSocketHTTP_Server o TsgcWebSocketServer_HTTPAPI, mediante la propiedad Server. Puede configurar los endpoints del servidor que gestionarán el registro y las opciones de autenticación, así como las opciones de WebAuthn como los algoritmos admitidos, los orígenes y más.

 

Opciones de Endpoints

Aquí puede configurar los endpoints del servidor que gestionarán las solicitudes HTTP/JavaScript para usar WebAuthn como autenticador. El componente ya está configurado con endpoints predeterminados, pero puede cambiarlos todos para adaptarlos a sus necesidades.

 

 

Ejemplo: si su servidor escucha en el dominio www.test.com, la solicitud de opciones de autenticación por defecto será http://www.test.com/sgcWebAuthn/Authentication/Options

 

Opciones de WebAuthn

En esta propiedad puede configurar las opciones principales del componente servidor WebAuthn.

 

 

WebAuthn utiliza orígenes para aplicar restricciones de política del mismo origen, que son esenciales para prevenir ataques de phishing y entre sitios. Durante los procesos de registro y autenticación de WebAuthn, el origen es validado estrictamente por el navegador y el autenticador.

 

 

 

En WebAuthn, crossOrigin es un parámetro booleano que indica si la operación WebAuthn se está realizando desde un contexto de origen cruzado, como un iframe incrustado desde un origen diferente al del contexto de navegación de nivel superior.

Este parámetro fue introducido para ayudar a los navegadores y autenticadores a gestionar de forma segura las solicitudes de autenticación en entornos integrados, un escenario común en las aplicaciones web modernas.

 

 

WebAuthn admite una variedad de algoritmos criptográficos para la generación y verificación de credenciales de clave pública. Estos algoritmos se utilizan durante el registro de credenciales (con navigator.credentials.create()) y la autenticación (con navigator.credentials.get()), y garantizan la firma y validación seguras de los desafíos mediante pares de claves asimétricas. El servidor está configurado de forma predeterminada con ES256 y RS256, que son los algoritmos más comunes. Puede cambiar en cualquier momento qué algoritmos son compatibles desde la propiedad Algorithms. Se admiten los siguientes algoritmos:

 

 

En WebAuthn, la attestation es un mecanismo opcional que permite al autenticador (p. ej., dispositivo o clave de seguridad) proporcionar información sobre su fabricante, modelo y características de seguridad durante la creación de credenciales. Esta información ayuda a la Parte Confiante (RP) a decidir si confiar en el autenticador.

 

Los distintos formatos de attestation definen cómo se estructuran y verifican estos datos. Tres formatos de uso frecuente son android-key, packed y otros como fido-u2f, apple o none. De forma predeterminada, todos los formatos de attestation están habilitados. A continuación puede encontrar la lista de formatos de attestation admitidos:

 

 

 

 

 

 

 

En la API de WebAuthn, AllowCredentials es un campo opcional utilizado durante el proceso de autenticación (a través de navigator.credentials.get()). Especifica una lista de IDs de credenciales que tienen permiso para autenticar al usuario para una Parte Confiante (RP) particular. Este mecanismo permite a la RP controlar qué credenciales se consideran válidas para un intento de inicio de sesión. La propiedad credentials tiene los siguientes campos:

 

 

 

 

Protocolo WebAuthn

 

 

 

 

 

Referencia