2009-07-02 10 views
5

Je dois limiter l'accès d'un service Web .asmx à des adresses IP spécifiques. Je pense que je pourrais ajouter un chèque codé en dur dans chaque méthode, mais cela semble être un cauchemar de maintenance de code. Y a-t-il une entrée de configuration Web que je peux faire, ou un paramètre IIS 6 que je peux appliquer au fichier .asmx?Limiter l'accès du service Web asmx à des adresses IP spécifiques

+0

Avez-vous accès au serveur? –

+0

Oui. Bien sûr. Il exécute IIS 6. – DMCS

+0

IIS prend en charge la limitation d'accès par adresse IP ainsi que d'autres choses. –

Répondre

9

Dans le Gestionnaire des services Internet (IIS) 6.0, cliquez avec le bouton droit sur le fichier .asmx. Accédez à l'onglet Sécurité du fichier et cliquez sur le bouton Modifier dans les restrictions Adresse IP et nom de domaine.

Cliquez sur le bouton radio 'Accès refusé', puis ajoutez vos adresses IP dans la liste blanche à la liste.

Pour IIS 7.5, c'est un peu délicat car le fichier n'apparaît pas dans le panneau de navigation. Vous devez accéder à l'onglet Affichage du contenu (dans la partie inférieure de la fenêtre), cliquez avec le bouton droit sur votre fichier et choisissez Passer à l'affichage des fonctionnalités. Ouvrez l'adresse IP et la restriction de domaine, cliquez sur Modifier les paramètres de la fonction et choisissez de refuser les hôtes non spécifiés. Vous pouvez maintenant ajouter des autorisations en cliquant sur Ajouter une entrée autorisée.

+2

Notez que la sécurité IP est une fonctionnalité qui n'est pas préinstallée sur Windows 7/IIS 7.5. Vous devrez l'ajouter: http://www.iis.net/configreference/system.webserver/security/ipsecurity/add – HarryTuttle

+0

Bonne prise .. Je n'ai pas réalisé que vous deviez l'ajouter séparément. – Moose

-1

Ajoutez une section personnalisée à votre fichier web.config, puis interrogez cette section pour la liste blanche des adresses IP.

+0

J'ai une section de stockage de configuration, mais encore une fois, je ne veux pas avoir à écrire la logique de vérification IP sur chaque méthode. Je cherche quelque chose de plus élégant. IIS, ou quelque chose comme FormsAuthentication, mais juste pour que ce fichier soit limité aux IP que je veux. – DMCS

+0

J'ai ajouté la méthode IIS dans une autre réponse, mais je m'en tiendrai à celle-ci .. Elle garde votre liste blanche dans web.config où plus de configuration de votre site est, et vous permet d'être plus flexible si vous voulez quelque chose de plus fantaisiste que la liste blanche ou liste noire. Je pense que ce serait la solution la plus élégante. En outre, la route de métadonnées IIS peut être perdue si quelqu'un modifie quelque chose dans l'arborescence et l'écrase. – Moose

+0

Le problème est le code dans chacun des appels de service Web qui est mauvais à maintenir et conservé dans tous les ajouts futurs au fichier .asmx par d'autres développeurs (qui, sans aucun doute, oublieront). La liste blanche dans IIS est la meilleure façon de rester simple, donc si des changements se produisent, un nouveau jeu de codes n'a pas besoin d'être envoyé par QA (processus coûteux en termes de temps et de ressources) puis redéployé (pas aussi cher comme QA, mais gaspille toujours le temps des gens). Donc, la chose à faire rapidement est de les garder dans la liste blanche IIS 6. :) – DMCS

Questions connexes