Activez le contexte sécurisé dans vos applications pour améliorer la façon dont le
serveur d'applications interagit avec les serveurs de base de données DB2. Utilisez des connexions accréditées
pour conserver les enregistrements d'identité des clients qui se connectent à une base de données
DB2 via
vos applications. Les connexions accréditées peuvent fournir un environnement plus sécurisé
en accordant un accès en fonction de l'identité de ces utilisateurs. DB2 fournit une option pour les connexions accréditées nécessitant un mot de passe lors du changement de l'identité de l'utilisateur.
Vous pouvez configurer le serveur d'applications pour qu'il utilise les connexions accréditées avec l'authentification, puis insérer votre propre code pour profiter du contexte sécurisé avec l'authentification.
Avant de commencer
Consultez la rubrique relative à l'activation du contexte sécurisé des bases de données DB2 pour vous assurer que les connexions accréditées sont correctement configurées pour le serveur d'applications.
Pourquoi et quand exécuter cette tâche
Si l'option WITH AUTHENTICATION est spécifiée lors de la création du contexte sécurisé, la base de données nécessite que vous fournissiez un jeton d'authentification avec l'identité de l'utilisateur final. La base de données authentifie l'utilisateur final et vérifie qu'il est autorisé à accéder à la base de données avant que cette dernière ne permette le traitement des requêtes.
L'identité de l'utilisateur final doit être l'ID RACF.
Procédure
- Définissez la propriété personnalisée useTrustedContextWithAuthentication sur True pour la source de données DB2.
- Cliquez sur .
- Cliquez sur le nom de la source de données à configurer.
- Cliquez sur Propriétés personnalisées sous l'en-tête Propriétés
supplémentaires.
- Cliquez sur Nouveau.
- Renseignez les zones obligatoires. Utilisez les informations suivantes :
Name |
Valeur |
useTrustedContextWithAuthentication |
true |
Si la propriété personnalisée useTrustedContextWithAuthentication n'est pas définie sur True, le serveur d'applications fournit une implémentation de réutilisation des connexions accréditées de DB2 sans aucune authentification lors de la phase d'exécution. Dans ce cas, il est inutile de fournir quoi que ce soit pour utiliser la fonction du contexte sécurisé.
- Utilisez la configuration de connexion de TrustedConnectionMapping, décrite dans la rubrique relative à l'activation du contexte sécurisé des bases de données DB2.
- Développez la classe DataStoreHelper et implémentez la méthode getPasswordForUseWithTrustedContextWithAuthentication, telle que décrite dans la rubrique relative au développement d'une classe DataStoreHelper personnalisée. Lors de la phase d'exécution, le serveur d'applications appelle cette méthode pour renvoyer le mot de passe que le serveur d'applications doit utiliser pour modifier l'identité du contexte sécurisé après l'activation de ce contexte avec l'authentification. Le mot de passe renvoyé par cette méthode est envoyé à la base de données lorsque le serveur d'applications modifie les identités du contexte accrédité, et le mot de passe n'est pas stocké par le serveur d'applications.
Ce serveur d'applications appelle uniquement cette méthode si les conditions suivantes sont vérifiées :
- Vous définissez la propriété personnalisée de la source de données useTrustedContextWithAuthentication sur True.
- Vous utilisez la configuration de connexion TrustedConnectionMapping.
Voici un exemple de la méthode getPasswordForUseWithTrustedContextWithAuthentication :public String getPasswordForUseWithTrustedContextWithAuthentication(String identityname, String realm)
throws SQLException
{
return customersOwnUtility().getPassword(identityname) // Les clients utilisent leur propre
// implémentation pour obtenir le mot de passe
}
Eviter les incidents: Vous ne pouvez pas activer la propriété personnalisée useTrustedContextWithAuthentication de la source de données sans remplacer la méthode getPasswordForUseWithTrustedContextWithAuthentication dans la classe DataStoreHelper afin d'obtenir le mot de passe permettant de modifier l'identité des connexions accréditées. Si vous n'implémentez pas la méthode getPasswordForUseWithTrustedContextWithAuthentication, le serveur d'applications génère une exception avec le message suivant lors de la phase d'exécution :
TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR=DSRA7033E :
Vous ne pouvez pas activer la propriété personnalisée useTrustedContextWithAuthentication
de la source de données sans remplacer getPasswordForUseWithTrustedContextWithAuthentication
DataStoreHelper. TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR.explanation = La propriété personnalisée useTrustedContextWithAuthentication est activée, mais le code d'implémentation de la méthode DataStoreHelper qui renverra le mot de passe que le serveur d'applications utilisera pour modifier l'identité, n'est pas fourni. TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR.useraction = Remplacez
la méthode getPasswordForUseWithTrustedContextWithAuthentication DataStoreHelper
et fournissez le code d'implémentation qui renverra le mot de passe,
ou définissez la propriété personnalisée useTrustedContextWithAuthentication de la source de données
sur false.
gotcha