安全模型似乎适合非常小的项目,但在security.py中编写所有可能的注册用户散列密码可能不太可行。您是否知道扩展金字塔身份验证的任何示例,或者通过Pyramid的安全方案调用我自己的安全信息数据库有什么好处?
答案 0 :(得分:8)
我不认为项目的大小与安全模型有关。您想要一个简单或复杂的安全模型。两者都可以应用于任何规模的项目。金字塔的一个优点是它的可扩展性。
为什么要在security.py
中存储散列密码? (cmiiw在这里,我可能误解了)如果你在某人的代码中读到这个,那可能只是一个例子。在真实应用程序中,您可以将它们保存在您选择的存储/持久性系统中。
同样,我不明白“扩展身份验证”是什么意思。我的猜测是你想要一些有用的例子:
答案 1 :(得分:4)
通过“扩展安全性”不知道您的需求是什么或者您的意思,但金字塔身份验证策略非常灵活。您需要了解它不维护用户和密码,它只是提供了一种从传入请求中获取用户标识符的机制。例如,AuthTktAuthenticationPolicy通过使用remember方法设置的cookie跟踪用户ID。
您从该用户ID中获得的有用信息完全取决于您并且是特定于应用程序的。
所以你可能想问的问题是你的应用程序可以“扩大安全性”。
我无法向您展示代码,因为它是专有的,但我需要在同一个应用程序上支持openid,http auth和典型的db支持用户存储,并且额外增加的复杂性是用户存储在不同的数据库分片中碎片无法立即确定。只需很少的代码就可以支持这一点。
答案 2 :(得分:3)
我最终为自己构建了一些东西,如果您碰巧使用MongoDB,这会使身份验证变得更容易。
https://github.com/mosesn/mongauth
它没有内置于金字塔中,但很容易挂钩。一切都很透明。