Hay dos opciones para el modo seguro al instalar SQL Server. La diferencia entre ellos es qué software realiza el proceso de autenticación. La autenticación es el proceso de confirmar la identidad de un usuario que se conecta a SQL Server. Una vez realizada la autenticación, SQL Server puede verificar que el usuario tiene permiso para conectarse a un recurso solicitado, como una base de datos. Si el usuario tiene permiso para conectarse a la base de datos, SQL Server permitirá que la solicitud de conexión se realice correctamente; de lo contrario, la conexión fallará. Este proceso de verificar el permiso del usuario también se llama autorización.
· La autenticación de Windows (también conocida como autenticación de confianza o seguridad integrada) utiliza la identidad del usuario de Windows que realiza la solicitud de conexión para realizar la autorización a la base de datos. En este caso, la cadena de conexión no tiene que proporcionar un nombre de usuario y contraseña explícitos. ASP.NET se ejecuta como un usuario local llamado "ASPNET" (o "Servicio de red" en IIS 6.0), por lo que cuando se utiliza la autenticación de Windows, SQL comprobará si este usuario tiene permiso para utilizar la base de datos. En este punto, todas las aplicaciones ASP.NET se ejecutan con este mismo usuario, por lo que el modo seguro las trata por igual. Aunque es posible ejecutar cada aplicación en un proceso ASP.NET separado (un usuario separado ejecuta cada aplicación), o suplantar la identidad de usuario de Windows del cliente del navegador que realiza la solicitud de conexión, estos están fuera del alcance de este libro. . Sin embargo, la suplantación de clientes es el uso más común de la autenticación de Windows en aplicaciones web.
· La autenticación SQL comprueba los nombres de usuario y contraseñas proporcionados explícitamente con los usuarios configurados en SQL Server (sin involucrar al sistema operativo). En este caso, cada aplicación que se ejecuta en el proceso ASP.NET puede conectarse a la base de datos con un certificado separado, aislando así razonablemente las aplicaciones (la aplicación A no podrá conectarse a la base de datos si no tiene el nombre de usuario y la contraseña de B) . No se puede conectar a la base de datos de B). Este es el modo de autenticación más común utilizado para aplicaciones web implementadas, especialmente en el caso de alojamiento compartido. Una pequeña desventaja es que requiere que la aplicación conserve la contraseña de la cuenta de usuario utilizada para conectarse, y si un usuario malintencionado obtiene esta contraseña, la seguridad de la base de datos se verá comprometida. Sin embargo, como verá más adelante en este libro, ASP.NET proporciona una manera segura de almacenar la contraseña de autenticación SQL en un formato cifrado en el archivo Web.config, reduciendo así el riesgo de que se obtenga la contraseña.
· El modo mixto es una configuración de SQL Server que permite tanto la autenticación de Windows como la autenticación de SQL.
Al instalar SQL Server o SSE, debe elegir un modo de autenticación. En SQL Server, hay un asistente que le ayudará a elegir durante los pasos de seguridad, mientras que en SSE, la opción predeterminada es Autenticación de Windows. Si desea instalar la autenticación SQL, debe configurarla explícitamente. Este artículo utiliza la autenticación de Windows.
Si ha instalado SQL Server o SSE, puede ver el modo de autenticación especificado abriendo RegEdit (por supuesto, primero debe hacer una copia de seguridad), busque HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server y busque LoginMode. Una subclave de registro con un valor de 1 representa la autenticación de Windows, mientras que un valor de 2 representa el modo de autenticación mixta.
La Tabla 3-1 resume las diferencias entre estos modos.
Tabla 3-1
Autenticación de Windows | Autenticación SQL | ||
nombre reemplazable | Autenticación de confianza Seguridad integrada | No, pero la autenticación de modo mixto permite el uso de autenticación de Windows o SQL. | |
la | lista | de | |
usuarios de Internet y procesos de | autenticación | . | |
instalación | predeterminada | de Windows SQL Serverrequiere especificar la | |
cadena de conexión | de instalaciónTrusted_connection=true o Seguridad integrada. =verdadero | usuario=nombre de usuario; contraseña=contraseña | |
Usuarios de aplicaciones web ASP.NET | Proceso ASP.NET, ASPNET (IIS 5.x) o Servicio de red (IIS 6) | Los usuarios de SQL | |
tienen la ventaja | de una mejor seguridad y pueden controlar los eventos de SQL del usuario y el seguimiento de la actividad deWindows | . | implementarse en la máquina host sin crear una nueva cuenta independientemente del sistema operativo; El sitio de intranet alojado solo requiere habilidades moderadas Proporciona una forma más flexible para que las aplicaciones se conecten a cada base de datos con diferentes certificados. |
Desventajas | Dar un certificado de Windows a una aplicación web tiene el potencial de establecer un alcance de permisos demasiado grande en el sistema operativo. | Las contraseñas se almacenan en la aplicación web (que no es la caso en autenticación de Windows). Confirme que la contraseña esté guardada en el archivo Web.config y cifrada. Permite operaciones de bajo nivel para aplicaciones web que utilizan certificados sa. Cree siempre nuevos certificados para aplicaciones web ASP.NET y otorgue solo los permisos necesarios |