So Schützen Sie eine private REST-API
Ich bin derzeit zu denken, wie ich mich schützen könnte meine REST-API, die verwendet wird, nur von meinem mobilen Anwendung verwendet werden, die von anderen Anwendungen?
Könnte ein API-Key eine gute Lösung, weil nur Sie mich wissen, die geheimen API-Schlüssel.
Gibt es eine bessere Lösung?
- Könnte Sie klären, ob Sie (a) um sicherzustellen, dass nur Sie (oder autorisierte Benutzer) können Sie Ihre service-oder (b) um sicherzustellen, dass nur die client Anwendung kann Ihren service nutzen?
- Ich werde dafür sorgen, dass nur meine client-Anwendung verwenden können meinen service.
- Ich dachte, der ganze Punkt, der REST war gab es keine Notwendigkeit für eine API? (Wie RPC...)
Du musst angemeldet sein, um einen Kommentar abzugeben.
HTTP-Authentifizierung verwenden. REST ist alles über die Verwendung der Einrichtungen in HTTP, so dass die native HTTP-auth verwendet werden soll. Bei der Standardauthentifizierung müssen Sie HTTPS verwenden obwohl. Wenn Sie nicht tun, verwenden Sie die HTTP digest auth oder NTLM.
Alle von Ihnen haben unterschiedliche stärken und Schwächen, und nicht jeder von Ihnen könnte unterstützt werden, indem Sie Ihre HTTP-server-und-client-Bibliothek.
Leon, Sie halten erwähnen, dass "jemand anderes mit meinem API mit einer anderen Anwendung". Also, Sie wollen binden Sie Ihre API verwendet zu werden nur einer Anwendung? Also, wollen Sie nicht zu geben, die Zugriffsrechte für einen Benutzer, den Sie möchten, geben Sie stattdessen eine Instanz der Anwendung auf das mobile Gerät des Benutzers.
Im wesentlichen: Sie Vertrauen Sie nicht auf die user!
Nun, in diesem Fall müssen Sie sicherstellen, dass Ihre Anwendung ist closed source, müssen code Ihre Anmeldeinformationen in Ihrer Anwendung in einer Weise, dass niemand kann Sie abrufen oder speichern der Anmeldeinformationen in einem eigens verschlüsselt auf dem Gerät, die Entschlüsselungs-Schlüssel für es wird lesbar nur durch Ihre Anwendung. In einer Weise, die Sie implementieren müssen, um eine form von DRM zu verhindern, dass Menschen Dinge tun, mit den Daten auf Ihrem mobilen Gerät. Und Sie müssen hoffen, dass niemand umkehren kann, Ingenieur.
Wenn Ihre app wird immer beliebter /interessant genug sind, zählen auf der Tatsache, dass Menschen, die sehr, sehr gut an diese Art der Sache wird auf Ihre Bewerbung Aussehen und brechen Ihre Verschlüsselung, bevor Sie es wissen. Vielleicht, wenn Sie die gleiche Menge an Mühe in die es als Skype hat, dann vielleicht Sie können abzuwehren für eine Weile.
Aber Fragen Sie sich: Warum die Mühe? Warum kann ich nicht Vertrauen meine Nutzer? Ist es das wirklich Wert, um durch Reifen springen, wie dies um zu verhindern, dass eine andere Anwendung aus mit meiner API?
Nur führen Sie Ihre user durch eine Registrierung, in der jeder app-Instanz erhält einen eindeutigen Schlüssel von dem server (oder eine eindeutige HTTP-auth Passwort) und speichert diese irgendwo auf das mobile Gerät des Benutzers. Dann, um auf die interessanten features in der API, erfordern das Vorhandensein dieser Schlüssel/Passwort. Aber gehen Sie nicht durch die extreme Länge zu verschleiern oder verschlüsseln der Schlüssel, wenn Sie speichern Sie es lokal, das ist es nicht Wert. Wenn Sie alle erkennen den Missbrauch später können Sie jederzeit widerrufen der Zugriffsrechte für ein bestimmtes Konto auf dem server sowieso.