About the basics security measures that any developer should use when creating REST API's in ASP.NET Core. It focuses on authentication with JWT (Spanish).
base a sesiones, API’s deben ser stateless. • API’s tienen distintos tipos de clientes, el cliente en el caso de las aplicaciones es el navegador; móvil o de escritorio. • API’s interactúan con servicios además de interactuar con usuarios.
SSL/TLS: Conexión privada lo que asegura integridad en los mensajes de la comunicación. • ¿Que hay de malo en usar [RequireHttps]? • Rechazar todas las conexiones no seguras • Respuesta con un código de error HTTP • ¿Y qué pasa con HSTS (Strict Transport Security)?
Cookie based authentication es stateful, por lo cual no se recomienda para una RESTful API. • Basic Authentication: Debe usarse únicamente en conjunto con SSL y en los casos en lo que la seguridad no sea algo demasiado crítico o no se tenga otra opción. Recomendable para accesos en intranets o para aplicaciones de IoT. • Third party o Middleware • JWT Tokens: Son stateless, cada token es “self-contained”, permite almacenar cualquier tipo de metadatos en un formato json válido. • Multi-Factor Authentication
contiene: Metadata del tipo de JWT y el algoritmo hash utilizado para encriptar los datos. • Payload: Objeto Json con los datos que se compartirán entre la fuente y el destino, encriptados en base-64. • Signature: Sirve para verificar la integridad de los datos basado en los dos datos anteriores además de una llave secreta que se mantiene del lado del server. [X=base64(header)].[Y=base64(payload)].[signature([X].[Y])]