Bonjour,

Dans le cadre d'une application Extranet, je souhaite déléguer la gestion des droits à LDAP.

Ainsi, dans mon application, l'utilisateur se connecte via un accès réseau local (ou VPN) avec son identifiant Windows, et automatiquement, sans autre intervention de sa part, il doit être identifié dans l'application.

Mon architecture est la suivante :
- IIS pour héberger des web services WCF
- SQL Server avec une authentification Windows
- Une application WinForms (ou WPF) consommant le Web Service

Jusqu'à présente, je sais simplement activer l'emprunt d'identité dans IIS pour que le process ASPX utilie l'identité Windows du visiteur : s'il est dans le réseau, c'est son login d'ouverture de session qui est utilisé, et s'il n'est pas dans le même réseau que IIS, alors une invite système lui demande de s'authentifier avec un compte du domaine avant de le laisser accéder au site.
Ensuite, le process de IIS utilise les informations de connexion de l'utilisateur pour accéder aux ressources sur le serveur IIS et le réseau.
Le gros avantage étant donc que je n'ai pas à me soucier :
- De la gestion des mots de passe
- De l'activation/désactivation des comptes des personnes qui arrivent/partent dans l'entreprise
- De la sécurité de l'authentification
- Vu qu'ensuite IIS se connecte avec le compte de l'utilisateur dans SQL Server, je n'ai pas besoin de stocker les utilisateurs dans la base, SQL Server peut déterminer leur compte Windows ainsi que les groupes dont ils sont membres nativement en interrogeant LDAP

Bref, beaucoup de travail en moins et une sécurité accrue, selon moi.

J'ai donc désiré créer un WebService WCF selon la même méthode.
Premier hic : de base, dès qu'on désactive l'authentification anonyme dans IIS et qu'on active l'emprunt d'identité avec authentification Windows, WCF comment à partir en délire (le binding n'est pas bon, le behavior va pas, le identity bidule est pas d'accord... galère)
Second hic (une fois que les premières galères sont passée et qu'on arrive à afficher le WSDL dans un navigateur) : mon application WinForms n'arrive pas à s'authentifier ! J'ai des messages on ne peut plus obscures, et à chaque fois qu'on parle d'impersonate à Google, on obtient des résultats pour gérer l'emprunt d'identité :
- à la méthode
- avec des crédits en dur
- bref, tout ce qui peut exister sauf ce que je veux !

Une petite idée de comment configurer IIS pour qu'il accepte d'impersonifier mon service WCF, et quels paramètres donner à ma classe auto-générée (ou quelle modification y apporter) pour qu'elle accepte de se connecter au serveur distant en utilisant dans un premier temps le compte courant de l'application, et dans un second temps un login/pass saisi dans une form si on n'est pas dans le même domaine ?