2010-08-18 17 views
13

He leído un poco sobre esto en http://oauth.net/, es "una forma simple de publicar e interactuar con datos protegidos" al parecer.¿Alguien puede explicar OAuth?

Creo que es exactamente lo que necesito para proporcionar una forma segura de acceder a los datos desde una aplicación de Android/iphone a través de un servicio web REST, pero no puedo encontrar exactamente lo que es.

Por lo tanto, en pocas palabras, ¿qué es exactamente lo que hace y hay ejemplos (realmente) simples de esto en acción que puedo seguir, preferiblemente implementando algo en C# que se puede acceder desde una aplicación de teléfono inteligente?

+1

Es como OpenID, excepto diferente. Esta publicación lo explica bien: http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing –

+0

Si la llamada OAuth "simple" "Deberían probar la autenticación básica de HTTP. –

Respuesta

13

Desde el enlace proporcionado por Craig Stuntz:

Open ID le da un inicio de sesión para múltiples sitios. Cada vez que necesite iniciar sesión en Zooomr, un sitio que utiliza Open ID, será redireccionado a su sitio de Open ID donde inicia sesión, y luego de regreso a Zooomr. OAuth le permite autorizar a un sitio web, el consumidor, a acceder a sus datos desde otro sitio web, el proveedor. Por ejemplo, si desea autorizar a un proveedor de impresión, llámelo Moo, para tomar sus fotos de un repositorio de fotos, llámelo Flickr. Moo te redirigirá a Flickr, que te preguntará, por ejemplo, "Moo quiere descargar tus fotos de Flickr. ¿Eso es genial? ", Y luego de vuelta a Moo para imprimir sus fotos.

DotNetOpenAuth es una buena biblioteca de C# para Open ID y OAuth.

13

OAuth es una forma alternativa para que las aplicaciones mantengan los datos de inicio de sesión sin tener almacenados los datos reales.

Cuando inicia sesión en alguna página, generalmente tiene un nombre de usuario y una contraseña personal, o cualquier otro tipo de credenciales de inicio de sesión. Ahora, si desea que una aplicación pueda hacer cosas con ese inicio de sesión, deberá proporcionarle a esa aplicación sus datos de inicio de sesión originales. Lo que significa que ingresas tu nombre de usuario y tu contraseña en la aplicación. Eso no está mal hasta ahora, pero el hecho es que si desea permanecer conectado a través de esa aplicación, necesita almacenar sus credenciales. Pero para que sea posible enviar los datos de inicio de sesión correctos a la página real, debe almacenarlos en su forma original (solo con algún cifrado o algo así). Entonces, si alguien sabe cómo se almacenan los datos en la aplicación, puede extraer sus credenciales de inicio de sesión originales.

Este es un problema de seguridad y es exactamente donde OAuth entra. Con OAuth, cada aplicación se identifica con una clave de consumidor y un secreto de consumidor. Ambos son exclusivos del cliente y, por lo general, ningún usuario podrá verlos (especialmente el secreto). Ahora, cuando desee permitir que su aplicación tenga acceso a la página, comenzará el proceso de autorización de OAuth. Simplemente inicie sesión en la página y explícitamente permita esa aplicación especial (identificada por la clave del consumidor) para tener acceso. Si lo hace, la aplicación recibirá otro par de claves, el token de acceso y el secreto de acceso. Ese par de claves solo funciona para su cuenta y solo funciona cuando lo usa la aplicación exacta (identificada por la clave del consumidor y protegida por el secreto del consumidor como la aplicación original). Ahora, toda la aplicación necesita almacenar ese par de claves de acceso (junto con el par de claves del consumidor ya almacenadas) y tendrá acceso a la página sin siquiera ver los datos de inicio de sesión originales.

De esta manera, nadie podrá obtener sus datos de inicio de sesión reales, y nadie más (ni ninguna otra aplicación) podrá usar las credenciales de acceso generadas para acceder a la página. Y si no desea que la aplicación tenga acceso, puede revocar fácilmente el par de claves de acceso, para que la aplicación no pueda seguir utilizándolo.

Entonces OAuth es solo una forma de proteger sus datos de inicio de sesión reales. Aparte de eso, no agrega ningún otro nivel de seguridad o algo así, es solo para asegurar sus datos.

+0

Esta es una explicación brillante de OAuth. Otra buena explicación que encontré para dummies como yo es en https://blog.varonis.com/introduction-to-oauth/ – snark

Cuestiones relacionadas