In diesem Moment fällt mir die IP-Filterung auf IIS ein. Schnell anzuwenden, sollte in Ihrem Szenario funktionieren.
Ich habe einen Web-Service (ASMX) mit einigen Web-Methoden auf unserem Produktions-Webserver. Auf einem separaten internen Webserver (der nicht öffentlich zugänglich ist) habe ich eine andere Website, die die öffentlichen Webmethoden von ASMX verwendet. Wie können Sie den Webdienst am besten sichern, sodass nur der interne Webserver auf die Webdienste zugreifen kann, die auf dem öffentlich zugänglichen Webserver ausgeführt werden?
Eine der einfachsten Methoden besteht darin, Anmeldeinformationen im Soap-Header der Nachricht zu übergeben. Jeder Anruf übermittelt also die Informationen, die benötigt werden, um festzustellen, ob der Benutzer berechtigt ist. WSE macht das etwas einfacher, aber eine der prägnantesten Beschreibungen dieses Prozesses findet sich in Rocky Lhotkas Buch über Business Objects. Ich bekomme eine Menge Bücher von den Verlagen zu überprüfen und diese hatte die beste Erklärung
Angenommen, Sie haben keine Möglichkeit, WCF zu verwenden, würde ich WSE 3 (Web Service Enhancements) empfehlen. Sie können das Toolkit / SDK-Theme auf MS-Website
Um den Zugriff auf nur interne Computer einzuschränken (da ich denke, dass Ihre Frage gestellt wurde), habe ich eine separate Website in IIS eingerichtet und sie so eingerichtet, dass sie nur auf die interne IP-Adresse Ihres Servers antwortet.
Verwenden Sie die IIS-Verzeichnissicherheits-IP Adressbeschränkungen und beschränken Sie den Zugriff auf die IP-Adresse des internen Webservers.
Wenn Sie das nicht tun können, und Sie keinen Benutzernamen / Passwort für das Verzeichnis einrichten können, dann verwenden Sie WSE und fügen Sie einen Benutzernamen / Passwort in den Dienst, oder schauen Sie sich Zertifikate an, wenn Sie Spaß haben wollen > grinst
Wenn nur der interne Server auf die asmx-Dateien zugreift? Sie können sie in IIS unter einer separaten Website oder einem virtuellen Verzeichnis einrichten und dann einige IP-Einschränkungen für die Site festlegen. Gehen Sie in Eigenschaften unter Verzeichnissicherheit und dann auf "IP-Adresse und Domänennameneinschränkungen".
Auch für Passwörter ist WSE 3 die neue Lösung, aber ich habe eine einfache Methode in einem Buch von Apress namens "Pro ASP.NET 2.0 in C # 2005" Kapitel 34 gefunden. (Beachten Sie, die neuere Version von Dieses Buch lässt dieses Kapitel aus.) Der Abschnitt ist eine benutzerdefinierte ticketbasierte Authentifizierung.
Eine der einfachsten Methoden besteht darin, Anmeldeinformationen im Soap-Header der Nachricht zu übergeben. Jeder Anruf übermittelt also die Informationen, die benötigt werden, um festzustellen, ob der Benutzer berechtigt ist. WSE macht das etwas einfacher, aber eine der prägnantesten Beschreibungen dieses Prozesses findet sich in Rocky Lhotkas Buch über Business Objects. Ich bekomme eine Menge Bücher von den Verlagen zu überprüfen und diese hatte die beste Erklärung
Ich würde eine Firewall-Regel festlegen, um den Zugriff auf eine Whitelist von IP-Adressen zu beschränken.
Ich habe einen Web-Service (ASMX) mit einigen Web-Methoden auf unserem Produktions-Webserver. Auf einem separaten internen Webserver (der nicht öffentlich zugänglich ist) habe ich eine andere Website, die die öffentlichen Webmethoden von ASMX verwendet. Wie können Sie den Webdienst am besten sichern, sodass nur der interne Webserver auf die Webdienste zugreifen kann, die auf dem öffentlich zugänglichen Webserver ausgeführt werden?
Angenommen, Sie haben keine Möglichkeit, WCF zu verwenden, würde ich WSE 3 (Web Service Enhancements) empfehlen. Sie können das Toolkit / SDK-Theme auf MS-Website
Um den Zugriff auf nur interne Computer einzuschränken (da ich denke, dass Ihre Frage gestellt wurde), habe ich eine separate Website in IIS eingerichtet und sie so eingerichtet, dass sie nur auf die interne IP-Adresse Ihres Servers antwortet.
Ein einfaches HTTP-Modul funktioniert. Einfach Hardcode (oder von Config) die erlaubte IP / Host und alle anderen ablehnen.
Verwenden Sie die IIS-Verzeichnissicherheits-IP Adressbeschränkungen und beschränken Sie den Zugriff auf die IP-Adresse des internen Webservers.
Wenn Sie das nicht tun können, und Sie keinen Benutzernamen / Passwort für das Verzeichnis einrichten können, dann verwenden Sie WSE und fügen Sie einen Benutzernamen / Passwort in den Dienst, oder schauen Sie sich Zertifikate an, wenn Sie Spaß haben wollen > grinst
In diesem Moment fällt mir die IP-Filterung auf IIS ein. Schnell anzuwenden, sollte in Ihrem Szenario funktionieren.
Vielleicht habe ich das nicht richtig verstanden, aber warum sollten die Web-Methoden überhaupt öffentlich zugänglich gemacht werden, wenn sie nur vom internen Server konsumiert werden?
Wenn nur der interne Server auf die asmx-Dateien zugreift? Sie können sie in IIS unter einer separaten Website oder einem virtuellen Verzeichnis einrichten und dann einige IP-Einschränkungen für die Site festlegen. Gehen Sie in Eigenschaften unter Verzeichnissicherheit und dann auf "IP-Adresse und Domänennameneinschränkungen".
Auch für Passwörter ist WSE 3 die neue Lösung, aber ich habe eine einfache Methode in einem Buch von Apress namens "Pro ASP.NET 2.0 in C # 2005" Kapitel 34 gefunden. (Beachten Sie, die neuere Version von Dieses Buch lässt dieses Kapitel aus.) Der Abschnitt ist eine benutzerdefinierte ticketbasierte Authentifizierung.
Seien Sie sich bewusst, dass es Möglichkeiten gibt, IP-Adressen aufzulisten. Verstehen Sie mich nicht falsch, es ist eine großartige Idee, und Sie sollten es auf jeden Fall tun, aber wenn Ihr Budget / Ihre Ressourcen es erlauben, können Sie Ihr Bedrohungsmodell erweitern.
TLS mit Kundenzertifikaten. Siehe Wikipedia-Eintrag , um loszulegen.
TLS mit Kundenzertifikaten. Siehe Wikipedia-Eintrag , um loszulegen.
Seien Sie sich bewusst, dass es Möglichkeiten gibt, IP-Adressen aufzulisten. Verstehen Sie mich nicht falsch, es ist eine großartige Idee, und Sie sollten es auf jeden Fall tun, aber wenn Ihr Budget / Ihre Ressourcen es erlauben, können Sie Ihr Bedrohungsmodell erweitern.
Tags und Links asp.net security web-services