Nous avons une application client et service WCF (Windows Communication Foundation). Nous utilisons l'authentification Windows avec Kerberos. Le problème est que le service peut être exécuté sous l'un des nombreux comptes (peut-être le service réseau, peut-être un compte utilisateur spécifique) dépend du groupe informatique. Ce compte n'est pas susceptible de changer tous les jours, mais peut-être à l'occasion (tous les quelques mois peut-être). De plus, nous livrons ce package client/service à plusieurs groupes, et chaque groupe peut avoir son propre compte pour l'exécution du service (pour vous informer que nous ne pouvons pas faire de solution personnalisée pour une seule équipe).). Maintenant, la raison pour laquelle le paragraphe ci-dessus est un problème est apparemment si le service ne fonctionne pas dans le compte SYSTEM ou NETWORK SERVICE, c'est-à-dire un compte d'utilisateur, le client doit spécifier le nom du compte utilisateur dans l'identité de son point final.Modèle pour les clients WCF Kerberos où le serveur utilise le compte utilisateur
Pour en savoir plus sur cette restriction, voir: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/feb6bc31-9a4b-4f8d-a887-ef6d2c7abe41 et http://www.vistax64.com/indigo/146204-using-localhost-v-s-environment-machinename.html
Maintenant, cela fait apparemment qu'il est difficile de faire face à la situation dans laquelle le service informatique change le compte que le service est exécuté. Quel est le modèle pour gérer cela, s'il y en a un? Comment d'autres personnes ont-elles géré cela? Une solution que j'ai pensée est que l'administrateur envoie un email quand le compte d'utilisateur du service a changé, qui a un weblink à une application qui met à jour le client ou un fichier de configuration, ainsi le client se rapporte au nouveau compte d'utilisateur . Mais cela semble hackish.
Certes, cela ressemble beaucoup à l'URI du point final mobile. Sauf que je pense qu'il y a beaucoup plus d'attente de la part des gens que changer l'URI est quelque chose que le client devrait savoir, mais changer le compte sur lequel le service fonctionne est quelque chose qui devrait être relativement transparent pour le client.
BTW, cela doit être hébergé sur IIS 7.0, si cela est important.
Merci Remus. Cela semble bon. Je vais examiner vos liens et vos méthodes et voir s'ils font le travail. Merci encore! –
Je suis assez sûr que cela devrait fonctionner, voir ma dernière mise à jour. –
Cela semble fonctionner! Bien que je vois un comportement étrange. Ce que j'ai fait est allé au serveur AD et a couru setspn et a associé un spn arbitraire avec le compte d'utilisateur.Puis j'ai exposé ce SPN du serveur et l'ai consommé du client. C'est très bien. Eh bien, j'ai essayé de changer le spn exposé sur le service, et j'ai essayé de consommer un spn aléatoire du client. Je pensais que cela devrait échouer. Eh bien maintenant, tant que je spécifie tout spn cela fonctionne. C'est dix fois mieux que l'état dans lequel j'étais auparavant, mais il serait intéressant de savoir quelle est la cause de ce comportement. Merci! –