¿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 .
- OAuth / OpenID - ¿Qué debo usar?
- OAuth + Twitter en Android: falla de devolución de llamada
- ¿Puedo usar el AccountManager de Android para obtener el token de acceso de OAuth para AppEngine?
- Android Twitter con error oauth-signpost Error en la autorización (servidor respondió con un 401)
- Algunas preguntas sobre OAuth y Android
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?
- Android: Google SSO - OAuth o AccountManager? ¿O ambos?
- Creación de aplicaciones para iphone y Android para aplicaciones de rails existentes
- El redireccionamiento de las pestañas personalizadas de Chrome a la aplicación para Android cerrará la aplicación.
- Android: controla la devolución de llamada de OAuth mediante el filtro de intenciones
- Cómo guardar el token de acceso de Oauth de forma segura en android
- Uso de Google OAuth 2 en dispositivos incrustados basados en Android
- Cómo usar la API de inicio de sesión de Google con Cordova / Phonegap
- ¿No debería Android StoreManager almacenar símbolos de OAuth en una base de datos por aplicación / UID?
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
- Android: ¿Qué tan segura es la base de datos con la aplicación
- StaggeredGridLayoutManager cambiar spanCount dinámicamente RecylerView