oAuth ASP.NET членство провайдер - PullRequest
37 голосов
/ 31 июля 2009

Существуют ли рекомендуемые ресурсы для реализации настраиваемого поставщика членства, который использует oAuth? Цель состоит в том, чтобы пользователи могли войти в мое приложение ASP.NET MVC, используя свои существующие учетные данные oAuth. После аутентификации пользователя я хотел бы использовать встроенные функции авторизации ASP.NET.

Спасибо.

Ответы [ 4 ]

45 голосов
/ 06 августа 2009

Я не уверен, что вы ищете OAuth.

OAuth - для делегирования авторизации с использованием токенов. В зависимости от того, что вы делаете, у вас есть два сценария:

  1. Ваше приложение хочет использовать данные некоторых пользователей, размещенные у провайдера (например, в твиттере или в Google). В этом случае ваше приложение будет потребителем - короче говоря, пользователь должен будет войти в систему и согласиться разрешить вашему приложению доступ к его данным на провайдере, и вам будет выдан токен доступа, который можно использовать. получить доступ к этим защищенным ресурсам.
  2. В качестве альтернативы у вас есть приложение с пользователями, у которых есть входы в систему и т. Д. И вы хотите предоставить (то есть, вы являетесь поставщиком) доступ к некоторой ограниченной информации ваших пользователей для сторонних приложений (потребителей), не подвергая ваш учетные данные пользователей этих служб.

Для получения дополнительной информации об OAuth - посетите веб-сайт OAuth.Net . В настоящее время для .Net доступны 3 реализации OAuth.

Из-за того, как работает OAuth, я не могу себе представить, как у вас может быть поставщик членства «OAuth» - он действительно предназначен для защиты API, и часто цель состоит в том, чтобы делегировать авторизацию на более детальном уровне, т.е. потребительские приложения получают доступ только к данным адресной книги пользователей, не предоставляя им доступ к архивам электронной почты, их календарю и т. д., что не вписывается в модель безопасности на основе членства / роли.

Полагаю, что вы действительно ищете, так это OpenId, то есть способ аутентификации в самом Stackoverflow. Я бы посоветовал прочитать пример Stackoverflow OpenId здесь и, вероятно, лучшую реализацию OpenId для .Net в настоящее время является частью проекта DotNetOpenAuth (формально он назывался DotNetOpenId, сайт кода Google для проект здесь ).

6 голосов
/ 31 июля 2009

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

2 голосов
/ 05 сентября 2012

вы должны взглянуть https://github.com/rustd/ASPNETTemplates, который имеет шаблоны проектов по умолчанию для asp.net, которые демонстрируют вход в систему с использованием OAUth, а затем расширяют универсальные поставщики (шаблон веб-форм, но вы можете сделать то же самое для mvc), чтобы сделать роли и т. д.

1 голос
/ 11 июля 2015

Библиотеки прошли долгий путь с тех пор, как вы задали этот вопрос ... Я начал использовать эту библиотеку для Oauth - она ​​уже реализовала интеграцию с Facebook, Twitter, PayPal и Google+:

OAuth2 Социальные логины - Facebook, Google, Twitter, PayPal - ASP.NET MVC C # библиотека с открытым исходным кодом

Кроме того, если обратная совместимость не является для вас проблемой, Microsoft начала поддерживать популярных поставщиков OAuth ... см. Эту статью:

Microsoft OAuth2 OWIN / Katana интеграция с Facebook и Google +

...