¿Por qué el flujo oauth2 nativo de Google requiere secreto de cliente?

De acuerdo con los docs de facebook oauth2, el flujo del lado del cliente no requiere el cliente secreto param. Flujo de lado del cliente se puede utilizar en aplicaciones Web nativas y móviles.

Sin embargo, el flujo nativo oauth2 de google requiere secreto de cliente http://code.google.com/apis/accounts/docs/OAuth2.html#IA .

En este caso, el secreto del cliente puede ser robado por el hacker utilizando herramientas de ingeniería inversa.

¿Puede alguien aclarar por qué se hizo de esta manera?

Según un post de un Googler, la razón principal es que utilizan las mismas bibliotecas para las aplicaciones del lado del servidor y las aplicaciones nativas. Suena como que no consideran client_secret ser sensible en el contexto de una aplicación nativa, pero planean eliminarlo gradualmente para el flujo de aplicaciones instalado.

Desde https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8 :

No esperamos que esos secretos permanezcan en secreto; hasta el momento los incluimos en su mayoría, por lo que es conveniente utilizarlos hoy en día con bibliotecas y esperar que dejen de requerirlos en algún momento en el futuro.

Si bien esto podría sonar mal, tenga en cuenta que OAuth nunca tuvo la intención de evitar que los usuarios maliciosos forjaran solicitudes en el contexto de su aplicación para móviles / escritorio.

Si estás preocupado por exponer client_secret, también hay el flujo de cliente que se describe aquí: http://code.google.com/apis/accounts/docs/OAuth2.html#CS Por lo que puedo decir, el cliente -side flow no requiere client_secret y funcionaría bien desde una aplicación de escritorio o móvil.

-Chris

  • Bibliotecas OAuth 1.0 para Android (java)
  • ¿Por qué no puedo crear varios ID de cliente de OAuth 2.0 para el mismo nombre de paquete?
  • Enviar Gmail mediante programación mediante Auth Cookie
  • Woocommerce rest api OAuth autenticación en android
  • LinkedIn scribe OAuth biblioteca no puede permitir el acceso a la cuenta de LinkedIn
  • Android: autenticación de Google
  • Java.lang.NoClassDefFoundError: oauth.signpost.commonshttp.CommonsHttpOAuthConsumer android
  • Cifrar datos en SharedPreferences
  • Signpost OAuth en Android: ¿cómo volver a crear el consumidor entre dos corridas sucesivas?
  • ¿Es OAuth en un teléfono móvil usando un servidor proxy demasiado problema?
  • Android y OAUTH 2.0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.