2009-04-25 12 views
0

Ich möchte ein einfaches Web-Framework selbst mit WSGI, Python schreiben. Ich bin im Studium, um das Autorisierungssystem zu verstehen.Handhabung Autorisierung in Web-Frameworks

Das System muss modularer und abstrakter genug sein, um ein neues System als Plug-In in das Projekt einzufügen. Der Benutzer kann DB oder verteiltes Schlüssel/Wert-Paar, Bigtable usw. verwenden, um seine Informationen zu speichern.

Nehmen wir an, diese Art von Inhalten sind Container oder Provider, die als Plug-Ins in das System geschrieben werden können.

Ich möchte IDENTITY für den Benutzer, der sich angemeldet hat, sehr viel höher definieren. "Identity" ist das richtige Wort, das von vielen Frameworks verwendet wird. Aber es ist wirklich schwer, "Identität" aufgrund seiner Komplexität als Objekt zu definieren. Es kann alles enthalten, was anwendungsspezifisch ist. Aber wenn wir die Anwendung schreiben, muss die Anwendung darauf achten, was in der Identität ist. Aber als Rahmen ist es egal, was Identität ist.

Die Authentifizierung muss von der Autorisierung getrennt sein.

Benutzer, Gruppe, Rolle/Berechtigungen können als Plug-Ins konfiguriert werden. Die Idee hinter diesem Konzept ist, ein gutes Framework (zumindest für mich für die Forschung) mit genügend Platz für Plug-Ins zu schreiben und den Anwendungsentwicklern zu ermöglichen, den portablen Code zu schreiben, der zu der Anwendung passt.

Ist es möglich, mit 'Identität' Objekt im gesamten Framework zu arbeiten?

Antwort

0

"Ist es möglich, mit 'Identität' Objekt im gesamten Framework zu arbeiten?"

„Aber es ist wirklich schwer zu definieren,‚Identität‘als ein Objekt aufgrund seiner komplexen Natur.“

Bis Sie Identität definieren, ja, es ist schwierig, mit zu arbeiten.

Identität muss eindeutig angegeben werden. Es so vage zu belassen, dass "es alles enthalten kann, was anwendungsspezifisch ist" bedeutet, dass man nie anfangen kann, etwas Nützliches zu schreiben, weil man sich zu viele Sorgen macht, dass jemand eines Tages ein Identitätskonzept erfinden könnte, mit dem man nicht umgehen kann ".

Hören Sie auf, sich Sorgen zu machen. Identität ist gut definiert und nicht komplex. HTTP und andere Protokolle definieren "Authorization" (echte Authentifizierung) mit Benutzernamen, Passwörtern und Realms. Und das ist alles was du wirklich brauchst.

Machen Sie, was Django tut: erlauben Sie jemandem, ein "Profil" mit zusätzlichen Fakten über die Person hinzuzufügen. Das Profil ist nicht zentral für die Identifizierung und Authentifizierung. Es ist nicht zentral für die Autorisierung. Aber jeder kann "Profil" Zeug für ihre spezifische Anwendung hinzufügen.

Schreiben Sie nicht ein Modell, das alles tut.

Schreiben Sie ein Modell, das funktioniert und jemand hinzufügen kann.