0 votes

Gestion de l'autorisation dans les frameworks web

Je veux écrire moi-même un cadre web simple en utilisant WSGI, Python. Je suis en train d'étudier pour comprendre le système d'autorisation.

Le système doit être plus modulaire et assez abstrait pour ajouter de nouveaux systèmes dans le projet sous forme de plug-in. L'utilisateur peut utiliser une base de données ou une paire clé/valeur distribuée, un bigtable, etc. pour stocker ses informations.

Disons que ce genre de choses sont des conteneurs ou des fournisseurs qui peuvent être écrits sous forme de plug-ins dans le système.

Je veux définir un niveau d'IDENTITÉ très élevé pour l'utilisateur connecté. "Identité" est le bon mot, utilisé par de nombreux cadres. Mais il est vraiment difficile de définir "Identité" comme un objet en raison de sa nature complexe. Il peut contenir n'importe quoi, de spécifique à l'application. Mais, lorsque nous écrivons l'application, l'application doit se charger de ce qui se trouve dans l'identité. Mais en tant que cadre, il se moque de ce qu'est l'identité.

L'authentification doit être séparée de l'autorisation.

Les utilisateurs, les groupes, les rôles/autorisations peuvent être conçus comme des plug-ins. L'idée derrière ce concept est d'é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 du code portable adapté à l'application.

Est-il possible de travailler avec l'objet 'identité' dans l'ensemble du cadre?

0voto

S.Lott Points 207588

"Est-il possible de travailler avec l'objet 'identité' dans l'ensemble du cadre?"

"Mais il est vraiment difficile de définir 'Identité' en tant qu'objet en raison de sa nature complexe. "

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

L'identité doit être spécifiée de manière positive. Le laisser si vague que "il peut contenir n'importe quoi, de manière spécifique à l'application" signifie que vous ne pourrez jamais commencer à écrire quelque chose d'utile car vous êtes trop préoccupé par le fait que "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. Les protocoles comme HTTP définissent "l'autorisation" (vraiment l'authentification) avec des noms d'utilisateur, des mots de passe et des domaines. Et c'est tout ce dont vous avez vraiment besoin.

Faites comme Django : permettez à quelqu'un d'ajouter un "Profil" avec des faits supplémentaires sur la personne. Le Profil n'est pas central pour l'identification et l'authentification. Ce n'est pas central pour l'autorisation. Mais n'importe qui peut ajouter des éléments de "Profil" pour leur application spécifique.

Ne créez pas un modèle qui fait tout.

Créez un modèle qui fonctionne et que quelqu'un peut compléter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X