2011-10-17 7 views
41

私はwebappを構築しており、DjangoとPyramidのどちらかを選択する必要がありました。私はピラミッドに行くことにしました。ピラミッドのユーザ認証

私はPyramidには、独自の認証/承認フレームワークが付属していると理解しています。しかし、ユーザー/グループ/権限が定義されているPyramidはどこにも見ていません。 Djangoではこれらのものが無料で提供されます。

私はSQLAlchemyを使用していますが、私がインポートできるようにすでに構築されている同様のユーザー/グループ/アクセス許可があるかどうか疑問に思っていました。私はむしろこれらのオブジェクト/マッピングとパスワードのハッシュ/ソルトを自分で定義したくないでしょう。

Django's definitionsは、私が必要とするものです。

誰かが私が使用できるものを指摘できますか?それとも、私自身をロールバックする必要がありますか?

答えて

62

ピラミッドには、はるかに柔軟な認証システムがあります。そして、もしあなたがDjangoのユーザ/グループ/パーミッションコンセプトのような単純なものを望むなら、柔軟性は恐ろしいかもしれません。

Pyramidには、データの保存方法や使用するORMについての前提がないため、「ユーザー」オブジェクトがありません。したがって、contrib.authのようなものはありません。 PYPI上にあるcryptacularやpasslibなどのライブラリを使用して、自分自身でパスワードをハッシュ/ソルトする必要があります。

Pyramidのシステム内でユーザー/グループ/アクセス権が必要な場合は、グループをアクセス許可にマップする__acl__を持つRootFactoryを定義することでかなり簡単に達成できます。権限はビューに割り当てられているため、通常はかなり静的です。グループ(ピラミッドが「プリンシパル」と呼ぶもの)をダイナミックにすることができれば、それは達成可能です。

私はピラミッドwiki2 tutorialと同様にshootout demoを見ることをお勧めします。

また、SQLAlchemyを使用する予定の場合、Pyramid内での認可を支援するためのサードパーティのパッケージがいくつかあります。 apexはより完全なスタックソリューションであり、ziggurat_foundationsはSQLAlchemyの下位レベルの層であり、アプリケーションのユーザーとグループの設定に役立ちます。

あなたの質問はかなり難しく、認可は「難しい問題」なので、ここでは中止し、Pyramidチュートリアルからいくつかのサードパーティのサンプルまで、すでに存在するチュートリアルやリソースを引用しないようにします。特にご不明な点がございましたら、お気軽にお問い合わせください。

+0

ありがとう、それは良い情報です。もっと私はdjangoの実装を見てきました(とあなたのrepsonseも併せて)、この質問はSQLAlchemyに関連するすべての 'User'関連オブジェクトが必要となるので、SQLAlchemyの質問のほうが多いです。 – lostdorje

+2

シューティングデモへのポインタありがとうございました。完全なユーザーとグループのモデルと完全な一連のテストで非常によく書かれています。 –

+0

アドバンスドユーザー向けにすべての(または部分的に)吹き飛ばされてカスタムのものに置き換えられたとしても、認証の面でより多くの事前ビルドされたものがあればいいです。カスタムソリューションのために実装する必要のある操作を文書化している限り、ストレージシステムを前提としなくても、ユーザーの概念を持つことができます。 –

関連する問題