Android имеет централизованную систему управления учетными данными для онлайн-сервисов (таких как ваша учетная запись Google). Один компонент называется AccountManager
. Некоторые приложения могут « действовать как аутентификатор учетной записи ». Это означает, что они понимают, как войти в определенный онлайн-сервис, и могут войти в этот сервис для AccountManager
. Другие приложения хотят использовать эту регистрационную информацию, чтобы идентифицировать вас или выполнять действия от вашего имени, без необходимости каждый раз вводить пароль.
Пример: вход в Google
В вашем телефоне есть встроенное приложение, которое «действует как аутентификатор учетной записи» для вашей учетной записи Google. Он знает, как войти в Google, и у него есть адрес электронной почты и пароль, которые вы ввели при настройке телефона. Есть также приложение YouTube, которое хочет войти в систему, чтобы показать ваши любимые видео и позволить вам комментировать, но без необходимости заново вводить адрес электронной почты и пароль.
Это приложение YouTube AccountManager
обращается к и спрашивает, есть ли у него учетные данные для учетной записи Google. Для ответа на этот вопрос требуется разрешение «найти учетные записи на устройстве». На AccountManager
телефоне установлен список аутентификаторов, с которыми он консультируется, чтобы ответить на этот вопрос. Если у него есть какие-либо учетные данные, приложение запросит так называемый аутентификационный токен для учетной записи Google. Этот запрос требует разрешения « использовать учетные записи на устройстве ».
AccountManager
Спрашивает вас , если вы хотите , запрашивающее приложение (YouTube) , чтобы иметь возможность использовать требуемый счет (счета Google). Это может быть в диалоговом окне, которое появляется поверх приложения, или в уведомлении. В качестве альтернативы, приложение может выбрать ничего не делать, если вы еще не ответили утвердительно на этот вопрос: оно может захотеть спросить позже в более удобное время. Этот шаг гарантирует, что приложение с разрешением «использовать учетные записи на устройстве» не может сразу использовать каждую учетную запись без запроса.
Если вы скажете да, то AccountManager
запрос перенаправляется в аутентификатор (встроенное приложение Google). Что происходит дальше, зависит от аутентификатора и конкретной службы, в которую вы входите. Вам может потребоваться войти в систему, если вы еще этого не сделали, и для входа в систему может потребоваться имя пользователя и пароль, фотография, SMS или что-то еще полностью. Что бы ни делал аутентификатор, он может либо потерпеть неудачу, либо вернуть авторизованный запрос запрашивающему приложению.
Дальнейшие проверки
Аутентификатор и онлайн-сервис также могут контролировать, какие действия может выполнять запрашивающее приложение. Например, когда вы подключаете приложение к своей учетной записи Google, Google перечисляет разрешения, которые необходимы приложению (например, «загружать видео» для YouTube). Таким образом, приложение может выполнять только перечисленные действия. Однако некоторые сервисы могут не иметь ничего подобного; для такой службы, после того как вы разрешили приложению использовать ваши учетные данные, оно может выполнить любое действие от вашего имени.
После того, как запрашивающее приложение получило авторизационный токен, оно может продолжать использовать его для выполнения действий от вашего имени без дальнейшего взаимодействия с вами. То есть, как только вы согласились, что Twitter-клиент Дэна может публиковать в вашем фиде Twitter, он может работать в фоновом режиме и публиковать новые твиты без вашего ведома. Вы должны предоставлять приложению доступ к своим учетным данным, только если вы доверяете этому не делать этого.
Резюме
Приложение с разрешением « использовать учетные записи на устройстве » после установки может попросить вас обратиться к онлайн-сервису (например, Google, Facebook или Twitter) от вашего имени. Вы можете разрешить ему доступ к услуге или нет. Если вы разрешаете ему доступ к службе, то действия, которые он может выполнять от вашего имени, могут быть ограничены службой (это зависит от службы), и служба может позволить вам отозвать это разрешение позже (обычно через список «подключенных приложений»). «на сайте сервиса).