10

¿Cuál de las funciones de autenticación básica, digest auth y Oauth debo usar para que mi aplicación web permita a los usuarios acceder a los recursos a través de llamadas Restful API?HTTP basic auth, digest auth y Oauth?

¿No es Oauth la mejor solución que reemplaza la autenticación básica y digerida?

+0

Sitio genial tratando de arrojar luz: http://oauthbible.com/ – SudoPlz

Respuesta

2

Estoy tratando de encontrar la respuesta a este también. Yo diría que depende de cuál sea el alcance de su aplicación deseada. OAUTH restringe el acceso a los desarrolladores que tendrían que construir un cliente para hacer el apretón de manos.

Basic puede trabajar con muchos clientes de navegadores de datos como Sesame y también funciona con Excel 2010, así como con cualquier navegador anterior. el único problema es que las contraseñas viajen sin obstáculos, lo que puede mitigarse alojando su aplicación a través de https.

Desafortunadamente no sé mucho sobre la digestión.

Estoy tratando personalmente de probar una implementación de cada uno: http basic y oauth.

18

pasando por alto muchos detalles aquí, pero:

http básica: enviar nombre de usuario & contraseña en el claro en la cabecera Autorizar

HTTP Digest: enviar nombre de usuario & contraseña, donde la contraseña ha sido desmenuzada por un servidor proporcionado nonce

Ambas versiones de oauth originalmente diseñadas para otorgar a terceros acceso a recursos que no son de su propiedad (por ejemplo, permití que la aplicación de fotos para móviles publique en Facebook en mi nombre) sin tener que proporcionar mis credenciales al tercero. Ambos de estos protocolos funcionan básicamente de la siguiente manera:

  • Desde la aplicación de fotografía móvil, el usuario se dirige a la página de acceso de facebook
  • Una vez que han iniciado la sesión, se les redirige de nuevo a la aplicación de fotos móvil con un código.
  • La aplicación de fotos móvil luego canjea este código por un token de acceso
  • La aplicación de fotos para dispositivos móviles puede realizar solicitudes a Facebook para publicar mis fotos en mi muro.

oauth1.0a: más seguro que el juramento2, pero más difícil de implementar también requiere que todas las solicitudes se firmen.

oauth2: depende de ssl para la seguridad y no requiere la firma de solicitud. Si bien su autor principal abandonó el proyecto porque cree que no cumple con ninguno de sus objetivos de diseño originales (seguridad, interoperabilidad), es ampliamente utilizado por Facebook y Google.

Aquí están algunos artículos que he encontrado útil aquí:

insuficiente de mojo que liga a los RFC, pero esas son las fuentes definitivas, si es poco digerible

+3

Esta debería ser la respuesta aceptada. –

+0

Para su información, Oauth2.0 usa autenticación HTTP básica en algunas partes de su flujo. – garbagecollector

+0

Hmm .. No veo una diferencia real entre la autenticación implícita HTTP con qop = auth-int ([rfc2617, junio de 1999] (http://tools.ietf.org/html/rfc2617), y la autorización OAuth 1 scheme (2010) ... no estoy seguro de qué se trata el alboroto OAuth :-) – Kenney

4

Phil Sturgeon tiene un libro electrónico decente (Build APIs You Won't Hate) con un capítulo completo dedicado a la Autenticación. Cubre:

  • básico
  • Digesto
  • OAuth 1.0a
  • OAuth 2

me gustaría recomendar altamente leerlo si usted está considerando la implementación de estos mecanismos dentro de su API REST.

Actualización ¿Por qué el voto a favor?