2009-04-25 5 views
0

Je souhaite écrire moi-même un framework web simple en utilisant WSGI, Python. Je suis en étude pour comprendre le système d'autorisation.Gestion de l'autorisation dans les frameworks web

Le système doit être plus modulaire et abstrait pour ajouter un nouveau système dans le projet en tant que plug-in. L'utilisateur peut utiliser DB ou une paire clé/valeur distribuée, bigtable, etc. pour stocker ses informations. Disons que ces sortes de choses sont des conteneurs ou des fournisseurs qui peuvent être écrits en tant que plug-ins dans le système.

Je souhaite définir une IDENTITÉ de très haut niveau pour l'utilisateur qui s'est connecté. "Identité" est le mot approprié, utilisé par les nombreux frameworks. Mais il est vraiment difficile de définir "l'identité" comme un objet en raison de sa nature complexe. Il peut contenir n'importe quoi, spécifique à l'application. Mais, lorsque nous écrivons l'application, l'application doit prendre soin de ce qui est dans l'identité. Mais en tant que cadre, il ne se soucie pas de ce qu'est l'identité.

L'authentification doit être séparée de l'autorisation. Les utilisateurs, le groupe, le rôle/les autorisations peuvent être conçus comme des plug-ins.

L'idée derrière ce concept est, écrire un bon cadre (au moins pour moi pour la recherche) avec suffisamment d'espace pour les plug-ins et permettre aux développeurs d'applications d'écrire le code portable qui suites à l'application.

Est-il possible de travailler avec l'objet 'identité' dans un cadre complet?

Répondre

0

"Est-il possible de travailler avec l'objet 'identité' sur l'ensemble de l'infrastructure?"

« Mais il est vraiment difficile de définir « l'identité » comme un objet en raison de sa complexité. »

Jusqu'à ce que vous définissez l'identité, oui, il est difficile de travailler avec.

L'identité doit être spécifiée positivement. Le laisser si vague que «Cela peut contenir n'importe quoi, spécifique à l'application» signifie que vous ne pouvez jamais commencer à écrire quelque chose d'utile parce que vous êtes trop inquiet qu'un jour quelqu'un pourrait inventer un concept d'identité que vous ne pouvez pas gérer ".

Arrêtez de vous inquiéter. L'identité est bien définie et n'est pas complexe. HTTP et d'autres protocoles définissent "autorisation" (vraiment authentification) avec les noms d'utilisateur, les mots de passe et les domaines. Et c'est tout ce dont vous avez vraiment besoin.

Faire ce que fait Django: permettre à quelqu'un d'ajouter un "Profil" avec des faits supplémentaires sur la personne. Le profil n'est pas essentiel pour l'identification et l'authentification. Ce n'est pas essentiel à l'autorisation. Mais n'importe qui peut ajouter des éléments "Profil" pour leur application spécifique.

N'écrivez pas un modèle qui fasse tout.

Ecrivez un modèle qui fonctionne et que quelqu'un peut ajouter.

Questions connexes