2011-07-18 19 views
11

estoy mirando a la aplicación Twitter OAuth propone aquí:OAuth: incrustando el secreto del cliente en su aplicación?

https://dev.twitter.com/docs/auth/oauth 

y oauth bibliotecas como señal:

http://code.google.com/p/oauth-signpost/ 

que ambos hablan sobre el uso de la clave secreta de cliente durante el flujo de OAuth, lo que significa para mi aplicación cliente, necesitaría almacenar el secreto en la aplicación misma. Esto es probablemente arriesgado ya que alguien podría sacar el secreto de mi aplicación. ¿Hay algún método para almacenar el secreto dentro de mi aplicación? ¿Estoy entendiendo mal el oauth flow?

Gracias

Respuesta

3

No hay manera de almacenar las credenciales del cliente en una aplicación nativa o JavaScript sin hacerlos prácticamente pública. Además, poner esas credenciales en un servidor proxy y hacer que el cliente hable con el servidor (para que las credenciales no se expongan) tampoco soluciona nada. Ahora tiene un problema para autenticar al cliente al proxy.

La solución correcta es contar con soporte especial para aplicaciones nativas proporcionadas por el servicio OAuth. OAuth 2.0 utiliza URI de redireccionamiento prerregistrado y otras técnicas para lograr una verificación de identidad de cliente razonable para dichos clientes.

+2

¿Podría profundizar en eso? He leído rápidamente el borrador - http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-9 - ¿Esto significa que las aplicaciones nativas no emplean un "secreto de cliente" cuando usando OAuth? ¿Podría describir el flujo requerido? –

+3

Las aplicaciones nativas no deben usar un secreto de cliente porque no tiene ningún valor real y crea una falsa sensación de seguridad. –

Cuestiones relacionadas