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


12

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

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

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

具体的には:

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

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

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


誰かがあなたのためにそれを書くだけでいいように
聞こえ

残念ながら、それは方法のように見えます。スタックのこの部分がどこにも記述されていないのは奇妙に思えました。newegg、digg、またはstackoverflowなどのサイトがバックエンドでユーザー資格情報とアクセスを処理する方法についての記事を見つけることができたとしても、それは役立ちます。
アレン

これについて何か進展がありましたか?
ブライアンエイジ

oAuth2を検討しましたか?あり、サーバとクライアントライブラリそれが簡単にそれを実装するために行う必要があり、多くの一般的な言語で、それのために利用可能に。
サム

回答:


5

OpenAM。

http://forgerock.com/openam.html

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

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

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

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

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

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

システムをより安全で信頼性の高いものに保つのに役立つアーキテクチャの選択肢は何ですか?

もっと?何よりも?


私の特定のセットアップでは、OpenAMのようなものを使用できるとは思いません。企業規模のシングルサインオンは必要ありません。もっと小さく、もっと自己完結型のものが必要だと思う。
アレン

@アレン。企業全体のシングルサインオンには使用しません。単純なID管理に使用します。
-S.ロット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.