Функция восстановления учетных данных в Менеджере учетных данных позволяет пользователям автоматически восстанавливать аккаунты в приложениях и входить в них при первом открытии приложения после настройки нового устройства. Учетные данные для восстановления, также известные как ключ восстановления, – это тип учетных данных, которые можно сохранить локально или создать резервную копию у поставщика облачных сервисов, а затем использовать для предоставления доступа на новом устройстве пользователя.
В этом руководстве предполагается, что вы знакомы со следующими понятиями:
Преимущества
Преимущества функции восстановления учетных данных:
- Удобство для пользователей. Пользователи могут сразу начать работу с приложением на новом устройстве, не выполняя вход вручную.
- Повышение удержания пользователей и снижение расходов на поддержку. Автоматический вход при обновлении устройства предотвращает отток пользователей и значительно снижает расходы на поддержку, связанные с заброшенными аккаунтами и восстановлением паролей.
- Повышенная безопасность. Фоновое восстановление учетных данных позволяет избежать дополнительных экранов входа и запросов на восстановление доступа к аккаунту вручную, что снижает уязвимость к фишингу и краже учетных данных.
- Мгновенное вовлечение. Вы можете отправлять пользователям уведомления и другие подсказки, как только они начнут использовать новое устройство.
- Поддержка нескольких механизмов аутентификации. К ним относятся:
Обзор процесса
Ниже описаны действия, которые нужно выполнить на каждом устройстве.
На предыдущем устройстве
Генерируйте ключ восстановления сразу после того, как пользователь пройдет аутентификацию в приложении, и при последующих запусках приложения, если пользователь уже вошел в систему. Служба резервного копирования Android автоматически сохраняет сгенерированный ключ восстановления на устройстве, а также в облаке, если это разрешено в настройках резервного копирования.
Чтобы пользователь мог создавать резервные копии в облаке, должны выполняться следующие требования:
- Выполнен вход в аккаунт Google.
- Включено резервное копирование данных Android. Подробнее о резервном копировании данных…
- Настройте способ разблокировки экрана, например графический ключ, PIN-код, пароль или биометрические данные.
Если эти условия не выполняются, выдается ошибка E2eeUnavailableException.
В этом случае перехватите исключение и снова вызовите createCredential() с isCloudBackupEnabled = false, чтобы ключ восстановления по-прежнему сохранялся локально для переноса данных с устройства на устройство.
На новом устройстве
Когда пользователь настраивает новое устройство, функция восстановления учетных данных работает в фоновом режиме. Пользователи могут выбрать, откуда восстановить данные:
- Из резервной копии в облаке. Если используется резервная копия в облаке, ключ восстановления скачивается на новое устройство вместе с данными приложения.
- Перенос данных между устройствами. Когда пользователи переносят данные напрямую между старым и новым устройствами во время настройки, ключ восстановления перемещается со старого устройства на новое через USB-кабель или беспроводное соединение Wi-Fi.
После того как ключ восстановления станет доступен на новом устройстве, вы сможете использовать его для входа пользователя.
Как использовать восстановление учетных данных вместе с резервным копированием данных приложений
Помимо входа в аккаунт, приложение должно переносить локальные настройки пользователя, офлайн-черновики и параметры тёмной темы, чтобы обеспечить полный и беспроблемный переход на новое устройство.
- Восстановление идентификационных данных. Используйте функцию восстановления учетных данных, чтобы автоматически восстанавливать доступ к аккаунту.
- Восстановление состояния и настроек. Настройте автоматическое резервное копирование (
dataExtractionRules), чтобы сохранять пользовательские настройки, локальные базы данных и состояние приложения при переносе данных между устройствами через облако или кабель. Исключите необработанные токены аутентификации, зашифрованный текст Android Keystore, привязанный к оборудованию, и локальный маркерhas_synced_restore_credential, чтобы устаревшее состояние сеанса не копировалось на новое устройство.
Как управлять несколькими профилями и аккаунтами приложений
При реализации функции восстановления учетных данных учитывайте следующие ограничения, связанные с приложениями, поддерживающими несколько аккаунтов, и профилями на уровне системы.
Приложения, в которых выполнен вход в несколько аккаунтов
Некоторые приложения позволяют пользователям переключаться между несколькими активными аккаунтами (например, личным и рабочим аккаунтами электронной почты в одном приложении). Restore Credentials поддерживает только один аккаунт на приложение. Если пользователь вошел в несколько аккаунтов, выберите только один, для которого будет создан ключ восстановления. Обычно это основной или последний использованный аккаунт.
Устройства с несколькими системными профилями
На устройствах с отдельными системными профилями (например, на корпоративном устройстве с управляемым рабочим профилем и личным профилем) ключ восстановления доступен для основного профиля, настроенного во время первоначальной интеграции устройства. Если корпоративные правила запрещают резервное копирование на нескольких устройствах или передачу учетных данных в управляемом рабочем профиле, createCredential() или getCredential() может не вернуть учетные данные. В этом случае приложение должно использовать стандартный вход.
Ограничения
Восстановление учетных данных поддерживается на телефонах, складных устройствах и планшетах с Android 9 (уровень API 28) или более поздней версии и сервисами Google Play версии 242200000 или более поздней. Восстановление между устройствами разных категорий (например, с телефона на Wear OS, Android TV, Android Auto, Android XR или ChromeOS) не поддерживается. Подробнее об аутентификации на устройствах разных типов…
Дальнейшие действия
- Как реализовать восстановление учетных данных. Узнайте, как создавать, получать и удалять ключи восстановления в приложении Android с помощью Менеджера учетных данных.
- Протестируйте восстановление учетных данных. Проверьте, как работает восстановление из облака и с устройства на устройство, в Android Studio или с помощью автоматических тестов резервного копирования JUnit 5.
- Навык восстановления учетных данных Android. Используйте навык Android CLI, чтобы помочь агентам кодирования выполнить двухуровневую интеграцию восстановления учетных данных.