RESTful, Benutzerauthentifizierung und Django-tastypie

8

Entschuldigung für die Anfängerfrage.

Ich bin etwas verwirrt über den allgemeinen Ansatz zur Verwendung von RESTful-Diensten in Verbindung mit verschiedenen Benutzern. Insbesondere geht es mir primär um die Entwicklung einer API, die nur ich über die verschiedenen Anwendungen nutzen werde, die ich schreibe, nämlich eine Webanwendung und möglicherweise einige mobile Apps, die alle auf dieselben Daten zugreifen.

(1) Ist eine Rest-API, die von etwas wie django-tastypie erstellt wurde, für den nicht-öffentlichen Gebrauch geeignet (d. h., wenn ich nur durch meine Anwendungen Zugriff auf diese Daten gewähren möchte?

(2) Beim Erstellen von Login-Zugriffen auf die Restful-API erstelle ich einen Login für alle Benutzer meiner Web-App - oder erstelle einen Login für mich selbst und meine Internetanwendung? Sollen Benutzerkonten für meine Webanwendung getrennt von Konten für den Zugriff auf die Restful-API betrachtet werden?

Im Grunde möchte ich eine Anwendung mit Django und django-tastypie erstellen, mit der sich Benutzer anmelden, erstellen & amp; Objekte anzeigen, Benutzer abonnieren und ihre Objekte anzeigen. Ich möchte die Tastypie-API für meine eigenen JavaScript-Zwecke verwenden, um die Erstellung der Serialisierung und Aktualisierung der relevanten Daten in meinen Ansichten zu vereinfachen. Wo passen diese Benutzerkonten in dieses Bild? Danke!

    
bento 18.05.2012, 03:43
quelle

2 Antworten

4

Wenn ich richtig verstanden habe, haben Sie hier zwei getrennte Auth-Probleme: (A) Zugriff auf die API - Nur Ihre Web / Mobile App (B) Zugriff auf Benutzerdaten über die API - Für Benutzer über Ihre Web / Mobile App

Für (A) könnten Sie sich einfach mit einem geheimen Schlüssel authentifizieren. Ihr Web- oder mobiles Frontend würde also diesen Schlüssel mit jeder API-Anfrage senden, was garantieren würde, dass Sie nur Anfragen von Clients erhalten, die Sie autorisiert haben.

Wenn Sie verschiedene Schlüssel für verschiedene Apps verwenden möchten, können Sie ein einfaches Django-Modell erstellen, um sie zu verfolgen und neue Schlüssel hinzuzufügen oder sie nach Bedarf zu widerrufen.

Wenn Sie SSL für alles verwenden, sollten Sie vor Sniffing-Angriffen sicher sein, um Ihren Schlüssel zu finden. Ich denke, der schwächste Punkt hier wäre, dass jemand Ihre mobile App möglicherweise zurückentwickeln könnte, um den Schlüssel zu finden, da Sie den Schlüssel in der App speichern müssten.

Für (B) verwenden Sie das Django-Authentifizierungssystem. Die tastypie Basic oder ApiKey Authenticators sollte es Ihnen ermöglichen, Benutzer in und über die API und basierend auf ihren Berechtigungen auf Daten zugreifen oder erstellen. Ich glaube, das haben Sie in der zweiten Frage gefragt?

Ich denke nicht, dass Sie die gleichen Auth-Modelle für beide (A) und (B) verwenden können, wenn Sie Sitzungen verwenden, da Sie nicht gleichzeitig zwei aktive Sitzungen haben können.

    
sid 09.07.2012, 05:40
quelle
0

Ich bin neu mit Django und DRF und ich könnte Hilfe gebrauchen. Ich habe gerade eine Note-App erstellt und überlege, ob ich einen Benutzer / Autoren brauche / clients zweite App in meinem Projekt. Ich möchte nur den Benutzer in der Lage sein, sich anzumelden, eigene Notizen zu erstellen, und die Notizen sollten einen (oder mehrere) Autoren haben, damit ich die Benutzerdaten filtern kann.

PS: Ich bin auch ein Anfänger, damit wir in Kontakt bleiben können, wenn Sie wollen.

    
Konstantinos Korovesis 13.03.2014 15:22
quelle