2009-05-27 4 views
0

J'ai configuré un service WCF qui utilise la sécurité du transport sur netTcpBinding. Le certificat utilisé pour la sécurité du service est signé par une autorité de certification que nous avons créée pour le développement.Confusion avec des services et des certificats avec un client anonyme

Quelqu'un peut-il expliquer comment cela fonctionne que mon client anonyme peut se connecter et communiquer avec le service sans avoir cette même autorité de certification installée localement? Je suis plutôt novice en matière de certificats et j'aurais supposé que l'autorité de certification devrait être installée localement pour que le client puisse déchiffrer les données du service.

Le service et le client sont tous les deux sur des machines Windows et le client est une application Windows Forms .NET 3.5.

Répondre

1

Eh bien, il y a deux parties à l'équation:

  • vous pourriez avoir un certificat de serveur que le service utilise pour s'authentifier auprès des clients (pour le prouver est vraiment le service qu'il prétend être)
  • vous pourriez avoir un certificat clientque le client a besoin de prouver son identité au serveur

qui vous intéressent? En règle générale, si vous avez un certificat de service/serveur, le client "connaîtra" la clé publique du serveur (il peut être installé dans le magasin de certificats du client, par exemple par un programme d'installation ou en le téléchargeant et l'installant). ou il s'enquiert du certificat du serveur au moment de la création du proxy et stocke la clé publique du serveur dans le fichier de configuration du client local pour une utilisation ultérieure. Cette configuration sera ensuite à nouveau installée avec l'application sur le client.

Si le client veut s'authentifier auprès du service, il devra certainement avoir son certificat client installé localement sur le magasin de certificats de la machine cliente.

Je vous recommande de consulter le WCF Security Guidance - c'est une excellente ressource, et ils peuvent expliquer comment faire certains scénarios beaucoup mieux que je peux!

Dans un environnement entièrement Windows avec tout le monde dans le même domaine, cela semble être un peu exagéré - pourquoi ne pas simplement utiliser les informations d'identification intégrées fournies par Windows? Ce serait beaucoup plus facile, je pense.

Marc

+0

Merci pour la réponse! Je devrais être clair que cela fonctionne actuellement, mais nous essayons de comprendre COMMENT puisque nous ne voyons pas notre CA sur le client du tout. Peut-être que ClickOnce l'ajoute à la config? Nous sommes intéressés par le certificat de serveur seulement. Le client est déployé via ClickOnce et l'utilisateur se connecte via notre application. Croyez-moi, je souhaite que nous pourrions utiliser les informations d'identification Windows. Malheureusement, beaucoup de nos sites/clients ne sont pas sur un domaine, et chaque terminal client peut héberger plusieurs utilisateurs tout au long de la journée qui sont connectés à Windows avec un seul utilisateur. – 80bower

Questions connexes