2009-07-17 8 views
5

Ich möchte meine Webdienste erstellen, die JSON-Daten unter Verwendung von RESTful-Architektur bereitstellen.Sichern von REST und JSON

Aber ich möchte nur meine eigenen Client-Apps, die von meinen Web-Services anfordern können.

Grundsätzlich enthalten meine Webdienste vertrauliche Daten, die nicht für den öffentlichen Verbrauch bestimmt sind, aber ich wollte sie so erstellen, dass ich viele verschiedene Client-Apps erstellen kann, die mit meinem Webdienst verbunden sind.

Würde mich über jede Idee dafür freuen, danke.

Antwort

5

Die Tatsache, dass es RESTful ist oder JSON verwendet, ist kein relevanter Faktor, wenn es um die Sicherung eines Webdienstes geht. Jeder Webservice müsste auf die gleiche Weise gesichert werden. Es gibt ein paar Dinge, die Sie tun sollten:

  1. Wenn möglich, hosten Sie nicht Ihren Webdienst im Internet. Wenn der Webdienst zum Beispiel im LAN Ihres Unternehmens gehostet wird, wird er nicht der öffentlichen Nutzung ausgesetzt, es sei denn, Sie haben ihn über Ihren Router ausdrücklich offengelegt.
  2. Richten Sie Authentifizierungs- und Autorisierungsregeln ein. Wenn Sie Ihren Webdienst in einer Windows-Domäne hosten, können Sie einfach die Windows-Authentifizierung verwenden und Regeln basierend auf Active Directory-Benutzern und -Gruppen einrichten. Andere Optionen sind die HTTP-Authentifizierung, die Clientzertifikatauthentifizierung oder, wenn Sie .NET entwickeln, die Formularauthentifizierung.
  3. Verwenden Sie Verschlüsselung (HTTPS), insbesondere wenn Ihre Website im Internet gehostet wird.
1

Sie brauchen nur ein paar Dinge an Ort und Stelle, um dies zu tun. Zunächst muss sich der Service-Client gegenüber Ihrem Service authentifizieren (über HTTPS), um eine Anfrage zu stellen. Nachdem der Client authentifiziert wurde, können Sie ein privates Token zurückgeben, das der Client diesem Token hinzufügen muss. Solange das Token nach einer angemessenen Zeit abläuft und ein sicherer Algorithmus verwendet wird, um es zu generieren, sollte dies tun, was Sie wollen.

Wenn Sie strengere Sicherheitsanforderungen haben, können Sie Jakobs Vorschlag folgen oder den Client eine VPN-Sitzung starten lassen, bevor Sie Anfragen stellen.