Android tiene un sistema centralizado para administrar las credenciales de los servicios en línea (como su cuenta de Google). Un componente se llama AccountManager
. Algunas aplicaciones pueden " actuar como un autenticador de cuenta ". Esto significa que entienden cómo iniciar sesión en un servicio en línea en particular, y pueden iniciar sesión en ese servicio para el AccountManager
. Otras aplicaciones quieren usar esa información de inicio de sesión para identificarlo o realizar acciones en su nombre, sin que tenga que ingresar su contraseña cada vez.
Ejemplo: iniciar sesión en Google
Su teléfono tiene una aplicación integrada que "actúa como un autenticador de cuenta" para su cuenta de Google. Sabe cómo iniciar sesión en Google, y tiene el correo electrónico y la contraseña que ingresó cuando configuró el teléfono. También hay una aplicación de YouTube, que desea iniciar sesión para mostrar sus videos favoritos y permitirle comentar, pero sin tener que ingresar su correo electrónico y contraseña nuevamente.
Esta aplicación de YouTube habla con el AccountManager
y le pregunta si tiene credenciales para una cuenta de Google. Hacer esta pregunta requiere el permiso "buscar cuentas en el dispositivo". El AccountManager
tiene una lista de autenticadores instaladas en el teléfono, que se consulta a responder a esta pregunta. Si tiene credenciales, la aplicación pedirá lo que se conoce como un token automático para la cuenta de Google. Esta solicitud requiere el permiso " usar cuentas en el dispositivo ".
El AccountManager
entonces le pregunta si desea solicitar la aplicación (YouTube) para poder utilizar la cuenta solicitada (cuenta de Google). Esto podría estar en un cuadro de diálogo que aparece sobre la aplicación, o en una notificación. Alternativamente, la aplicación puede elegir no hacer nada si aún no ha respondido afirmativamente a esta pregunta: es posible que desee preguntar más tarde en un momento más conveniente. Este paso garantiza que una aplicación con el permiso "usar cuentas en el dispositivo" no pueda usar inmediatamente todas las cuentas sin preguntar.
Si dice que sí, AccountManager
reenvía la solicitud al autenticador (la aplicación integrada de Google). Lo que sucede a continuación depende del autenticador y del servicio particular en el que inicie sesión. Es posible que deba iniciar sesión si no lo ha hecho anteriormente, y el inicio de sesión puede requerir un nombre de usuario y contraseña, una foto, un SMS o algo completamente diferente. Independientemente de lo que haga el autenticador, puede fallar o devolver un token automático a la aplicación solicitante.
Más controles
El autenticador y el servicio en línea también pueden controlar qué acciones puede realizar la aplicación solicitante. Por ejemplo, cuando conecta una aplicación a su cuenta de Google, Google enumera los permisos que necesita la aplicación (como "subir videos" para YouTube). Por lo tanto, la aplicación solo puede realizar las acciones enumeradas. Sin embargo, algunos servicios pueden no tener algo así; para dicho servicio, una vez que haya permitido que la aplicación use sus credenciales, puede realizar cualquier acción en su nombre.
Una vez que la aplicación solicitante haya obtenido el token automático, puede continuar usándolo para realizar acciones en su nombre sin ninguna interacción adicional de su parte. Es decir, una vez que haya aceptado que el cliente de Twitter de Dan puede publicar en su feed de Twitter, podría ejecutarse en segundo plano y publicar más tweets sin que usted lo sepa. Solo debe otorgar acceso a la aplicación a sus credenciales si confía en que no lo haga.
Resumen
Una aplicación con el permiso " usar cuentas en el dispositivo " puede, una vez instalada, solicitarle que acceda a un servicio en línea (como Google, Facebook o Twitter) en su nombre. Puede optar por dejar que acceda al servicio o no. Si le permite acceder al servicio, las acciones que puede tomar en su nombre podrían estar limitadas por el servicio (depende del servicio), y el servicio podría permitirle revocar ese permiso más tarde (generalmente a través de una lista de "aplicaciones conectadas "en el sitio web del servicio).