0

en ce moment je l'architecture suivante construit avec asp classique et visual basic 6java usurpation d'identité pour se connecter au serveur SQL en utilisant l'authentification Windows

J'ai un composant COM + développé en VB6 qui se connecte au dabatase. J'ai mis le DB conf à travers un fichier .udl configuré avec la sécurité intégrée.

Sur le serveur Web (IIS) J'enregistre le componente avec le com + gestionnaire, et le configurer pour être exécuté sous un nom de compte, quelque chose comme mydomain \ appAccount ...

en sql 2005 Je donne approprié au niveau permissions du mydomain \ appAccount

de asp, je viens d'utiliser le composant avec Server.CreateObject ...

Je voudrais développer une solution similaire avec java, la question (s) est (sont) le suivant:

est-il p ossible?

comment puis-je configurer un compte de domaine pour se connecter à un serveur sql 2005 db?

où dois-je stocker le db conf? et où dois-je configurer le compte de domaine? dans la configuration de tomcat/jetée?

Je voudrais que la solution soit aussi simple et directe que possible (je suis en train d'éviter des choses comme GlassFish ou jboss)

bien

, merci beaucoup ...

Répondre

1

Ce que vous devez faire est de vous assurer que le processus JVM Tomcat est en cours d'exécution par l'utilisateur avec la connexion sécurisée à la base de données.

Ensuite, vous devrez configurer la source de données dans Tomcat, par Bhushan's answer.

Voici les détails de l'article MSDN comment vous configurez la source de données pour utiliser la sécurité intégrée:

+0

merci beaucoup, je ne pouvais toujours pas accepter une réponse parce que je n'ai pas le temps de l'essayer, mais j'espère que je peux le faire très bientôt ... – opensas

1

C'est donc un vrai problème difficile, et je vais par la même problèmes en ce moment. Je n'ai pas encore résolu l'usurpation d'identité au sein d'un serveur d'applications, mais mon équipe se rapproche.

Jusqu'ici, nous avons réussi à authentifier un utilisateur par rapport à un contrôleur de domaine avec Kerberos. Les deux sources SourceForge SPNEGO et Spring Security Kerberos ont été très utiles à cet égard. Nous avons également réussi à usurper l'identité du processus exécutant une application Java lors de la connexion à SQL Server. Le véritable problème est l'emprunt d'identité par délégation, car il vous oblige à obtenir un ticket Kerberos pouvant être délégué à un autre service. C'est le problème sur lequel nous travaillons actuellement.

Si vous voulez emprunter l'identité d'un utilisateur dans SQL Server, vous devez le faire en utilisant NTLM ou Kerberos. Kerberos offre la meilleure sécurité, et pour être honnête, nous n'avons même pas pris la peine d'essayer NTLM. Il y a deux pilotes JDBC (que je connais) qui vous permettront de vous connecter à SQL Server en utilisant un compte de domaine: jTDS et DataDirect JDBC.jTDS est un pilote JDBC de type 2, ce qui signifie qu'il s'appuie sur une bibliothèque native pour récupérer les informations d'identification de l'utilisateur. jTDS ne fera qu'emprunter l'identité de l'utilisateur qui exécute le processus et ne vous autorisera pas à emprunter l'identité d'autres comptes (il ne peut également le faire que sous Windows). Le pilote DataDirect (Commercial) est un pilote de type 4, ce qui signifie qu'il s'agit d'une implémentation Java pure (et fonctionnera sur * nix). C'est le conducteur que nous utilisons et c'est très bien.

Si je trouve une solution qui fonctionne, je vais la poster parce que je pense que beaucoup de gens dans la communauté souffrent de ce problème.

Bonne chance!

+0

merci beaucoup richard, lookin fordward pour votre poste ... – opensas

Questions connexes