web-dev-qa-db-ja.com

REST Webサービスの認証/アクセス制御のためのソフトウェアアーキテクチャ

新しいRESTful Webサービスを設定していて、 ロールベースのアクセス制御 モデルを提供する必要があります。ユーザーがユーザー名とパスワードを入力してサービスにアクセスし、役割に基づいてサービスの使用方法(使用できるサービス、読み取りと読み取り/書き込みなど)を制限できるアーキテクチャを作成する必要がありますそのユーザーに割り当てられています。

他の質問を見回して、欲しいものを見つけました。たとえば、資格情報をRESTサービス restful-authenticationベストプラクティス に渡す方法については、いくつかのすばらしい議論があります。プログラマーがWebサイトを作成するときに知っておくべきこと( すべての開発者が公開Webサイトを構築する前に知っておくべきこと )に関する優れた指針。

しかし、これらのソリューションを実装するソフトウェアアーキテクチャのベストプラクティスとパターンに関する良い記事、記事、本を見つけることができませんでした。

具体的には:

  • ユーザーの詳細とアクセス権はどのように保存する必要がありますか? (データモデル、場所、形式)
  • サーバーでこれらを表現および追跡するための優れた設計パターンは何ですか? (メモリ内のセッション、毎回のデータベース検索など)
  • これらの権利をコードベースで安全な方法でサービスにマッピングするための適切なパターンは何ですか?
  • システムの安全性と信頼性を維持するのに役立つアーキテクチャの選択はどれですか。
  • 人々は塹壕から何を学んだか?

特定のテクノロジー以外のソフトウェアアーキテクチャの設計パターンと推奨事項を探しています。

(テクノロジーが重要な場合は、これをpython、twisted、およびpostgresqlデータベースを使用して実装する予定です)

12
Allen

OpenAM。

http://forgerock.com/openam.html

ユーザーの詳細とアクセス権はどのように保存する必要がありますか? (データモデル、場所、形式)

Identity Manager。任意のWebサーバーから分離します。 LDAPベース。

サーバーでこれらを表現および追跡するための優れた設計パターンは何ですか? (メモリ内のセッション、毎回のデータベース検索など)

フレームワークによって解決されます。もう考えないで。フレームワークの構築済みの優れたデザインパターンを使用するだけです。

コードベースでこれらの権利を安全な方法でサービスにマッピングするための良いパターンは何ですか?

フレームワークによって解決されます。各フレームワークは少し異なるアプローチを使用します。各言語には少し異なる機能があります。たとえば、DjangoはPythonのデコレータを多用しています。

システムの安全性と信頼性を維持するのに役立つアーキテクチャの選択はどれですか。

もっと?何より?

5
S.Lott