2012-08-29 17 views
8

Soy un principiante de Python, y quiero hacer un cliente básico de tareas de google. Será una aplicación nativa. El punto que no puedo entender es cómo mantener en secreto el "secreto del cliente", ya que debe incluirse en el código del programa.Aplicación de Python instalada e ID de cliente de Google

He buscado y encontrado una publicación, citando una publicación de foros de Google, y, básicamente, sugiero regalar la cosa.

He pasado horas tratando de entenderlo, pero no tengo respuesta por el momento. Entonces, tengo dos preguntas para hacer:

  1. ¿Cuáles son las consecuencias de dar secreto al cliente?
  2. Si dejar que las personas vean el secreto es peligroso, ¿hay alguna manera de mantenerlo en secreto o existe una forma de hacer un inicio de sesión clásico para admitir contraseñas específicas de la aplicación para iniciar sesión en la cuenta de Google?

Respuesta

4

Supongo que estás hablando de OAuth.

Sí, ha incorporado el secreto, pero no, en realidad no es un secreto; ver otra publicación aquí: OAuth - embedding client secret in your application?.

Los documentos de Google realmente dicen lo mismo; desde: https://developers.google.com/accounts/docs/OAuth2#installed

El client_id y el client_secret obtenidos durante el registro están integrados en el código fuente de su aplicación. En este contexto, el client_secret obviamente no se trata como un secreto.

Y no hay razón para tratar de protegerlo - tiene que hacer su camino a través del cable para llegar a Google, y cualquier persona con Fiddler, etc. podría verlo en texto plano.

En cuanto al impacto: la idea detrás del secreto del cliente, creo, es proteger al vendedor del cliente (ese eres tú). Teóricamente, si conozco la clave y el secreto de su cliente, podría crear un sitio web/cliente malicioso que permita a los usuarios iniciar sesión legítimamente pero luego borre todas sus tareas y parecería que usted fue el responsable. Probablemente tenga sentido defenderse con los servicios web, pero para un cliente instalado, el usuario presumiblemente lo descargó de algún lugar (tienda de aplicaciones, sitio web, etc.) que con suerte se aseguró de que fuera legítimo.

+0

Muchas gracias por su respuesta, realmente necesitaba algo claro, como su respuesta. Entonces, ¿puedo hacer un formulario de inicio de sesión simple para otorgar acceso? ¿O debería entrar en el mundo Oauth2, que se ve, francamente, difícil? ... –

+1

Do OAuth2 seguro. No es tan desalentador como parece, y en realidad es * menos * trabajo que proporcionar un formulario de inicio de sesión (en OAuth, Google proporciona el formulario). No quiere que los usuarios escriban su contraseña real en su aplicación, por su bien y el suyo (nunca usaría algo que hiciera eso, ¿verdad ?!) ¡Buena suerte! – ckhan

+0

Gracias por sus respuestas @ckhan, ha sido muy útil. –

Cuestiones relacionadas