O Android possui um sistema centralizado para gerenciar credenciais para serviços online (como sua conta do Google). Um componente é chamado de AccountManager
. Alguns aplicativos podem " agir como um autenticador de conta ". Isso significa que eles entendem como fazer login em um serviço online específico e podem fazer login nesse serviço para o AccountManager
. Outros aplicativos desejam usar essas informações de login para identificá-lo ou executar ações em seu nome, sem que você precise digitar sua senha todas as vezes.
Exemplo: fazendo login no Google
Seu telefone possui um aplicativo interno que "atua como um autenticador de conta" para sua conta do Google. Ele sabe como fazer login no Google e possui o e-mail e a senha que você digitou quando configurou o telefone. Há também um aplicativo do YouTube, que deseja fazer login para mostrar seus vídeos favoritos e permitir que você comente, mas sem precisar digitar seu e-mail e senha novamente.
Este aplicativo do YouTube conversa com o AccountManager
e pergunta se ele possui credenciais para uma conta do Google. Para fazer esta pergunta, é necessária a permissão "encontrar contas no dispositivo". Ele AccountManager
possui uma lista de autenticadores instalados no telefone, que são consultados para responder a esta pergunta. Se houver credenciais, o aplicativo solicitará o que é conhecido como um autorto da conta do Google. Esta solicitação requer a permissão " usar contas no dispositivo ".
Em AccountManager
seguida, ele pergunta se você deseja que o aplicativo solicitante (YouTube) possa usar a conta solicitada (conta do Google). Pode estar em uma caixa de diálogo exibida sobre o aplicativo ou em uma notificação. Como alternativa, o aplicativo pode optar por não fazer nada se você ainda não tiver respondido sim a esta pergunta: ele pode perguntar mais tarde em um momento mais conveniente. Esta etapa garante que um aplicativo com a permissão "usar contas no dispositivo" não possa usar imediatamente todas as contas sem perguntar.
Se você disser sim, AccountManager
encaminha a solicitação ao autenticador (o aplicativo interno do Google). O que acontece a seguir depende do autenticador e do serviço específico em que você está efetuando login. Pode ser necessário fazer login, se você não tiver feito isso anteriormente, e o login pode exigir um nome de usuário e senha, uma foto, um SMS ou algo completamente diferente. O que quer que o autenticador faça, ele pode falhar ou devolver uma autenticação ao aplicativo solicitante.
Verificações adicionais
O autenticador e o serviço online também podem controlar quais ações o aplicativo solicitante pode executar. Por exemplo, quando você conecta um aplicativo à sua conta do Google, o Google lista as permissões que o aplicativo precisa (como "enviar vídeos" para o YouTube). Assim, o aplicativo pode apenas executar as ações listadas. No entanto, alguns serviços podem não ter nada parecido; para esse serviço, depois de permitir que o aplicativo use suas credenciais, ele poderá executar qualquer ação em seu nome.
Depois que o aplicativo solicitante obtiver o authtoken, ele poderá continuar a usá-lo para executar ações em seu nome sem mais nenhuma interação sua. Ou seja, depois que você concordar que o Twitter Client de Dan pode postar em seu feed do Twitter, ele poderá ser executado em segundo plano e postar mais tweets sem você saber. Você só deve conceder ao aplicativo acesso às suas credenciais se confiar que não fará isso.
Sumário
Um aplicativo com a permissão " usar contas no dispositivo " pode, uma vez instalado, solicitar que você acesse um serviço online (como Google, Facebook ou Twitter) em seu nome. Você pode optar por deixá-lo acessar o serviço ou não. Se você permitir que ele acesse o serviço, quais ações ele poderá executar em seu nome poderá ser limitado pelo serviço (depende do serviço) e o serviço poderá permitir que você revogue essa permissão posteriormente (geralmente por meio de uma lista de "aplicativos conectados" "no site do serviço).