Как DotNetOpenAuth может помочь мне создать поставщика услуг OAuth 2.0?

Я начинаю этот проект, где мне нужно предоставить авторизацию для веб-сайтов. Поскольку я начинаю с нуля, почему бы не использовать последнюю версию: протокол OAuth 2.0. К сожалению, я ничего не знаю о безопасности и не реализовал OpenID/OAuth. Поскольку я привык работать в среде .NET, для меня естественно найти реализацию .NET, и здесь на помощь приходит DotNetOpenAuth.

Однако я до сих пор не понимаю, как DotNetOpenAuth может помочь. Я прихожу с наивным предположением, что DotNetOpenAuth будет иметь всю готовую реализацию, и я могу просто вызвать некоторые функции (для создания токенов запроса, обмена ими с токенами доступа и т. д.) со всей внутренней безопасностью, реализованным материалом RSA. Когда я просматриваю код, мне кажется, что DotNetOpenAuth дает много интерфейсов, но мне все равно приходится кодировать их все вручную.

Могу ли я получить подтверждение об этом? Эндрю Арнотт, вы там?


person Hertanto Lie    schedule 01.04.2011    source источник
comment
См. также stackoverflow.com/questions /3997172/   -  person David d C e Freitas    schedule 06.12.2011


Ответы (1)


OAuth 2.0 еще не завершен, поэтому вы можете рассмотреть вариант OAuth 1.0a. Но если вы хотите использовать OAuth 2.0, убедитесь, что вы используете DotNetOpenAuth 3.5. CTP.

Да, библиотека позаботится о большей части RSA и других деталях протокола. Но вам необходимо выполнить некоторое подключение и сохранение токена самостоятельно, поскольку каждый сайт отличается в этом отношении. Загрузка CTP поставляется с образцом OAuthServiceProvider, к которому вы можете обратиться за помощью.

person Andrew Arnott    schedule 02.04.2011
comment
Пожалуйста, поправьте меня, если я ошибаюсь здесь. Предполагается, что OAuth 2 проще реализовать как для клиента, так и для провайдера, потому что мы устраняем необходимость в подписях. Однако в обоих случаях OAuth 1 и OAuth 2 нам по-прежнему нужно вручную реализовать те подключения и сохранение токена, о которых вы упомянули. Если это правильно, то я бы просто пошел с 2.0, но не могли бы вы указать мне, что мне действительно нужно реализовать вручную? - person Hertanto Lie; 04.04.2011
comment
Ваша оценка OAuth 1.0 по сравнению с 2.0 примерно верна, хотя я понимаю, что 2.0 также поддерживает подписи — просто они не требуются, как в 1.0. Загрузка CTP включает примеры того, как вы подключаете его к своему веб-сайту. Это не сложно. - person Andrew Arnott; 06.04.2011
comment
... и на самом деле, используете ли вы 1.0 или 2.0, для вас примерно одинаково, поскольку, когда применяются подписи, библиотека позаботится об этом за вас. - person Andrew Arnott; 06.04.2011
comment
Спасибо за ответы, Андрей. Мне бы очень хотелось использовать вашу библиотеку, но тот факт, что я не использовал новейшие разработки .NET (MVC, LINQ и т. д.), усложняет задачу. Есть ли способ, которым вы можете рассказать мне об основных шагах реализации? - person Hertanto Lie; 12.04.2011
comment
@Andrew, запись в блоге или скринкаст, показывающий процесс, которому вы следовали при создании образца поставщика услуг и потребителя, было бы здорово? - person IsmailS; 08.06.2011
comment
Также, когда я пытаюсь загрузить версию CTP по предоставленной вами ссылке, он говорит, что доступ запрещен. - person IsmailS; 08.06.2011
comment
@Ismail, я не знаю, как объяснить отказ в доступе, но я все равно обновил ссылку. - person Andrew Arnott; 11.06.2011