レール2本足のOAuthプロバイダー?
-
03-10-2019 - |
質問
保護したいAPIを備えたRails 2.3.5アプリケーションがあります。
ユーザーはいません - アプリスタイルWebサービス(FacebookよりもAmazonサービスに似ています)であるため、2本足のOAuthアプローチを使用して実装したいと思います。
OAuth-Plugin Serverの実装を開始として使用しようとしています。
http://github.com/pelle/oauth-plugin
...しかし、それは3本足(Webリダイレクトフロー)OAuthを期待して構築されています。
2本足をサポートするために変更をさらに掘り下げる前に、より簡単な方法があるかどうか、または誰かが2本足のOAuthプロバイダーであることを実装するためのより良いアプローチがあるかどうかを確認したかったのです。
解決
以前は、唯一の良い答えは、OAuth-Pluginでハッキングして、OAuth相互作用のこのサブセットを取得することでした。それ以来、OAuth-Pluginがリファクタリングされ、コントローラーに適切なタイプの認証フィルターを追加するだけで、まっすぐに使用できます。
class ApiController < ApplicationController
include OAuth::Controllers::ApplicationControllerMethods
oauthenticate :strategies => :two_legged, :interactive => false
# ...
end
他のヒント
私は現時点ではOauth-Pluginの代替手段を知っていませんが、それは間違いなく歯の中で長くなり、代替品の熟しています。私の推奨事項は、OAuth-PluginからOAuthサーバーを生成し、プラグイン(ほんの数回のモジュールに相当するメソッドです)から依存関係を抽出し、プラグインをゴミ箱に捨てることです。次に、すべてをニーズに合わせて調整します。とにかく3本足よりも簡単であるため、2本足のOAuthは大きな問題ではないはずです。そして、とにかく大幅な変更がなければ、Oauth-Pluginは最近では使用できないと感じています。
とにかく、Oauthの肉は長い間ベースOauth Gemに抽出されてきたため、Oauth-Pluginは一種の範囲です。アーキテクチャは、使用している認証システムと、生成されたコードの日付について、いくつかの強引な仮定を行っています。私にとって、Oauth-Pluginは、ほとんどのサイトが箱から出したいものではなく、すべてを配線する方法の例としてもっとサービスを提供しています。