Android tiene un sistema centralizado de administración de credenciales para servicios en línea (como su cuenta de Google). Uno de los componentes se llama AccountManager
. Algunas aplicaciones pueden actuar como un autentificador de cuentas ". Esto significa que entienden cómo acceder a un servicio en línea particular, y pueden acceder a ese servicio para el AccountManager
. Otras aplicaciones quieren usar esa información de inicio de sesión para identificarte o realizar acciones en tu nombre, sin que tengas que introducir tu contraseña cada vez.
Ejemplo: acceder a Google
Tu teléfono tiene una aplicación integrada que "actúa como un autentificador de cuenta" para tu cuenta de Google. Sabe cómo acceder a Google, y tiene el correo electrónico y la contraseña que introdujiste cuando configuraste el teléfono. También hay una aplicación de YouTube, que quiere iniciar sesión para mostrar tus vídeos favoritos y permitirte comentarlos, pero sin tener que volver a introducir tu correo electrónico y tu contraseña.
Esta aplicación de YouTube habla con el AccountManager
y pregunta si tiene alguna credencial para una cuenta de Google. Hacer esta pregunta requiere el permiso de "encontrar cuentas en el dispositivo". El AccountManager
tiene una lista de autentificadores instalados en el teléfono, que consulta para responder a esta pregunta. Si tiene alguna credencial, la aplicación preguntará por lo que se conoce como un authtoken para la cuenta de Google. Esta solicitud requiere que el " utilizar las cuentas en el dispositivo "Permiso".
El AccountManager
luego te pregunta si quieres que la aplicación solicitante (YouTube) pueda usar la cuenta solicitada (cuenta de Google). Esto puede ser en un diálogo que aparece sobre la aplicación, o en una notificación. Como alternativa, la aplicación puede optar por no hacer nada si aún no has respondido afirmativamente a esta pregunta: es posible que quiera preguntar más tarde en un momento más conveniente. Este paso garantiza que una aplicación con el permiso de "usar cuentas en el dispositivo" no pueda usar inmediatamente todas las cuentas sin preguntar.
Si dices que sí, el AccountManager
reenvía la solicitud al autentificador (la aplicación incorporada de Google). Lo que sucede a continuación depende del autentificador y del servicio particular al que se está conectando. Es posible que tenga que iniciar sesión si no lo ha hecho antes, y para ello puede necesitar un nombre de usuario y una contraseña, una foto, un SMS o cualquier otra cosa. Sea lo que sea que haga el autentificador, puede fallar o devolver un authtoken a la aplicación solicitante.
Otras comprobaciones
El autentificador y el servicio en línea también pueden controlar qué acciones puede realizar la aplicación solicitante. Por ejemplo, cuando conectas una aplicación a tu cuenta de Google, Google enumera los permisos que la aplicación necesita (como "subir vídeos" para YouTube). Por lo tanto, la aplicación sólo puede realizar las acciones indicadas. Sin embargo, es posible que algunos servicios no tengan nada de eso; para un servicio de este tipo, una vez que hayas permitido que la aplicación utilice tus credenciales, puede tomar cualquier acción en tu nombre.
Una vez que la aplicación solicitante ha obtenido el authtoken, puede seguir utilizándolo para realizar acciones en su nombre sin ninguna otra interacción por su parte. Es decir, una vez que has aceptado que el cliente de Twitter de Dan puede publicar en tu Twitter, puede funcionar en segundo plano y publicar más tweets sin que tú lo sepas. Sólo deberías conceder a la aplicación acceso a tus credenciales si confianza no para hacer eso.
Resumen
Una aplicación con el " utilizar las cuentas en el dispositivo " puede, una vez instalado, te preguntaré para acceder a un servicio en línea (como Google, Facebook o Twitter) en tu nombre. Puedes elegir si quieres que acceda al servicio o no. Si le permite acceder al servicio, ¿qué acciones puede realizar en su nombre? podría estar limitado por el servicio (depende del servicio), y el servicio podría le permiten revocar ese permiso más tarde (normalmente a través de una lista de "aplicaciones conectadas" en el sitio web del servicio).
1 votos
He encontrado un ejemplo de la API de Android de lo que se puede hacer usando este permiso: goo.gl/gjkJB . Desde mi punto de vista como desarrollador, esto significa un acceso a TODO . Una vez que un usuario tiene el token de una cuenta, puede acceder a cualquier servicio que ésta ofrezca: El flujo de Facebook, los correos electrónicos de Google TODO .
0 votos
TBH, muchos usuarios no leer los permisos en play store y descargar a ciegas, no sé si realmente hacer ¡leer lo que la play store les dice antes de la descarga como en el listado de los permisos, como tratarlo como una cosa de EULA y saltarlo a la siguiente parte... solo digo... pero estás implicando que el permiso es "OMG, mis correos electrónicos pueden ser fisgoneados" basado en la mayúscula de énfasis en la palabra todo, sí, una mala aplicación puede hacer todo tipo con ella! Solo hay que usar el sentido común :)
0 votos
Eso es en relación a cualquier cosa que tenga o use tokens y credenciales OAuth como correos electrónicos, facebook, calendario, pero para los mensajes como en los SMS de texto, se requiere READ_SMS_PERMISSION... solo digo...
1 votos
@t0mm13b - Dar permisos específicos (OAuth) para leer mensajes, por ejemplo, es mucho menos intrusivo que dar acceso completo a una cuenta.
1 votos
Relacionado: ¿Qué significan los permisos que requieren las aplicaciones?