2010-04-06 8 views
0

J'ai un service Web WCF et je souhaite utiliser l'authentification de base. Je me perds dans les options d'authentification:Paramètres d'authentification dans le Gestionnaire des services Internet par rapport à web.config par rapport à system.serviceModel

  • Dans IIS 6 Manager, je peux accéder aux propriétés du site Web et définir les options d'authentification.
  • Dans le fichier web.config du site Web, sous system.web, il y a une balise <authentication mode="Windows"/>
  • Dans le fichier web.config du site Web, sous system.serviceModel, je peux configurer:

     
    <wsHttpBinding> 
        <binding name="MyBinding"> 
        <security mode="Transport"> 
         <transport clientCredentialType="Basic"/> 
        </security> 
        </binding> 
    </wsHttpBinding> 
    

Quelle est la différence entre ces trois? Comment devraient-ils être configurés?

Un contexte: J'ai un projet de site Web simple qui contient un seul service Web .svc, et je veux qu'il utilise l'authentification de base sur SSL. (En outre, je ne veux pas utiliser les comptes Windows, mais c'est peut-être une autre question.)

Répondre

1

Les deux premiers sont vraiment sur l'accès à un répertoire virtuel ou une application virtuelle ASP.NET dans IIS6 - qui n'a fondamentalement rien à voir avec WCF (WCF n'est en fait pas partie ou dépend de ASP.NET). Les paramètres contrôlent la façon dont la requête HTTP entrant dans le serveur Web IIS6 est traitée en termes d'authentification. Cela permet essentiellement de savoir si les appelants anonymes d'Internet peuvent simplement appeler sans s'authentifier ou s'ils doivent entrer un nom d'utilisateur/mot de passe ou si seuls les appelants ayant une identité Windows valide dans ce domaine sont autorisés.

La seule raison est intéressant pour votre service WCF est le fait que lorsque vous hébergez le service WCF dans IIS (seulement une des nombreuses options), alors vous avez un fichier (myservice).svc qui doit résider dans un répertoire virtuel. Bien sûr, l'accès à ce fichier SVC est contrôlé par les paramètres d'authentification de IIS6/ASP.NET.

Le mode de sécurité à l'intérieur de la section <wsHttpBinding> est la définition liée à la sécurité de la façon dont le service WCF communiquera avec ses clients. Mode = moyen de transport, vous sécurisez la couche de transport réelle - généralement en utilisant SSL - et non chaque message séparément.Ce paramètre fonctionne très bien dans les scénarios Intranet où vous avez tous les clients derrière un pare-feu d'entreprise, mais cela ne fonctionnera pas très bien dans les scénarios Internet, car vous ne pouvez pas contrôler entièrement la chaîne depuis le client (n'importe où sur cette planète). série de sauts intermédiaires à votre serveur - vous ne pouvez pas. Dans ce cas, vous devrez utiliser Mode = Message qui chiffre et signe chaque message qui passe par les fils - cela fonctionne sur n'importe quel nombre de routeurs et de relais le long du chemin du point d'origine à votre serveur.

+0

Cela a clarifié quelques choses pour moi. Cependant, je ne suis pas sûr de votre dernier point: je pensais que Mode = Transport signifiait SSL, et SSL fonctionne parfaitement sur les routeurs Internet. Quoi qu'il en soit, j'ai fini par désactiver l'authentification IIS et WCF, et j'ai utilisé http://custombasicauth.codeplex.com pour implémenter l'authentification de base personnalisée. –

0

Les deux premiers sont liés, s'ils ne correspondent pas à votre service ne sera pas en mesure d'activer. Si vous choisissez l'authentification Windows, il est évident que vous serez lié à un domaine Windows ou à une machine locale.

Étant donné que vous allez effectuer une authentification de base SSL, vous allez définir cette option sur Aucun, puis configurer votre sécurité de transport.

Your one stop shop for setting up transport + basic authentication

MSDN Article on Transport+Username + Windows Forms

Je ne sais pas si vous êtes encore décidé comment vous allez faire de la sécurité mais je vous recommande de penser à utiliser la sécurité des messages par rapport au transport (biais personnels vers la sécurité des messages) ..

Transport vs Message Comparison

Patterns & Practices on Message and Transport Security

Questions connexes