Pregunta

¿Hay algún recurso recomendado para implementar un proveedor de membresía personalizado que use oAuth? El objetivo sería que los usuarios inicien sesión en mi aplicación ASP.NET MVC utilizando sus credenciales oAuth existentes. Después de autenticar al usuario, me gustaría aprovechar las funciones de autorización ASP.NET integradas.

Gracias.

¿Fue útil?

Solución

No estoy seguro de lo que estás buscando es OAuth.

OAuth es para delegar autorización, mediante el uso de tokens. Dependiendo de lo que esté haciendo, tiene dos escenarios:

  1. Su aplicación quiere usar algunos de los datos de los usuarios, alojados por un proveedor (por ejemplo, twitter o google). En cuyo caso su aplicación sería un consumidor; en resumen, el usuario necesitaría iniciar sesión y aceptar autorizar su aplicación para tener acceso a sus datos en el proveedor, y se le otorgaría un token de acceso que se puede usar para acceder a esos recursos protegidos.
  2. Alternativamente, tiene una aplicación, con usuarios que tienen inicios de sesión, etc. Y desea proporcionar (es decir, usted es el proveedor) acceso a cierta información restringida de sus usuarios a aplicaciones de terceros (consumidores) sin exponer su credenciales de los usuarios para esos servicios.

Para obtener más información sobre OAuth, consulte el sitio web de OAuth.Net . Actualmente hay 3 implementaciones de OAuth disponibles para .Net.

Debido a la forma en que funciona OAuth, realmente no puedo imaginar cómo podrías tener un " OAuth " proveedor de membresía: en realidad está destinado a proteger las API, y a menudo el objetivo es delegar la autorización a un nivel más granular, es decir, otorgar a una aplicación de consumidor acceso solo a los datos de la libreta de direcciones de los usuarios, sin permitirles acceder a archivos de correo electrónico, su calendario, etc. no encaja bien con un modelo de seguridad basado en membresía / rol.

Supongo que lo que realmente está buscando es OpenId, es decir, la forma en que se autentica con Stackoverflow. Sugeriría leer el Stackoverflow Caso práctico de OpenId aquí y probablemente el mejor OpenId La implementación de .Net actualmente forma parte del DotNetOpenAuth (esto se llamó formalmente DotNetOpenId, el google sitio de código para el proyecto está aquí ).

Otros consejos

Creo que podría estar buscando DotNetOpenAuth . No lo he usado, por lo que no puedo decirle con certeza si incluye un proveedor de membresía, pero esperaría que lo haga. De lo contrario, es de código abierto, por lo que debería ayudarlo con lo que está tratando de hacer de todos modos.

debería echar un vistazo https://github.com/rustd/ASPNETTemplates que tiene el valor predeterminado plantillas de proyecto para asp.net que demuestran iniciar sesión usando OAUth y luego extender los proveedores universales (plantilla de formularios web pero puede hacer lo mismo para mvc) para hacer roles, etc.

Las bibliotecas han recorrido un largo camino desde que publicó esta pregunta ... Empecé a usar esta biblioteca para Oauth: ya ha implementado la integración de Facebook, Twitter, PayPal y Google+:

OAuth2 Social Logins - Facebook, Google, Twitter, PayPal: biblioteca de código abierto ASP.NET MVC C #

Además, si la compatibilidad con versiones anteriores no es un problema para usted, Microsoft ha comenzado a admitir proveedores populares de OAuth ... vea este artículo:

Integración de Microsoft OAuth2 OWIN / Katana con Facebook y Google+

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top