【问题标题】:Role-based security with Google App Engine and Python使用 Google App Engine 和 Python 实现基于角色的安全性
【发布时间】:2010-11-29 17:12:59
【问题描述】:

我想问一下使用 Google App Engine、Python 处理基于角色的安全性的常用方法是什么?

在 app.yaml 中有“login”部分,但可用的值只有“admin”和“required”。

您通常如何处理基于角色的安全性?

  • 使用两个表创建模型:Roles 和 UserRoles
  • 导入角色表的值
  • 手动将用户添加到 UserRoles
  • 检查用户是否在正确的角色组中

任何其他基于角色的安全性的想法或任何其他方法,请告诉我们!

【问题讨论】:

    标签: python google-app-engine role-based


    【解决方案1】:

    我会通过将角色的 ListProperty 添加到代表用户的模型中来做到这一点。该列表包含给定用户所属的任何角色。这样,如果您想知道给定用户是否属于给定角色(我希望这是最常见的操作),这是一个快速的成员资格测试。

    您可以将角色名称作为字符串直接放入列表中,或者向另一个实体添加一个间接层,指定角色的详细信息,以便以后更改详细信息。但是,这需要额外的 RPC 来获取角色的详细信息的运行时成本。

    如果您想从给定角色中删除所有用户,或执行任何其他类型的全局操作,则此方法的缺点是。我想您可以将角色标记为“已删除”,但是在您手动清理它们之前,您的所有用户模型中仍然有数据混乱。所以我很想听听其他人的建议。

    【讨论】:

    • +1。如果要修改具有某个角色的所有用户,可以对 list 属性进行查询,就像它是常规属性一样,以查找具有该角色的所有用户。
    • 所以这意味着没有专门的方法可以使用 Python 处理来自 GAE 的基于角色的安全性?我们还要手动处理吗?
    • 正确 - 虽然我不确定“专用”解决方案会是什么样子,因为人们有各种各样的身份验证需求。
    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2011-05-12
    • 1970-01-01
    • 2011-06-29
    • 2012-03-18
    • 2019-03-13
    相关资源
    最近更新 更多