ソーシャル (Facebook、Google) 登録と共に電子メール/パスワード登録を可能にするモバイル (および Web) アプリケーションを作成します。ネイティブまたは Web アプリは REST Web サービスを呼び出します (Spring OAuth2 によって保護されています)。ソーシャル ログインは、ネイティブの /web アプリによって処理されます。ユーザーがログインしている場合、REST サービスには手がかりがありません。電子メールの登録の場合、ユーザー名/パスワードが WS に渡されます。事実を考慮して、REST サービスを保護するための標準的または適切なアプローチは何ですか? 同様のアーキテクチャの経験はありますか?
私たちが経験しているいくつかのアイデア:
- アプリ起動時の最初にデバイスIDをWSに渡します。WS は、1 つの認証コードを含むプッシュ通知をデバイスにサイレントに ( apple/google を使用して) 送信します。このコードは OAuth2 認証のために渡されます。しかし、ここで Web アプリケーションを処理する方法がわかりません。
- ユーザーが social にログインしたら、ソーシャル プロバイダーからソーシャル ID の passoing トークンを取得します。ソーシャル アクセス トークンとこの ID を WS に渡します。WS は、プロバイダーの oauth サービス (例: https://graph.facebook.com/me?fields=id&access_token=XXX )を呼び出して、id に対してトークンを検証します。