2009-09-19 9 views
5

Google App Engine、Pythonでロールベースのセキュリティを処理する一般的な方法は何ですか?Google App EngineとPythonによるロールベースのセキュリティ

app.yamlには「ログイン」セクションがありますが、使用できる値は「admin」と「required」です。

通常、どのように役割ベースのセキュリティを処理しますか?

  • 2つのテーブルがモデルを作成します。役割とUserRolesはロールテーブルの
  • インポート値
  • は手動UserRolesにユーザーを追加
  • チェックをユーザーが右の役割グループである場合

他のアイデアやロールベースのセキュリティのための他の方法は、私たちに教えてください!

答えて

4

ユーザーを表すモデルにロール用のListPropertyを追加することでこれを行います。リストには、特定のユーザーが所属するすべての役割が含まれます。この方法では、特定のユーザーが特定の役割に属しているかどうかを知りたい場合(最も一般的な操作です)、高速メンバーシップテストです。

ロール名を文字列として直接リストに追加することもできますし、ロールの詳細を指定する別のエンティティに間接参照のレイヤを追加して、後で詳細を簡単に変更することもできます。しかし、これには、ロールの詳細を取得するための追加RPCの実行時コストがあります。

特定のロールからすべてのユーザーを削除する、または他の種類のグローバル操作を実行する場合は、この方法の欠点があります。私はあなたが '削除された'役割をマークすることができますが、あなたは手動でそれらを手動でクリーンアップするまで、あなたはまだすべてのあなたのユーザーモデルを混乱させるデータを持っています。だから私は他の人が何を示唆しているのか知りたい。

+0

+1。ロールを持つすべてのユーザーを変更する場合は、そのロールを持つすべてのユーザーを検索するための通常のプロパティと同じように、listpropertyでクエリを実行できます。 –

+0

これは、GAEとPythonの役割ベースのセキュリティを扱うための専用の方法がないことを意味しますか?手動で処理する必要がありますか? –

+0

正解 - 人々が持っている幅広い種類の認証ニーズを考えると、私は「専用の」ソリューションがどのように見えるかはわかりませんが。 –

関連する問題