Conexiones de confianza con DB2
Las conexiones de confianza permiten que el servidor de aplicaciones utilice los objetos de Contexto de confianza DB2 para establecer conexiones con un usuario cuyas credenciales son de confianza para el servidor DB2 para abrir la conexión. A través del establecimiento de un Contexto de confianza, este usuario tiene confianza para confirmar otras identidades de usuario en el servidor DB2 sin los gastos de reautenticación. Esto también amplía la seguridad de la base de datos DB2 eliminando la necesidad de asignar todos los privilegios a un solo usuario. La implementación de conexiones de confianza da como resultado la propagación de identidades de clientes mientras se aprovecha la agrupación de conexiones para eliminar la penalización de rendimiento de cerrar y reabrir conexiones con una identidad diferente.
Para reducir el coste importante de establecer nuevas conexiones, el gestor de conexiones mantiene una agrupación de conexiones en la que se realiza un seguimiento de cada conexión mediante la credencial utilizada originalmente para abrir la conexión. Cuando una aplicación necesita una conexión, el gestor de conexiones utiliza el objeto de credencial para que coincida con una conexión libre de la agrupación de conexiones. Si no hay ninguna conexión libre disponible y no se ha alcanzado aún el número máximo de conexiones, el gestor de agrupación de conexiones abre una nueva conexión mediante ese objeto de credencial. Esta correlación de conexión es la correlación de conexión por omisión utilizada por el servidor de aplicaciones y se conoce como una correlación de credencial "de varias a una", ya que la conexión se abre mediante el objeto de credencial en el sujeto, que normalmente no es el mismo que la identidad RunAs. Esta sencilla correlación permite la fácil agrupación de conexiones, pero la identidad de quien realiza la llamada no se propaga nunca al servidor de bases de datos.
Para propagar que el interlocutor se identifique en el servidor de bases de datos, puede conectarse a un módulo de inicio de sesión de JAAS (Java™ Authentication and Authorization Service). Utilizando este método correlacionaría la credencial de usuario del servidor de aplicaciones con la credencial de usuario adecuada para el reino de seguridad del servidor de bases de datos. Este enfoque mantiene la identidad de quien realiza la llamada, pero no utiliza la agrupación de conexiones.
Las conexiones de confianza se utilizan en lugar de la correlación por omisión o de una correlación JAAS para conectar con el origen de datos. Las conexiones de confianza dan soporte a la propagación de identidades de cliente y también pueden utilizar la agrupación de conexiones para reducir el coste sobre el rendimiento del cierre y la reapertura de conexiones con una identidad distinta. Las conexiones de confianza utilizan el objeto de contexto de confianza de DB2.
![[z/OS]](../images/ngzos.gif)
El uso de la conexión de confianza proporciona los puntos de conexión necesarios para dar soporte a la adición de su propia implementación segura del contexto de confianza de DB2. Las conexiones de confianza separan la identidad utilizada para establecer la conexión y la identidad que accede a los servicios del servidor de fondo. La conexión se establece por un usuario cuyas credenciales son de confianza para el servidor DB2 para abrir la conexión. A continuación, se acredita al mismo usuario para confirmar la identidad de los demás usuarios. Además, esta aserción ayuda a fortalecer la seguridad de la base de datos ya que elimina la necesidad de otorgar todos los privilegios a un único usuario.
Cuando la aplicación solicita una conexión a la base de datos, el gestor de conexiones puede buscar cualquier conexión de confianza inactiva y confirmar la identidad del usuario en el servidor de fondo. Todas las operaciones realizadas en el servidor de fondo provienen de la identidad de usuario confirmada. Puede que aún siga siendo necesaria la utilización de una correlación de identidad si el servidor de fondo utiliza un repositorio de usuarios distinto del repositorio de servidor de aplicaciones.
- Un objeto de principal de recurso que este asunto de recurso representa
- Un objeto PasswordCredential del conjunto de credenciales privadas
- Un objeto IdentityPrincipal en el conjunto de principales