使用Google App Engine和Python进行基于角色的安全性

时间:2009-09-19 10:42:26

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

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

在app.yaml中,有“登录”部分,但可用值仅为“admin”和“required”。

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

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

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

1 个答案:

答案 0 :(得分:4)

我会通过向表示用户的模型添加角色的ListProperty来实现此目的。该列表包含给定用户所属的任何角色。这样,如果您想知道给定用户是否属于给定角色(我希望是最常见的操作),那么这是一种快速的成员资格测试。

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

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