Простой поставщик услуг OAuth - PullRequest
8 голосов
/ 15 октября 2010

Я пытаюсь разобрать пример поставщика услуг OAuth, который включен в DotNetOpenAuth.Я искал SO и нашел несколько похожих / связанных постов, но ничего действительно полезного.Существует ли какой-либо проект с открытым исходным кодом или действительно простой / примитивный пример поставщика OAuth-услуг ASP.NET MVC 2?Все, что я хочу использовать OAuth для аутентификации службы.Я собирался свернуть свой собственный API с ключом / секретом, но подумал, что проверенный и проверенный протокол, такой как OAuth, вероятно, будет лучшим решением.

1 Ответ

15 голосов
/ 09 ноября 2010

В результате я провел несколько обширных исследований, чтобы выяснить, что мне не нужен традиционный трехсторонний OAuth, а нужен только двуногий. Проблема в том, что двухстороннюю информацию об OAuth найти довольно сложно. Наконец-то я нашел спецификацию Google для реализации двухстороннего OAuth:

http://oauth.googlecode.com/svn/spec/ext/consumer_request/1.0/drafts/2/spec.html

Я также нашел реализацию этого, поскольку Justin.tv использует его для своих услуг:

http://apiwiki.justin.tv/mediawiki/index.php/OAuth_Ruby_Tutorial

Я также наткнулся на отличный инструмент тестирования OAuth, который мне очень помог в реализации сервиса:

http://term.ie/oauth/example/client.php

Двусторонняя OAuth довольно проста, если вы понимаете, что ищете, и как это реализовать. Если вы ищете OAuth, скорее всего, вы найдете статьи, рассказывающие о традиционном трехстороннем OAuth, в котором участвуют 3 стороны, как и следует из названия: потребители, поставщики услуг И пользователи . Двуногие строго вовлекают потребителей и поставщиков услуг. Если ваша служба не занимается конкретно с пользователями, вам нужен 2-сторонний OAuth.

Что касается фреймворка, я использую ASP.NET MVC, поэтому я остановился на репозитории github, расположенном здесь:

https://github.com/buildmaster/oauth-mvc.net

Он получил действительно хороший, чистый код и использует внедрение зависимостей (Ninject). Мне не потребовалось много времени, чтобы изменить его для двухстороннего OAuth.

...