¿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

  • Woocommerce rest api OAuth autenticación en android
  • Android y Twitter4j: ¿Manejando OAuth con un widget de Webview?
  • El esquema personalizado no parece iniciarse en la intención de la aplicación
  • "Http: // {root_dir} / oauth / token" Archivo no encontrado en Magento para registrar la aplicación REST API
  • Twitter4J + Android: El desafío de autenticación es una excepción nula
  • Respaldo del navegador y actividad de Android
  • Algunas preguntas sobre OAuth y Android
  • HttpURLConnection.getResponseCode () devuelve -1 en segunda invocación
  • API RESTful protegida que puede ser utilizada por la aplicación web (angular), iOS y Android
  • Android: controla la devolución de llamada de OAuth mediante el filtro de intenciones
  • Implementar OAuth2 con las credenciales de contraseña de propietario de recurso en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.