Absichern eines Web-Service

8

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?

    
Bullines 23.09.2008, 13:51
quelle

10 Antworten

3

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

    
Thomas Wagner 23.09.2008, 13:57
quelle
1

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.

    
ZombieSheep 23.09.2008 13:54
quelle
1

Ich würde eine Firewall-Regel festlegen, um den Zugriff auf eine Whitelist von IP-Adressen zu beschränken.

    
RB. 23.09.2008 13:55
quelle
1

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

    
blowdart 23.09.2008 13:55
quelle
1

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?

    
axel_c 23.09.2008 13:55
quelle
1

Ein einfaches HTTP-Modul funktioniert. Einfach Hardcode (oder von Config) die erlaubte IP / Host und alle anderen ablehnen.

    
leppie 23.09.2008 13:57
quelle
1

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.

    
Vic Boudolf 23.09.2008 14:10
quelle
0
___ answer121158 ___

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

    
___ answer121144 ___

Ich würde eine Firewall-Regel festlegen, um den Zugriff auf eine Whitelist von IP-Adressen zu beschränken.

    
___ qstntxt ___

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?

    
___ answer121141 ___

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.

    
___ qstnhdr ___ Absichern eines Web-Service ___ answer121157 ___

Ein einfaches HTTP-Modul funktioniert. Einfach Hardcode (oder von Config) die erlaubte IP / Host und alle anderen ablehnen.

    
___ answer121145 ___

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

    
___ antwort121150 ___

In diesem Moment fällt mir die IP-Filterung auf IIS ein. Schnell anzuwenden, sollte in Ihrem Szenario funktionieren.

    
___ answer121148 ___

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?

    
___ answer121230 ___

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.

    
___ tag123aspnet ___ ASP.NET ist ein Framework für die Entwicklung von Microsoft-Webanwendungen, mit dem Programmierer dynamische Websites, Webanwendungen und Webdienste erstellen können. Es ist nützlich, dieses Tag in Verbindung mit dem Typ des Projekttyps zu verwenden, z. [asp.net-mvc], [asp.net-webforms] oder [asp.net-web-api]. Verwenden Sie dieses Tag NICHT für Fragen zu ASP.NET Core - verwenden Sie stattdessen [asp.net-core]. ___ answer121172 ___

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.

    
___ answer121153 ___

TLS mit Kundenzertifikaten. Siehe Wikipedia-Eintrag , um loszulegen.

    
___ tag123webservices ___ Ein "Webservice" ist ein Softwaresystem, das Interoperabilität zwischen Maschine und Maschine über das World Wide Web unterstützt. ___ tag123security ___ Themen in Bezug auf Anwendungssicherheit und Angriffe auf Software. Bitte verwenden Sie dieses Tag nicht alleine, da dies zu Mehrdeutigkeiten führt. Wenn es sich bei Ihrer Frage nicht um ein spezielles Programmierproblem handelt, können Sie es stattdessen bei Information Security SE anfordern: https://security.stackexchange.com ___
ila 23.09.2008 13:55
quelle
0

TLS mit Kundenzertifikaten. Siehe Wikipedia-Eintrag , um loszulegen.

    
Hank Gay 23.09.2008 13:56
quelle
0

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.

    
Tom Ritter 23.09.2008 14:00
quelle

Tags und Links