Есть ли лучшие альтернативы DotNetOpenAuth?

Я действительно очень хочу любить DotNetOpenAuth, библиотеку OpenId, OAuth для .Net, но она действительно не режет ее для меня.
Прежде всего, это не работает на моно (примеры терпят неудачу с ошибкой web.config или другими ошибками).
Во-вторых, мне не нужны 99% функций библиотеки, все, что я хочу, - это что-то простое, что заботится о сложности использования клиента OpenId/OAuth для меня. Мне не нужно писать сервер OpenId &mdash, я просто хочу, чтобы мои пользователи нажимали кнопку "Войти с Google": -)

Все, что я хочу сделать, это набор кнопок для входа пользователей на мой веб-сайт (любой из них хорош, все три бонуса):

  • Facebook (не поддерживает OAuth, поэтому маловероятно)
  • Twitter
  • Google

Существуют ли какие-либо простые, пригодные для использования альтернативы, которые дают мне что-то вроде:

  • Отбрасывание фрагмента или компонента для размещения страниц
  • В идеале он просто установил HttpContext.Current.User
  • Интеграция с Membership — В основном использование членства для отслеживания того, кто был на сайте раньше.

?

Ответы

Ответ 1

(оповещение о недопустимом смещении: автор DotNetOpenAuth)

DotNetOpenAuth имеет пару моно-ветвей, которые могут работать, и работали в прошлом. Вы можете обнаружить, что они не строятся под моно в Linux, но эти ветки, когда они построены в Windows, создают dotnetopenauth.dll, которые могут быть запущены под Linux. Но прошло какое-то время, так как я сделал это сам, поэтому я не могу вам помочь.

Моно не проявил большого желания исправить ошибки и заполнить отверстия функций, которые DotNetOpenAuth запутывает при портировании на моно, поэтому эти моно ветки довольно старые.

Я хотел бы назвать, что ваше "все, что мне нужно, это простой клиент, а не поставщик", кажется, выглядит опасно плохо информированным. Нет OpenID или OAuth 1.0 клиент прост. Правильное решение и безопасность - на самом деле очень большая работа. Кроме того, если вы полностью поддерживаете и защищаете клиентскую сторону (RP), добавление серверной части (провайдера) на самом деле на самом деле является лишь очень маленьким добавлением, поскольку RP и OP могут использовать столько кода.

Итак, DotNetOpenAuth поддерживает больше сценариев, чем вам нужно. Но не большинство библиотек? Пожалуйста, посмотрите Аргумент для дополнительной зависимости библиотеки.

И отбросьте записку моно-разработчикам с просьбой исправить ошибки и заполнить отверстия в моно, чтобы DotNetOpenAuth работал лучше на нем. Я спрашивал их неоднократно, но я думаю, им нужно услышать, как больше разработчиков просят об этом.

Ответ 2

Я нахожусь в этой же ситуации. Библиотеки OAuth для других платформ (например, Python) гораздо проще и элегантнее, и, похоже, содержат большую часть сложности OAuth, поэтому с точки зрения клиента это всего лишь несколько строк кода (что является признаком хорошо продуманного библиотека, IMHO).

Я, наконец, поселился в Hammock - библиотеке, которая помогает потреблять успокоительные API, включая поддержку OAuth 1.0A.

Ответ 3

Год назад я исправил фактическую ветвь mono2 DNOA. Он действительно старый, но он работает (хотя и пытался использовать OpenID-часть), и я все еще использую его для нескольких проектов. Не знал, что текущая ветвь mono2 все еще непригодна: (

https://github.com/sztupy/dotnetopenid

Ответ 4

При разработке моего собственного провайдера я пробовал около 5 разных библиотек, прежде чем опираться на DotNetOpenAuth, и это действительно дало наилучшие результаты. Одна из проблем с OpenID заключается в том, что RP и IP иногда имеют довольно сложную связь из-за того, насколько разнообразны реализации. Моя первая попытка с другой библиотекой привела к тому, что OpenIDs работали только примерно на 50% сайтов, на которых я тестировал. DotNetOpenAuth работал около 90%. Я бы ожидал аналогичных параллелей производительности при тестировании этого со стороны сторонников Relying Party. Одна из альтернатив, которую вы могли бы изучить, - это Janrain RPX, который также является высоким качеством.

Ответ 5

Identity Server (IdSrv)

OpenID Connect и OAuth 2.0 Framework для ядра ASP.NET

Источник: https://github.com/IdentityServer

Смотрите это видео для ознакомления https://vimeo.com/154172925

Microsoft AspNet.Security.OpenIdConnect.Server (ASOS)

AspNet.Security.OpenIdConnect.Server - продвинутый OAuth2/OpenID Подключить инфраструктуру сервера для ASP.NET Core 1.0 (ранее известный как ASP.NET 5) и OWIN/Katana, предназначенные для низкоуровневого, протокол-первый подход.

Источник: https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server

OpenIddict

OpenIddict нацелен на предоставление простого и простого в использовании решения для реализовать сервер OpenID Connect в любом приложении ASP.NET Core.

Источник: https://github.com/openiddict/openiddict-core

Ответ 6

Не совсем альтернатива DotNetOpenAuth, хотя я считаю, что это может быть полезно для вас. Чтобы решить подобную проблему, мне нужен был только простой экран OpenID для входа в систему - я нашел openid-selector. У них есть несколько очень простых примеров (jQuery, MooTools и библиотеки прототипов могут быть использованы), как настроить страницу входа, аналогичную переполнению стека.