2

私は OpenID と OAuth について多くのことを読んできましたが、サービスベースのアーキテクチャでそれらがどのように機能するかについて、いくつかの接続を確立するのに苦労しました。

これが私のシナリオです:

  • 新しい ASP.NET Web API サービス (RESTful/JSON) を作成しています
  • これらのサービスは、クライアント アプリケーション (現在のデスクトップ Web サイト、新しいモバイル Web サイト、および将来的には PHP Web サイトまたは JavaScript のみのクライアント) によって使用されます。
  • 当社のデスクトップ Web サイトは現在、ASP.NET メンバーシップ プロバイダー (Web フォーム) を使用しています。

私たちが作成している API サービスの新しいセットは、認証と承認を含むすべてを処理する必要があります。

私の質問は次のとおりです。

  • API にアクセスするクライアント アプリケーションを明示的に制御しているため (つまり、これはパブリック API ではなく、承認されたパートナーを統合するためのものです)、OAuth は必ず必要ですか?
  • OpenID は .NET メンバーシップ機能を置き換えるものですか、それとも補完するものですか?
  • メンバーシップ プロバイダーを使用して従来のシステムでユーザーを認証する必要がある場合、何らかの .NET メンバーシップ OpenID プロバイダーを使用する必要がありますか? それとも、通常どおりに認証して、現在行っているようにユーザーにメンバーシップ トークンを付与するだけですか?

要約すると、次のようになります。

  • 私はいくつかの新しいサービスを書いています
  • クライアントアプリケーションのユーザーのために、承認されたクライアントアプリケーションで使用できる必要があります
  • .NET メンバーシップ データを引き続きサポートする必要があります

申し訳ありませんが、これらは基本的な質問ですが、簡単に答えられると確信しています。ありがとうございました!

4

1 に答える 1

5

ThinkTecture の Identity Server を見てください。

https://github.com/thinktecture/Thinktecture.IdentityServer.v2

ユーザー ストアのリポジトリ パターンを使用し、既定のメンバーシップ プロバイダーをユーザー ストアとして使用します。従来のメンバーシップ プロバイダーを簡単にプラグインできます。

OpenID 接続はメンバーシップ プロバイダーの上で機能し、登録済みの証明書利用者のみを許可するオプションを有効にします。つまり、承認されたクライアント (アプリケーション) のみがアクセスできるようになります。

これは完璧にフィットするように思えます - これがお役に立てば幸いです.

マット

于 2013-10-11T09:58:12.383 に答える