Seguridad de SQL Server
Las cuentas y roles de SQL Server tienen un papel fundamental en la seguridad de Microsoft AppFabric 1.1 para Windows Server. AppFabric usa estas entidades de SQL Server para controlar el acceso a almacenes y tablas que contienen datos de operaciones de seguimiento, así como datos de control de estado relacionados con la persistencia de flujo de trabajo. AppFabric no ofrece herramientas para la administración de la seguridad de base de datos. Si desea crear cuentas y roles y ver, manipular y asignar los permisos adecuados a los objetos de base de datos, use las herramientas de ayuda que se incluyen con la instalación de la base de datos. Para SQL Server, use SQL Server Management Studio.
AppFabric usa los inicios de sesión y roles de SQL Server para administrar el acceso a activos como los almacenes de seguimiento y persistencia y los procedimientos almacenados. Se usan permisos para aplicar directivas de seguridad a tablas y procedimientos almacenados para determinar quién puede leer, escribir y realizar operaciones administrativas en los esquemas de seguimiento y persistencia. Cada esquema se protege mediante su propio grupo de directivas de seguridad.
Modos de autenticación de SQL Server y AppFabric
SQL Server ofrece dos métodos para proteger la autenticación en sus servidores de bases de datos AppFabric:
Autenticación de Windows. Modo de autenticación de Windows predeterminado. Es el más seguro para SQL Server. Si se configura el modo de autenticación de Windows, SQL Server usa la seguridad de Windows para validar la cuenta y la contraseña de la cuenta de usuario solicitante con el sistema operativo Windows.
Autenticación de SQL Server. Modo de autenticación de SQL Server. Su finalidad es ofrecer compatibilidad con versiones anteriores a aplicaciones y usuarios que necesiten acceso a SQL Server con una cuenta de usuario y contraseña específicas. Es el modo menos seguro.
Aunque AppFabric también funciona con la autenticación de SQL Server, no es recomendable pasar nombres de cuentas de usuario y contraseñas integradas en una cadena de conexión de un archivo de configuración. Se recomienda configurar SQL Server para que use el modo de autenticación de Windows y evitar el modo de autenticación de SQL Server.
Si necesita usar el modo de autenticación de SQL Server o si usa un proveedor distinto de SQL Server que requiere el almacenamiento de contraseñas en la cadena de conexión, es recomendable que use cadenas de conexión cifradas. AppFabric no puede procesar las secciones cifradas de un archivo de configuración, de modo que no podrá usar las herramientas de AppFabric para ver o agregar cadenas de conexión cifradas.
Si necesita proteger los archivos de configuración en un equipo con AppFabric cifrando partes de un archivo de configuración, use la herramienta de registro de IIS en ASP.NET (Aspnet_regiis.exe). Esta herramienta permite cifrar (opción -pe) cualquier sección crítica para la seguridad de un archivo de configuración fuera de la interfaz de usuario de AppFabric. Si más adelante necesita ver o modificar dicha sección, puede descifrarla mediante la opción –pd. Descifrar estas secciones permite verlas en las herramientas de AppFabric, aplicar cambios, guardar los cambios en el archivo de configuración y volver a cifrarlas usando la herramienta fuera de AppFabric. Para obtener más información, vea Herramienta de registro de IIS en ASP.NET (Aspnet_regiis.exe) (https://go.microsoft.com/fwlink/?LinkId=169163).
Inicios de sesión de SQL Server
Un inicio de sesión de SQL Server requiere una cuenta de usuario y contraseña para iniciar sesión en el equipo con SQL Server. En la terminología de seguridad de Windows, puede verlo como derecho de acceso o autenticación. SQL Server usa la autenticación integrada de Windows para identificar los principios de seguridad para el acceso o la administración de los recursos de la base de datos de AppFabric. Para conectar a SQL Server con la autenticación integrada de Windows, debe proporcionar la identidad de Windows con la que se ejecuta la aplicación. También debe estar seguro de que esta identidad dispone del acceso adecuado a la base de datos de SQL Server.
Para realizar acciones de configuración o funcionamiento sobre los esquemas o datos de la base de datos, la cuenta de inicio de sesión debe estar asignada a un rol de SQL Server con los permisos adecuados. Un rol de SQL Server funciona como un grupo de Windows. La asignación de una cuenta de inicio de sesión a un rol de SQL determina el control de dicha cuenta sobre las actividades administrativas y las operaciones en la base de datos. Una cuenta de inicio de sesión puede estar asignada a más de un rol de base de datos.
Estos inicios de sesión de SQL Server se crean al instalar AppFabric.
Nombre de inicio de sesión | Cuenta de Windows | Miembros de la función de la base de datos |
---|---|---|
AS_Administrators |
LOCALHOST\AS_Administrators |
|
AS_Observers |
LOCALHOST\AS_Observers |
|
IIS_IUSRS |
BUILTIN\IIS_IUSRS |
|
Roles de base de datos de SQL Server
SQL Server tiene tres tipos de roles de bases de datos: servidor, aplicación y base de datos. A fin de ofrecer una información exhaustiva, a continuación se describen detalladamente. AppFabric usa el modelo de rol de base de datos de forma exclusiva para la mayoría de su seguridad en SQL Server.
Rol de “servidor” de SQL Server. Un rol de “servidor” de SQL Server se define a nivel de servidor fuera de cualquier almacén. Los roles de SQL Server están predefinidos y su número y su contenido no se pueden modificar. Un ejemplo de rol de servidor común es sysadmin. Este rol ofrece a la cuenta de inicio de sesión un control total sobre todas las operaciones de la base de datos y la capacidad de realizar cualquier operación sobre los datos de SQL Server de cualquier almacén. El modelo de seguridad de AppFabric no usa ningún rol de servidor explícitamente.
Rol de “aplicación” de SQL Server. Los roles de aplicación satisfacen las necesidades de seguridad más complejas y personalizadas de una aplicación particular. Varias aplicaciones pueden usar un almacén con la necesidad común de proteger la seguridad de sus datos durante el acceso de una de las aplicaciones. El modelo de seguridad de AppFabric no usa roles de aplicación explícitamente.
Rol de “base de datos” de SQL Server. AppFabric usa el rol de base de datos de forma generalizada. Existen tres tipos de roles de base de datos: públicos, definidos por el usuario y fijos. A fin de ofrecer una información exhaustiva, a continuación se describen detalladamente. AppFabric usa el modelo de rol de base de datos definido por el usuario de forma exclusiva para gran parte de su seguridad en SQL Server.
Existen tres tipos de roles de base de datos de SQL Server:
Público. El rol de base de datos público contiene un permiso de acceso predeterminado para todos los usuarios de base de datos. Por lo tanto, todas las cuentas de inicio de sesión que se crean a través de AppFabric son miembros de este rol.
Fijo. Del mismo modo que los roles de “servidor” de SQL Server (por ejemplo, sysadmin), los roles de base de datos fijos no se pueden modificar. Al contrario de lo que sucede con los roles de servidor, que existen a nivel de servidor, los roles de base de datos existen a nivel de base de datos para cada almacén. Un ejemplo de rol de base de datos fijo es db_owner. Se pueden agregar o quitar cuentas de usuario de inicio de sesión de SQL Server a roles de base de datos fijos.
Definido por el usuario. AppFabric crea roles de base de datos definidos por el usuario específicos en blanco durante la instalación. El programa de instalación de AppFabric no inserta explícitamente ninguna cuenta de Windows o cuenta de inicio de sesión de SQL Server en los roles de base de datos definidos por el usuario. Para agregar cuentas, es necesario usar las herramientas de administración de SQL Server.
AppFabric usa roles de base de datos de SQL Server para controlar el acceso a sus almacenes de datos de seguimiento y persistencia. Cuando se inicia un nuevo almacén de datos de seguimiento o persistencia de AppFabric, se crean varios roles de seguridad de base de datos definidos por el usuario durante la instalación. La tabla siguiente muestra la asignación de estos roles a los inicios de sesión de SQL Server que se describen en la sección anterior.
Rol de SQL Server definido por el usuario | Esquema | Inicios de sesión asignados | Derechos |
---|---|---|---|
ASMonitoringDbAdmin |
Seguimiento |
AS_Administrators |
Escribir en la tabla de ensayo, leer en vistas de eventos e invocar procedimientos almacenados de purga y archivado |
ASMonitoringDbReader |
Seguimiento |
AS_Administrators y AS_Observers |
Leer en vistas de eventos |
ASMonitoringDbWriter |
Seguimiento |
AS_Administrators |
Escribir en la tabla de ensayo e invocar el procedimiento de importación |
Microsoft.ApplicationServer.DurableInstancing.WorkflowAdministrators |
Persistencia |
AS_Administrators |
Poner comandos de control en la cola de comandos del almacén |
System.Activities.DurableInstancing.InstanceStoreObservers |
Persistencia |
AS_Administrators y AS_Observers |
Leer en vistas de almacén de instancias |
System.Activities.DurableInstancing.InstanceStoreUsers |
Persistencia |
BUILTIN\IIS_IUSRS |
Invocar procedimientos almacenados que pertenecen a la persistencia |
Microsoft.ApplicationServer.DurableInstancing.WorkflowManagementServiceUsers |
Persistencia |
AS_Administrators |
Sacar los comandos de control de la cola de comandos del almacén |
System.Activities.DurableInstancing.WorkflowActivationUsers |
Persistencia |
AS_Administrators |
Consultar las instancias de flujo de trabajo que se pueden activar en el almacén de instancias |
Si usa Active Directory, es recomendable que diseñe sus roles de seguridad de AppFabric mediante cuentas de dominio para simplificar la seguridad entre varios equipos. Como administrador de AppFabric, puede usar Active Directory para crear explícitamente dos cuentas de grupo personalizadas para los roles de administrador y observador. Por ejemplo, puede llamarlas “DOMAIN\MyAppFabricAdmins” y “DOMAIN\MyAppFabricObservers”. A continuación, puede otorgar los permisos adecuados a ambos grupos en cada equipo agregando manualmente el grupo “DOMAIN\MyAppFabricAdmins” al grupo LOCALHOST\AS_Administrators y el grupo “DOMAIN\MyAppFabricObservers” al grupo LOCALHOST\AS_Observers. Servicio de recopilación de eventos y Servicio de administración de flujos de trabajo deben ejecutarse desde cuentas de dominio del grupo “DOMAIN\MyAppFabricAdmins”.
Seguridad Nota |
---|
Los cmdlets de AppFabric que usan SQL Server dependen de estos roles de base de datos de SQL Server para autenticar sus identidades durante la ejecución. |
Almacenamiento en bases de datos distintas de SQL Server
Los roles de base de datos de SQL Server son específicos de SQL Server. Sin embargo, si no usa el proveedor SQL Server predeterminado y decide crear su propio proveedor personalizado, puede asignar la funcionalidad de estos roles a su equivalente funcional del almacén distinto de SQL Server.
Para almacenes distintos de SQL Server, debe incluir un identificador de usuario y contraseña en una cadena de conexión para proteger el acceso al almacén. Aunque se pueden pasar identificadores de usuario y contraseñas en cadenas de conexión de un almacén, como sucede con la autenticación de SQL Server, no es recomendable. Si es la única opción disponible, asegúrese de seguir las prácticas de seguridad de .NET Framework y compruebe que las cadenas de conexión estén cifradas.
Nota
Si se usan cadenas de conexión cifradas, las aplicaciones de IIS asociadas se ejecutan correctamente. Sin embargo, en este caso, las herramientas del Administrador de IIS relacionadas no funcionan. Para usarlas, debe descifrar las cadenas de conexión, realizar cambios en la configuración mediante las herramientas de IIS y volver a cifrarlas.
2012-03-05