5

APIでSpringFrameworkとRESTアーキテクチャを使用しています。現在、すべての呼び出しでユーザー名とパスワードを送信することにより、REST呼び出しを認証しています。そして、ユーザーは私のデータベースに保存されています。

現在、保護されたリソースへのアクセスにoauth 2.0を使用する予定です。また、認証メカニズムとしてFacebookログインを使用する予定です。

spring-security-oauth2について読み、小さな例で正常に動作するように実装しました。

私はspring-socialについて読み、それを実装し、facebookapiにアクセスできます。

今私が知りたいのは、Facebookでログインしてからoauth2.0を使用してリソースを保護する方法です。

どんな助けでも深く感謝されます。

4

1 に答える 1

3

Facebook が発行したアクセス トークンを使用して、独自のリソースを保護することは望ましくありません。Facebook トークンは、アプリケーション、Facebook、およびユーザーの間の 3 方向の合意を表します。OAuth を使用して独自のリソースを保護する場合、それは、それらのリソースの消費者、サーバー、およびサーバー上のそれらのリソースを所有するユーザーの間の完全に異なる合意です。

次のように考えてください: Facebook の API を使用する場合、アプリケーション (A) はコンシューマーであり、Facebook (FB) はプロバイダーであり、それらを結合する共通ユーザー (U1) が存在します。しかし、誰かがサーバー上のリソースを消費している場合、アプリケーション (A) がプロバイダーの役割を果たし、他のアプリケーション (X) がコンシューマーになり、それらを結合する共通ユーザー (U2) が存在します。どちらの場合も、取り決めに同意したのは同じ人間 (たとえば、U1 == U2) かもしれませんが、プロバイダーとコンシューマーの役割は変わりました。

Facebook が発行したのと同じアクセス トークンを Spring Security for OAuth に発行させる方法がおそらくあると思いますが、それはあまり良い考えではありません。

于 2013-02-13T15:03:59.780 に答える