Pyramid 内置的认证/授权能实现复杂安全方案吗?

5 投票
3 回答
3401 浏览
提问于 2025-04-16 23:51

看起来这个安全模型适合非常小的项目,但把所有注册用户的加密密码都写在security.py里可能不太现实。你知道有没有关于如何扩展Pyramid认证的例子,或者通过Pyramid的安全机制调用我自己数据库里的安全信息有什么好处吗?

3 个回答

3

我自己做了一个东西,可以让使用MongoDB的身份验证变得简单一些。

https://github.com/mosesn/mongauth

这个东西并不是直接内置在pyramid框架里,但很容易就能连接上去。整个过程也很清晰明了。

8

我觉得项目的大小和安全模型没有关系。你可以选择简单的安全模型或者复杂的安全模型,这两种都可以应用到任何规模的项目中。Pyramid的一个强项就是它的可扩展性。

为什么要把加密后的密码存储在security.py里呢?(如果我理解错了请纠正我)如果你在别人的代码中看到这个,那可能只是个示例。在实际的应用中,你应该把它们存储在你选择的存储系统里。

另外,我不太明白你说的“扩展认证”是什么意思。我猜你是想要一些实际的例子:

4

我不知道你具体需要什么,也不太明白你说的“提升安全性”是什么意思。不过,Pyramid的认证政策非常灵活。你需要明白的是,它并不直接管理用户和密码,而是提供了一种从请求中获取用户标识符的机制。举个例子,AuthTktAuthenticationPolicy通过你使用remember方法设置的cookie来跟踪用户ID。

你从这个用户ID中得到的有用信息完全取决于你自己,这和你的应用程序有关。

所以你可能想问的问题是,你的应用程序能否“提升安全性”。

我不能给你展示代码,因为这是专有的,但我需要在同一个应用程序中支持openid、http认证和典型的数据库用户存储,额外的复杂之处在于用户存储在不同的数据库分片中,而这个分片不能立即确定。支持这一切只需要很少的代码。

撰写回答