Compartir vía


Temas de seguridad de ASP.NET Core

ASP.NET Core permite a los desarrolladores configurar y administrar la seguridad. En la lista siguiente se proporcionan vínculos a temas de seguridad:

Estas características de seguridad permiten compilar aplicaciones de ASP.NET Core sólidas y seguras.

Para obtener cobertura de seguridad de Blazor, que agrega o reemplaza las instrucciones de este nodo, consulta Autenticación y autorización de ASP.NET Core Blazor y los demás artículos de Seguridad de Blazor y nodo de Identity.

Características de seguridad de ASP.NET Core

ASP.NET Core proporciona muchas herramientas y bibliotecas para proteger las aplicaciones ASP.NET Core, como proveedores de identity integrados y servicios de identity de terceros como Facebook, Twitter y LinkedIn. ASP.NET Core proporciona varios enfoques para almacenar secretos de aplicación.

Autenticación frente a Autorización

La autenticación es un proceso en el que un usuario proporciona credenciales que después se comparan con las almacenadas en un sistema operativo, base de datos, aplicación o recurso. Si coinciden, los usuarios se autentican correctamente y, después, pueden realizar las acciones para las que están autorizados durante un proceso de autorización. La autorización se refiere al proceso que determina las acciones que un usuario puede realizar.

La autenticación también se puede considerar una manera de entrar en un espacio (como un servidor, base de datos, aplicación o recurso) mientras que la autorización es qué acciones puede realizar el usuario en qué objetos de ese espacio (servidor, base de datos o aplicación).

Vulnerabilidades más comunes en software

ASP.NET Core y EF contienen características que ayudan a proteger las aplicaciones y evitar las infracciones de seguridad. La siguiente lista de vínculos le lleva a documentación en la que se detallan técnicas para evitar las vulnerabilidades de seguridad más comunes en las aplicaciones web:

Hay más vulnerabilidades que debe tener en cuenta. Para obtener más información, consulte otros artículos de la sección Seguridad e Identity de la tabla de contenido.

Flujos de autenticación seguros

Se recomienda usar la opción de autenticación segura más segura. En el caso de los servicios de Azure, la autenticación más segura es identidades administradas.

Evita la concesión de credenciales de contraseña de propietario del recurso, ya que:

  • Expone la contraseña del usuario al cliente.
  • Es un riesgo de seguridad considerable.
  • Solo se debe usar cuando no se puedan usar otros flujos de autenticación.

Las identidades administradas son una manera segura de autenticarse en los servicios sin necesidad de almacenar credenciales en el código, las variables de entorno o los archivos de configuración. Las identidades administradas están disponibles para los servicios de Azure y se pueden usar con Azure SQL, Azure Storage y otros servicios de Azure:

Cuando la aplicación se implementa en un servidor de prueba, se puede utilizar una variable de entorno para establecer la cadena de conexión en un servidor de base de datos de prueba. Para obtener más información, vea Configuración. Las variables de entorno se almacenan generalmente en texto sin formato y sin cifrar. Si la máquina o el proceso están en peligro, las partes que no son de confianza pueden acceder a las variables de entorno. Se recomienda usar variables de entorno para almacenar una cadena de conexión de producción, ya que no es el enfoque más seguro.

Directrices para los datos de configuración:

  • Nunca almacene contraseñas u otros datos confidenciales en el código del proveedor de configuración o en archivos de configuración de texto sin formato. Se puede usar la herramienta Administrador de secretos para almacenar secretos en desarrollo.
  • No use secretos de producción en los entornos de desarrollo o pruebas.
  • Especifique los secretos fuera del proyecto para que no se confirmen en un repositorio de código fuente de manera accidental.

Directrices para los datos de configuración:

  • Nunca almacene contraseñas u otros datos confidenciales en el código del proveedor de configuración o en archivos de configuración de texto sin formato. Se puede usar la herramienta Administrador de secretos para almacenar secretos en desarrollo.
  • No use secretos de producción en los entornos de desarrollo o pruebas.
  • Especifique los secretos fuera del proyecto para que no se confirmen en un repositorio de código fuente de manera accidental.

Para más información, vea:

Para obtener información sobre otros proveedores de nube, consulte:

Recursos adicionales