2

OpenIDをRESTfulWebサービスとどのように組み合わせますか?

私が取り組んでいる個人的なプロジェクトは、RPXSaaSを使用してOpenIDを実行することです。この主な結果は、ログインしたユーザーを説明するURLです。アプリ自体はかなりJavascriptであり、データベースの永続性と空間処理のためにバックエンドと通信するためにRESTAPIを使用することを計画しています。

このアプリケーションのセキュリティ要件は大きくありません。どのユーザーがリクエストを行っているのか知りたい。データの機密保持のためにSSLを使用する必要はないと思います。また、SSLを実行するオーバーヘッドは必要ありません。

私はSpringを使用しており、可能であればSpring Security(Acegi)を使用したいと思っていますが、その考えに固執していません。

オプション:

  1. OpenID URLをJavascriptアプリに返し、これを使用してユーザーのリソースのリストを取得してから、それらのリソースをIDで取得/保存などします。

  2. OpenIDURLをランダムセッショントークンに接続するセッションテーブルを作成します。トークンをJavascriptアプリに返します。その後、Javascriptアプリは、後続のすべてのリクエストでトークンを返す必要があります。

  3. オプション2のセッションをOAuthのコンシューマートークンなどとして使用します。最初に、セッションはPKI暗号化を使用してアプリに送信されます。

  4. J2EEHTTPセッションに依存します。

これらのオプションのうち、私はオプション2に傾倒しています。攻撃者はセッションIDを推測する必要があり、アプリケーションがスニッフィングからの保護を必要とするとは思わないため、セッションのハイジャックは困難です。オプション3は基本的にオプション2と同じですが、セッションIDはスニッフィングに使用できません。オプション4は、OpenID URLをサーバーのメモリに配置し、RESTが回避するように設計されているすべてのスケーラビリティの問題を引き起こします。

これについての議論に感謝します。

4

1 に答える 1

0

ですから、2 年 3 か月後、私は自分自身の質問に答えることができます。私は個人的なプロジェクトのためにこれを実装し、雇用主のために個別に実装しました。

Spring Security にプラグインするのが最善の方法です。事前認証済みフローの使用を選択できますが、必要なフローのほとんどが含まれているため、CasAuthenticationFilter(およびCasAuthenticationEntryPoint) の方がうまく機能する場合があります。

于 2012-03-09T03:50:56.730 に答える