【问题标题】:Can Pyramid's Built-in Authentication/Authorization Implement Complex Security Schemes?Pyramid 的内置身份验证/授权可以实施复杂的安全方​​案吗?
【发布时间】:2011-08-18 08:16:29
【问题描述】:

似乎安全模型适合非常小的项目,但在 security.py 中写入所有可能的注册用户的哈希密码可能是不可行的。您是否知道任何扩展 Pyramid 身份验证的示例,或者通过 Pyramid 的安全方案调用我自己的安全信息数据库有什么好处?

【问题讨论】:

  • 谁主张在 security.py 中存储密码?
  • docs.pylonsproject.org/projects/pyramid/1.1/tutorials/wiki2/… 有一个非常简单的演示,在 security.py 中有一个 {key, raw_password} dict
  • 好吧,我明白你的意思了。但是对于熟悉 python 的人来说,想象 groupfinder 查询数据库或其他东西并不是一件容易的事吗?
  • 我希望有一些内置的金字塔魔法来处理本地数据存储中的用户名/密码对。

标签: python security scaling pyramid


【解决方案1】:

我认为项目的大小与安全模型无关。您想要一个简单或复杂的安全模型。两者都可以应用于任何规模的项目。 Pyramid 的强项之一是它的可扩展性。

为什么要将散列密码存储在 security.py 中? (cmiiw here,我可能误解了)如果您在某人的代码上阅读此内容,那可能只是一个示例。在实际应用中,您将它们保存在您选择的存储/持久性系统中。

同样,我不明白您所说的“扩大身份验证”是什么意思。我猜你想要一些工作示例:

【讨论】:

    【解决方案2】:

    不知道您的需求是什么,或者您所说的“提高安全性”是什么意思,但金字塔身份验证策略非常灵活。您需要了解虽然它不维护用户和密码,但它只是提供了一种从传入请求中获取用户标识符的机制。例如,AuthTktAuthenticationPolicy 通过使用 remember 方法设置的 cookie 跟踪用户 ID。

    您从该用户 ID 中获得哪些有意义的信息完全取决于您,并且是特定于应用程序的。

    所以您可能真正想问的问题是您的应用程序能否“提高安全性”。

    我无法向您展示代码,因为它是专有的,但我需要在同一个应用程序上支持 openid、http auth 和典型的 db 支持的用户存储,此外还增加了用户存储在不同数据库分片中的复杂性和无法立即确定分片。支持这一点只需要很少的代码。

    【讨论】:

      【解决方案3】:

      我最终为自己构建了一些东西,如果您碰巧使用 MongoDB,它可以让身份验证更容易一些。

      https://github.com/mosesn/mongauth

      它没有内置在金字塔中,但很容易挂在里面。一切都很透明。

      【讨论】:

      • 哇!不错的脚本。。简单而实用。!
      猜你喜欢
      • 1970-01-01
      • 2014-05-24
      • 2017-01-03
      • 2011-10-24
      • 1970-01-01
      • 2010-10-02
      • 2013-07-31
      • 1970-01-01
      • 2011-04-15
      相关资源
      最近更新 更多