製品のユーザーがWebユーザーインターフェイスを使用せずに製品の機能と直接統合できるように、単純なREST APIを備えた製品があります。
最近、さまざまなサードパーティから、デスクトップクライアントとAPIを統合して、私の製品のユーザーがそのサードパーティのアプリケーションを使用してデータにアクセスできるようにすることに関心を示しています。
Twitterを使用したいアプリケーションは、Twitterがホストするログインページを使用して認証を行い、そのユーザーのデータにアクセスするための特定のアプリケーション権限を付与します。「許可」または「拒否」ボタンをクリックすると、認証プロセスが完了します。Facebookは私が言うことができる最高のメカニズムを使用しています。
さらなる調査の結果、これは実際のOAuthのようであり、私のAPIは.Netベースであるため、DotNetOpenAuthを使用して同様のメカニズムを提供する必要があると考えています。残念ながら、サンプルはまばらに文書化されており(もしあれば)、オンラインで見つけることができる唯一のチュートリアルは、サードパーティのプロバイダーを使用してユーザーがWebサイトにログインできるように、ユーザーにログインメカニズムを提供するのに役立つことに集中しているようです。
私が本当にやりたいことは、REST APIでWebアプリケーションのすべてのコア認証とビジネスロジックを処理し、内部的には、OAuthを介してAPIを使用するだけのアプリケーションです。ユーザーは、ユーザー名とパスワードを直接使用するか、MyOpenIDやFacebookなどのサードパーティプロバイダーを介してWebサイトで認証し、Webサイトは返されたトークンを使用してREST APIに対して認証を行います。
基本的に、OAuthサービスをホストするためにAPIが必要であるように見えますが、ユーザーにサードパーティのOAuthサービスを使用させる必要もあります。どうしようもないのですが、OAuthを十分に理解していないので、複雑すぎたり、やろうとしていることが良い方法か悪い方法かを判断できません。
誰かが、少なくとも私が実行する必要のある手順の概要、またはこれを実現するために何を見る必要があるかを教えてもらえますか?または、いくつかのチュートリアルを教えてください。または私の提案を爆破し、私はこれについて(アーキテクチャ的に)すべて間違っていると言っていますか?