Habilite el contexto de confianza en las aplicaciones para mejorar cómo el
servidor de aplicaciones interactúa con servidores de aplicaciones DB2. Utilice conexiones de confianza para preservar los registros de identidad de los clientes
que se conectan a una base de datos DB2 mediante las aplicaciones; las conexiones de
confianza pueden proporcionar un entorno más seguro al otorgar acceso basado en la
identidad de esos usuarios. DB2
proporciona una opción para conexiones de confianza en la que se exige una contraseña
al cambiar de identidad de usuario.
Puede configurar el servidor de aplicaciones para
utilizar conexiones de confianza con autenticación y conectar código propio para sacar
partido del contexto de confianza con la autenticación.
Antes de empezar
Consulte el tema sobre la habilitación del contexto de confianza para bases de
datos DB2 a
fin de garantizar que las conexiones de confianza se configuren correctamente para el
servidor de aplicaciones.
Acerca de esta tarea
Si se especifica la opción WITH AUTHENTICATION al crear el contexto de
confianza, la base de datos exige que se proporcione una señal de autenticación con la
identidad del usuario final. La base de datos autentica el usuario final y verifica la
autorización del usuario final para acceder a la base de datos antes de que la base de
datos permita que se procese una solicitud.
La identidad del usuario final debe ser el ID de
RACF.
Procedimiento
- Establezca la propiedad useTrustedContextWithAuthentication en true para el
origen de datos DB2.
- Pulse .
- Pulse el nombre del origen de daos que desea configurar.
- Pulse Propiedades personalizadas en la cabecera
Propiedades adicionales.
- Pulse Nuevo.
- Cumplimente los campos necesarios. Utilice la información
siguiente:
Name |
Valor |
useTrustedContextWithAuthentication |
true |
Si la propiedad personalizada useTrustedContextWithAuthentication no se establece
en true, el servidor de aplicaciones proporcionará una implementación de reutilización de
las conexiones de confianza de DB2 sin autenticación en tiempo de ejecución. En tal caso, no tendrá
que proporcionar ningún dato para utilizar la característica de contexto de confianza.
- Utilice la configuración de inicio de sesión para TrustedConnectionMapping,
como se describe en el tema sobre habilitación del contexto de confianza para bases de datos DB2.
- Amplíe la clase DataStoreHelper y proporcione la implementación para el método
getPasswordForUseWithTrustedContextWithAuthentication, como se describe en el tema sobre
desarrollo de una clase DataStoreHelper personalizada. En tiempo de
ejecución, el servidor de aplicaciones llamará a este método para devolver la contraseña
que el servidor de aplicaciones debe utilizar para cambiar la identidad del contexto de
confianza cuando se ha habilitado el contexto de confianza con la autenticación. La
contraseña que devuelve este método se enviará a la base de datos cuando el servidor de
aplicaciones cambie las identidades de contexto de confianza y el servidor de
aplicaciones no almacenará la contraseña.
El servidor de aplicaciones sólo llama a
este método si se dan las condiciones siguientes:
- Se establece la propiedad personalizada de origen de datos useTrustedContextWithAuthentication en true.
- Se utiliza la configuración de inicio de sesión de TrustedConnectionMapping.
A continuación se muestra un ejemplo de método
getPasswordForUseWithTrustedContextWithAuthentication:
public String getPasswordForUseWithTrustedContextWithAuthentication(String identityname, String realm)
throws SQLException
{
return customersOwnUtility().getPassword(identityname) // los clientes usan su propia
// implementación para obtener la contraseña
}
Avoid trouble: No puede habilitar la propiedad
personalizada useTrustedContextWithAuthentication para el origen de datos sin sobregrabar
el método getPasswordForUseWithTrustedContextWithAuthentication en la clase
DataStoreHelper para obtener la contraseña para cambiar la identidad para conexiones de
confianza. Si no proporciona la implementación del método
getPasswordForUseWithTrustedContextWithAuthentication, el servidor de
aplicaciones generará una excepción con el mensaje siguiente en tiempo de
ejecución:
TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR=DSRA7033E: No puede
habilitar la propiedad personalizada useTrustedContextWithAuthentication para
el origen de datos sin sobrescribir
getPasswordForUseWithTrustedContextWithAuthentication DataStoreHelper. TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR.explanation=La propiedad
personalizada useTrustedContextWithAuthentication está habilitada, pero no se
ha proporcionado el código de implementación para el método DataStoreHelper que
devolverá la contraseña que el servidor de aplicaciones utilizará para conmutar
la identidad. TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR.useraction=Sobrescriba el
método getPasswordForUseWithTrustedContextWithAuthentication DataStoreHelper y
proporcione el código de implementación que devolverá la contraseña, o
establezca la propiedad personalizada useTrustedContextWithAuthentication para
el origen de datos en false.
gotcha