web-dev-qa-db-ja.com

oAuth ASP.NETメンバーシッププロバイダー

OAuthを使用するカスタムメンバーシッププロバイダーを実装するための推奨リソースはありますか?目標は、ユーザーが既存のoAuth資格情報を使用してASP.NET MVCアプリケーションにログインするようにすることです。ユーザーが認証されたら、組み込みのASPを利用します。 NET承認機能。

ありがとう。

37
Eric Tobia

お探しのものがOAuthかどうかわかりません。

OAuthは、トークンを使用して承認を委任するためのものです。何をしているのかに応じて、次の2つのシナリオがあります。

  1. アプリケーションが、プロバイダー(Twitterやgoogleなど)によってホストされているユーザーデータの一部を使用したいと考えています。この場合、アプリケーションはコンシューマーになります。つまり、ユーザーはログインし、アプリケーションがプロバイダーのデータにアクセスすることを承認することに同意する必要があり、使用できるアクセストークンが与えられます。それらの保護されたリソースへのアクセスを取得します。
  2. または、ログインしているユーザーなどのアプリケーションがあります。また、ユーザーの資格情報を公開せずに、ユーザーの一部の制限された情報へのアクセスをサードパーティのアプリケーション(コンシューマー)に提供したい場合それらのサービス。

OAuthの詳細については、 OAuth.Net Webサイト をご覧ください。現在、.Netで利用可能なOAuthの実装が3つあります。

OAuthの動作方法が原因で、「OAuth」メンバーシッププロバイダーがどのように使用できるか想像できません-これは本当にAPIを保護することを目的としており、多くの場合、目的はより詳細なレベルで承認を委任することですつまり、コンシューマーアプリケーションに、ユーザーの電子メールアーカイブやカレンダーなどにアクセスさせずに、ユーザーのアドレス帳データのみへのアクセスを許可します。これは、メンバーシップ/ロールベースのセキュリティモデルには適していません。

あなたが本当に探しているのはOpenId、つまりStackoverflow自体で自分を認証する方法だと思います。 Stackoverflow OpenIdのケーススタディはこちら を読むことをお勧めします。おそらく.Netの最良のOpenId実装は現在 DotNetOpenAuth プロジェクトの一部です(これは正式にはDotNetOpenIdと呼ばれていました。プロジェクトの場合 ここにあります )。

45
Bittercoder

DotNetOpenAuth を探しているかもしれません。私はそれを使ったことがないので、メンバーシッププロバイダーが含まれているかどうかはわかりませんが、含まれていると思います。そうでなければ、それはオープンソースなので、とにかくあなたがしようとしていることを手助けしてくれるはずです。

6
CoderDennis

あなたが見る必要があります https://github.com/rustd/ASPNETTemplates asp.netのデフォルトのプロジェクトテンプレートがあり、= OAUthそして、ユニバーサルプロバイダー(webformsテンプレートですが、mvcでも同じことができます)を拡張してロールなどを実行します

2
pranav rastogi

あなたがこの質問を投稿してから、ライブラリは長い道のりを歩んできました...私はこのライブラリをOauth-すでにFacebook、Twitter、PaypalおよびGoogle+の統合を実装しているために使用し始めました:

OAuth2ソーシャルログイン-Facebook、Google、Twitter、Paypal-ASP.NET MVC C#オープンソースライブラリ

また、下位互換性が問題にならない場合、マイクロソフトは人気のあるOAuthプロバイダー...のサポートを開始しました...この記事を参照してください:

Microsoft OAuth2 OWIN/KatanaとFacebookおよびGoogle+の統合

1
nikib3ro