android - pasa - que son las credenciales de gmail
La mejor forma de permitir que los usuarios accedan a tu aplicaciĆ³n usando sus credenciales de Google (2)
La forma recomendada es utilizar el nuevo inicio de sesión de Google+: https://developers.google.com/+/mobile/android/sign-in
Si tiene una aplicación de Android que requiere el registro de usuarios y desea permitir que sus usuarios inicien sesión a través de Google, ¿cómo manejaría esto?
Me gustaría mantener el inicio de sesión de Google+ fuera de la discusión aquí. Tampoco estamos utilizando las credenciales de los usuarios para acceder a las API de Google y no estoy interesado en el acceso adicional a las funciones sociales de Google+.
Parece que hay una cantidad de opciones:
Use OAuth2.0 para la autenticación
Documentado en la página de inicio de sesión de Google OAUth2
Esto realmente no menciona a Android, pero está (en parte) basado en tokens de acceso OAuth2 pero más importante aún en la validación de un token web JSON id_token.
Esta forma de autenticar usuarios también implica el lanzamiento de un WebView para permitir a los usuarios iniciar sesión en su cuenta de Google y una verificación bastante compleja de id_token.
Usa los servicios de OAuth2 / Google Play
Hay una muestra en Google Play Services que se enfoca más en la autorización. Utiliza GoogleAuthUtil.getToken para recuperar un access_token. Una parte de esto es definitivamente la autenticación, ya que el diálogo indica "Iniciar sesión en ...".
¿Es correcto suponer que es una mala práctica usar el flujo OAuth2.0 con access_token como mecanismo de autenticación? (almacenando el token de acceso como un token de autenticación).
Soporte de inicios de sesión de Facebook / Twitter
La razón por la que estoy preguntando es por la forma en que Twitter y Facebook te recomiendan implementar un proceso de autenticación "Iniciar sesión con ..."
Esto también parece estar basado puramente en tokens de acceso OAuth.
¿Alguna otra opción que no conozco que le permita autenticar usuarios con su cuenta de Google?
Lo que necesitas es esto http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html
es decir, obtener un token de identificación y usarlo para iniciar sesión en el back-end de su aplicación.
Tienes razón. En general, es una mala idea usar token de acceso para la autenticación. Hemos realizado múltiples presentaciones para advertir a los desarrolladores al respecto. https://docs.google.com/presentation/d/1klTZheiQIhcty6MKvTYS12cw1Vyn4T1R4d60QCRYM60/edit?usp=drive_web
Si no hay otra opción y solo uno tiene un token de acceso, es posible que pueda hacer una verificación adicional para usarlo para iniciar sesión y mitigar posibles problemas de seguridad. Existe una razón por la cual ID Token fue diseñado en OpenIDCOnnect y es para autenticación.