Question

Remarque: à chaque étape décrite ci-dessous, je suis connecté avec le même compte d'utilisateur de domaine.

J'ai une application Web qui contrôle un service sur une machine distante (via ServiceController ). Lorsque je me connecte au site Web à distance et que je tente de contrôler le service, un message InvalidOperationException: Accès est refusé.

Je sais que cela PEUT fonctionner, car lorsque je me connecte au site Web à partir du serveur Web (poste de travail distant, connexion en tant qu'utilisateur de mon domaine, puis ouverture de la page Web), il fonctionne comme prévu.

J'ai configuré IIS et ASP.NET pour exiger l'authentification et l'emprunt d'identité Windows. Je consigne le principal du thread actuel en cas d'échec et je constate que le thread s'exécute sous mon identité, que je me connecte à distance ou à partir du serveur lui-même.

J'ai essayé de forcer IIS à utiliser l’authentification Kerberos, l’authentification NTLM et les deux en même temps; si mon principal indique son type d'authentification comme étant "Négocier" ou "NTLM" ça n'a pas d'importance. Aucun d’entre eux ne fonctionne lorsque je me connecte à distance (à partir de mon ordinateur local)

Une autre chose étrange à ce sujet est que si je suis en cours de débogage depuis ma machine locale / en cours de connexion au serveur distant, cela fonctionne à chaque fois! Mais je ne suis pas en train de déboguer, cela échoue à chaque fois!

Que diable pourrait-il se passer ici?

Était-ce utile?

La solution

Votre scénario est la délégation et non l'emprunt d'identité. La délégation est difficile à réaliser et dépend de nombreuses choses bien faites.

Vous pouvez commencer par authentification Kerberos et résolution des problèmes de délégation

. Le

le blog de David Wang est une ressource très utile sur un nombre de milliers de questions.

Autres conseils

"Une autre chose étrange à ce sujet est que si je débogue à partir de ma machine locale / que je me connecte au serveur distant, cela fonctionne à chaque fois! Mais je ne suis pas en train de déboguer, cela échoue à chaque fois! "

Cela indique clairement que vous avez des problèmes d'autorisation. Lorsque vous exécutez le débogueur que vous exécutez en tant qu'utilisateur connecté, il ne s'exécute pas sous le débogage, quel que soit le paramètre défini par IIS (NETWORK SERVICE par défaut). Essayez de définir (temporairement!) L’option Activer l’accès anonyme en utilisant votre compte de domaine en tant qu’utilisateur et voyez si cela fonctionne. Si tel est le cas, cela signifie que votre IIS n’est pas configuré correctement pour emprunter l’emprunt d’emprunt d'identité (et il fonctionne probablement en tant que NETWORK SERVICE).

Les autorisations dans IIS peuvent être un peu c h pour ajuster correctement ... Bonne chance!

P / S: cela ressemble plus à une question d'administration réseau qu'à une question de programmation (voir https://stackoverflow.com/questions/321618/stackoverflow-is-for-programming-questions-here-are-some-better-forums-for-votre # 321756 )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top