次のことを行う必要があるクライアント用のアプリケーションを作成しています。
これについて学び始めるのに最適な場所はどこですか? .NETでこれらのことに誰もが使用する標準はありますか?私は数時間グーグルをしていて、ほとんどの人が指摘しているようですが DotNetOpenAuth ライブラリの使用方法に関する確かなチュートリアルが見つからないようです。ダウンロードにはサンプルが付属していますが、それでも私は混乱しています。
私はそれが次のように単純であると思いました:
しかし、すべてのプロバイダーが独自のコードセットを持っているようで、すべてが非常に異なり、混乱を招きます。 Facebookにはグラフオブジェクトがいくつかあり、Twitterには私が理解できない「InMemoryTokenManager」がいくつかあり、Googleには認証の例すらなく、Googleアドレス帳の例しかありません。それに加えて、サンプルのApplicationBlockデモからコードの一部を何らかの理由で独自のアプリにコピーする必要があり、何をしようとしているのかを知らずにすべてをコンパイルするのは骨の折れる作業です。
これらすべてに根本的な何かが欠けているような気がします。
この時点では、本の推薦でさえ素晴らしいでしょう。
OAuthの高レベルの概念を理解していると思いますが、核心に飛び込もうとするとすぐに迷子になります。
まず、デフォルトのasp.netテンプレートにこれらの言及されたプロバイダーのほとんどの認証コードが付属しているnet 4.5を使用している場合、外部ライブラリを使用しても意味がありません。
次に、oauth2認証の詳細に関する優れたチュートリアルがまだ必要な場合は、Ben Fosterによるこのすばらしい投稿をご覧ください http://ben.onfabrik.com/posts/oauth-providers
第三に、残念ながら、認証以外のものが必要な場合、単一のプロトコルはありません。したがって、各プロバイダーには、連絡先、投稿など、これらの追加データを公開する独自の方法があります。それについては多くのことを行うことはできません。oauth2とは関係ありませんが、特定のAPIを呼び出す方法にすぎません。 oauth2認証に基づくrest/xmlWebサービスとして公開されます。これは、認証のみを行う場合、プロトコルは各プロバイダーでほぼ同じであることを意味します。それ以上のものは具体的です。
第4に、内部IDではなく、プロバイダーから返された電子メールアドレスを使用します。すべてのプロバイダーがIDをサポートしているわけではありませんが、すべてのプロバイダーがユーザーの電子メールを返すことができます。また、プロバイダーがoauth2経由でメールを返す前にメールを確認するため、この情報を信頼できます。
PureKromeのWorldDominationを使用することをお勧めします。使用するのは簡単で、十分に文書化されており、非常に便利です。
https://github.com/PureKrome/WorldDomination.Web.Authentication
Twitter、Google、Facebookなどをシンプルな1行の構成で処理し、その他すべてを処理します。
作成者はnjabbr.netにもよくぶらぶらしています。
ASP.NET MVC4の「インターネットアプリケーション」テンプレートにはDotNetOpenAuth
が実装されています。まだ実装していない場合は、それを確認する必要があります。
Social Bootstrap API プロジェクト(servicestackを使用しますが、これらすべての流行語テクノロジーが読みやすいサンプルで連携しているのを見るのは素晴らしいことです)を見てください。
また、OAuthがどのように機能するかをよりよく理解したい場合は、 Mashapeには適切な説明があります 。これにより、ほとんどの舞台裏を見ることができます。ラッパーが実装します。
Rick Strahlに例があります 何年も前にMVCにOpenIDを実装するために使用しました。少し古いですが、当時最も簡単な実装の1つでした。その実装で構築したいくつかの顧客サイトは、まだ正常に実行されています。