Hibernate authentification sans mot de passe stockés en clair

Mon objectif est de s'authentifier auprès de la base de données à l'aide de JDBC/Hibernate de manière sécurisée, sans stocker les mots de passe en texte clair. Les exemples de Code apprécié. Je suis déjà à l'aide de gaufre pour authentifier l'utilisateur, donc si il y avait moyen d'utiliser les informations d'identification que la gaufre obtenus à partir de l'utilisateur, et avant ceux de la DB, ce serait bien.

Deux questions:

  1. Quelle est la méthode recommandée pour multi-hop d'authentification (le client, le serveur web et la base de données sont toutes différentes machines) avec tomcat/hibernate/spring sur le serveur web, une base de données sql, et bien évidemment navigateur client?
  2. Je voudrais également vous contenter d'une manière d'utiliser un seul compte d'utilisateur pour faire de l'authentification, tant que l'utilisateur du compte de l'information n'a pas été stocké dans la plaine du texte n'importe où. Le compte d'utilisateur aurez besoin de privilèges de lecture/écriture sur la DB.

J'ai trouvé quelques informations utiles à propos de la connexion à SQL Server dans ce fil. Toutefois, je m'attends à ce que Tomcat s'exécuter sous le compte par défaut, qui est comme l', le Système Local ou quelque chose. Autant que je sache, ce compte ne peut pas être utilisé pour faire de l'authentification windows à la base de données.

Ma solution:

J'ai fini à l'aide de l'approche mentionné dans le fil au-dessus. Au lieu d'exécuter le service Tomcat en tant que Système Local, il est maintenant en cours d'exécution en tant qu'utilisateur. Cet utilisateur a l'autorisation d'accéder à la base de données. Mon fichier de configuration hibernate est configuré comme suit:

    <property name="hibernate.connection.url">
jdbc:sqlserver://system:port;databaseName=myDb;integratedSecurity=true;
</property>

À ceux qui ont fourni des réponses

Je remercie à l'avance de l'aide et je vais essayer quelques techniques mentionnées dans le fil. Mon problème avec certaines des réponses est qu'elles nécessitent de chiffrement symétrique qui nécessite une clé secrète. En gardant le secret de la clé est presque exactement le même problème que pour stocker le mot de passe en texte clair.

InformationsquelleAutor KyleM | 2011-04-21