2010-02-15 17 views
0

Je cours un service Web asp .net sur IIS7. Ce dernier est exécuté sur un serveur Windows 2008 R2. IIS7/le service Web est configuré pour l'emprunt d'identité asp .net. Le propriétaire du processus de travail est défini sur SERVICE RÉSEAU.Processus impersonalisé ne se connectera pas à Oracle avec l'authentification Windows

Le service Web appelle sqlplus.exe dont l'identité a été empruntée par son compte de domaine sur le serveur. Je peux voir cela à travers le gestionnaire de tâches. Cependant, lorsque sqlplus est démarré, Oracle indique que le nom d'utilisateur/mot de passe est incorrect.

sqlplus.exe est démarré comme suit: sqlplu.exe /. Cela fonctionne très bien si je me connecte manuellement sur le serveur avec le compte d'utilisateur et tapez la déclaration ci-dessus, tout fonctionne bien

+0

cette réponse à votre question? Si c'est le cas, assurez-vous de le marquer comme répondu afin que le reste d'entre nous sache que cela a réglé le problème. – Ehryk

Répondre

3

Je crois que vous rencontrez le problème "double saut" ici.

Votre premier saut utilise l'usurpation d'identité de l'ordinateur du client vers le serveur Web. Le second saut va du serveur Web à votre serveur de base de données, où vous tentez de transmettre ces mêmes informations d'identification à la base de données. Lorsque vous vous connectez et exécutez manuellement l'instruction sqlplus, il ne s'agit que d'un seul saut entre le serveur Web et le serveur de base de données.

Ce qui suit est cité de MSDN. Notez la recommandation d'utiliser l'authentification de base du client sur le serveur Web.

La question de la double-hop se produit lorsque la page ASPX tente d'utiliser les ressources situées sur un serveur qui est différent du serveur IIS. Dans notre cas, le premier «saut» provient du navigateur Web client vers la page IIS ASPX; le deuxième saut est à Active Directory. Active Directory requiert un jeton principal . Par conséquent, le serveur IIS doit connaître le mot de passe pour le client à passer un jeton principal à Active Directory . Si le serveur IIS a un jeton secondaire , les informations d'identification NTAUTHORITY \ ANONYMOUS sont utilisées. Ce compte est pas un compte de domaine et a très accès limité à Active Directory.

Le double-hop en utilisant un jeton secondaire se produit, par exemple, lorsque le navigateur client est authentifié à la page ASPX IIS en utilisant l'authentification NTLM . Dans cet exemple, le serveur IIS a une version hachée du mot de passe suite à l'utilisation de NTLM. Si IIS se retourne et transmet les informations d'identification à Active Directory, IIS transmet un mot de passe haché. Active Le répertoire ne peut pas vérifier le mot de passe de sorte qu'il utilise NTAUTHORITY \ ANONYMOUS LOGON pour l'authentification.

Si votre navigateur client utilise l'authentification de base pour authentifier la la page ASPX IIS, le serveur IIS a le mot de passe de client et peut faire un jeton primaire pour passer à Active Directory. Active Directory peut vérifier le mot de passe et authentifier l'utilisateur du domaine .

http://msdn.microsoft.com/en-us/library/ms817871.aspx

+0

Jason, merci beaucoup de m'avoir fourni ça. Je ne suis pas sûr que cela fonctionnera, mais c'est sûrement une lumière au bout du tunnel. Je vais regarder dans l'article et travailler plus loin sur mon code pour voir si cela fait l'affaire. Merci encore. – Supaplex