Estamos construyendo una API REST usando ASP.NET MVC. Esta API es similar en principio y uso a la API de Factual v3. Usan Oauth 1 de 2 patas para su API. Nuestro diseño es muy similar en que las aplicaciones, principalmente móviles, usarán nuestra API detrás de escena para proporcionar un servicio. El usuario final de la aplicación no sabrá sobre nuestra API y, por lo tanto, no tendrá ninguna credencial. Por lo tanto, redirigir al usuario a través de una ventana del navegador a un formulario de autenticación (como Facebook) no tiene ningún sentido. Mis preguntas son ..¿Qué es lo mejor para auth ASP.NET MVC REST API? OAuth 2.0 u OAuth 1.0?
- ¿Por qué OAuth2 flow es el mejor para usar en este escenario?
- ¿Deberíamos incluso usar Oauth2 o simplemente pegarnos con OAuth 1 de 2 patas?
Como referencia estamos usando C#/.NET, ASP.NET MVC 3 y planeamos usar DotNetOpenAuth v4.
http://developer.factual.com/display/docs/Factual+Developer+APIs+Version+3
Dado que Oauth2 es nuevo, vamos con Oauth1. Descargué la última versión de DotNetOpenAuth 4 (rc1). Estoy teniendo un tiempo de toque ordenando a través de todos los ejemplos para encontrar uno que sea similar a lo que necesitamos. Estamos utilizando ASP.NET MVC 4 Web Api para construir la API de descanso. Realmente solo necesito la capacidad de firmar una solicitud usando oauth con una clave api y un secreto, luego en el lado del servidor tengo un atributo de autorización que descodifica esta solicitud y la valida contra la clave y el secreto en la base de datos. ¿Qué ejemplo debería seguir? – craigtadlock
Las muestras OAuthServiceProvider y OAuthConsumer son las más relevantes. Pero parece que los usuarios son irrelevantes para su escenario, por lo que parece que está describiendo [0-legged OAuth] (http://blog.nerdbank.net/2011/06/what-is-2-legged-oauth .html). Si bien no creo que haya una muestra específica para eso, debería ser bastante sencillo trasladar las muestras anteriores para que se adapte a sus necesidades. –