2009-04-25 75 views
0

我想使用WSGI,Python自己编写一个简单的Web框架。我正在学习以了解授权系统。在Web框架中处理授权

该系统需要更加模块化和抽象,足以将新系统作为插件添加到项目中。用户可以使用数据库或分布式键/值对,bigtable等来存储他们的信息。可以说,这些东西是容器或提供者,可以作为插件写入系统。

我想为登录的用户定义更高级别的IDENTITY。“Identity”是许多框架使用的正确词汇。但由于其复杂的性质,将“身份”定义为对象是非常困难的。它可能包含任何特定于应用程序的内容。但是,当我们编写应用程序时,应用程序应该小心,身份是什么。但作为一个框架,它并不关心什么是身份。

认证应与授权分开。

用户,组,角色/权限可以设计为插件。这个概念背后的想法是,为插件编写一个很好的框架(至少为我的研究),并允许应用程序开发人员编写适用于应用程序的可移植代码。

是否可以在整个框架中使用“身份”对象?

回答

0

“可以在整个框架中使用”身份“对象吗?”

“但它是真的很难定义‘身份’为对象,由于其复杂性。”

直到你定义的身份,是的,这是很难的工作。

身份必须明确指定。留下它如此含糊以至于“它可能包含任何东西,这是特定于应用程序”意味着你永远无法开始写任何有用的东西,因为你太担心“有一天某人可能会发明一个你无法处理的身份概念”。

别担心。身份定义明确,并不复杂。 HTTP和其他协议使用用户名,密码和领域定义“授权”(真正的认证)。这就是你真正需要的。

做一下Django的工作:允许某人添加一个关于该人的更多事实的“个人资料”。配置文件不是识别和认证的核心。这不是授权的核心。但任何人都可以为其特定应用程序添加“配置文件”内容。

不要写一个模型来完成一切。

写一个模型,可以工作,并可以添加到。