1. Обзор
Пользователи заходят на ваш сервис как через веб-сайт, так и через Android-приложения? Необходимость отдельной авторизации на каждой платформе создает ненужные сложности и может привести к оттоку пользователей.
Технология Digital Asset Links (DAL) решает эту проблему, позволяя вам объявлять связи между вашими веб-сайтами и приложениями. Это позволяет менеджерам паролей, таким как Google Password Manager, обмениваться сохраненными паролями и ключами доступа между ними.
В частности, для настройки файла ссылок на цифровые активы требуются разные связи в зависимости от того, чем вы хотите поделиться:
- Для паролей: Включение
delegate_permission/common.get_login_credsпозволяет менеджерам паролей обмениваться сохраненными паролями между вашим веб-сайтом и приложением. - Для паролей: Поскольку пароли строго привязаны к конкретному веб-домену, Android требует подтверждения права собственности на этот домен. Поэтому необходимо включить
delegate_permission/common.handle_all_urls. Хотя вы можете знать это как разрешение, используемое для ссылок в приложениях Android (глубокие ссылки), это также строгое требование, позволяющее использовать пароли, созданные на одной платформе, на другой.
В результате? Пользователи могут беспрепятственно входить в систему на всех ваших партнерских платформах, используя пароли или ключи доступа, сохраненные только для одной из них.

Внедрение беспрепятственного обмена учетными данными может значительно улучшить пользовательский опыт. Например, после внедрения DAL для обмена учетными данными компания eBay зафиксировала 10-процентное увеличение количества успешных входов в систему .
В этом практическом занятии вы узнаете, как использовать ссылки на цифровые активы для обеспечения обмена учетными данными между вашим веб-сайтом и приложением для Android.
Предварительные требования
- Базовые знания JSON и разработки под Android.
- Знание необходимых компонентов для работы с Android Credential Manager .
Что вы узнаете
- Как настроить совместное использование учетных данных с помощью Google Play Console (рекомендуется).
- Как вручную создать файл
assetlinks.json. - Как настроить Android-приложение для ручной привязки.
- Как включить ввод паролей в Android-приложении, связав его с доменом веб-сайта.
- Как использовать инструменты для генерации и проверки вашей конфигурации.
Что вам понадобится
- Веб-сайт : Возможность разместить JSON-файл по
https://{your-domain}/.well-known/assetlinks.json. - Приложение для Android :
- Для способа использования Play Console : приложение, опубликованное в Google Play.
- Для ручного метода : проект Android, который вы можете изменить и скомпилировать. Обратите внимание, что для корректной работы обмена учетными данными с Google Password Manager приложение должно быть опубликовано в Google Play.
Как это работает
Для корректной работы функции обмена учетными данными необходимо установить двустороннее доверие:
- Веб -> Приложение : На вашем веб-сайте должен быть размещен файл
assetlinks.json, подтверждающий доверие к вашему приложению для Android. - Приложение -> Веб : Ваше приложение для Android должно быть настроено на доверие к вашему веб-сайту.
Мы рассмотрим два способа сделать это: автоматический с помощью Google Play Console (рекомендуется) и ручной с помощью прямых ссылок на цифровые активы.
2. Настройка с помощью Google Play Console (рекомендуется)
Самый простой способ включить обмен учетными данными между вашим веб-сайтом и Android-приложением — это использовать консоль Google Play. Этот метод позволяет связать ваше приложение с веб-сайтом без необходимости изменять манифест приложения или публиковать новую версию приложения. Google Play управляет связью между приложением и веб-сайтом за вас.
Предварительные требования
- Для доступа к странице с глубокими ссылками необходимо предоставить разрешения Play Console.
- Возможность опубликовать файл
/.well-known/assetlinks.jsonна вашем домене.
Для получения дополнительной информации о прямых ссылках см. раздел «Ссылки в приложениях Android» .
Шаги
- В Play Console перейдите в раздел Grow > Deep links .
- Если вашего домена нет в списке, нажмите «Добавить домен» в разделе «Конфигурация приложения» .
- Найдите свой домен и столбец «Совместное использование учетных данных» . Нажмите «Включить» (или убедитесь, что для новых доменов включена опция «Включить совместное использование учетных данных »).
- Скопируйте фрагмент JSON, сгенерированный Play Console.
- Опубликуйте это JSON-содержимое по адресу
https://{your-domain}/.well-known/assetlinks.json. (Если у вас уже есть этот файл, добавьте в него новое сообщение). - Вернувшись в Play Console, нажмите «Создать привязку к веб-сайту» или «Включить общий доступ к учетным данным» .
Теперь Play Console проверит ваши настройки хостинга.

Для корректной работы функции обмена учетными данными ваш хостинг-провайдер должен соответствовать следующим требованиям:
- Доступ к URL-адресу осуществляется по протоколу HTTPS .
- Сервер отвечает с
Content-Type: application/json. - Доступ к URL-адресу возможен без перенаправлений.
После проверки обмен учетными данными активируется! Для распространения изменений конфигурации может потребоваться 1-2 недели.
3. Настройка вручную с использованием ссылок на цифровые активы.
Нужен больший контроль? Или у вас нет доступа к Play Console? Вы можете настроить обмен учетными данными между вашим веб-сайтом и приложением Android вручную. Это включает в себя две основные задачи: размещение JSON-файла на вашем сайте и обновление манифеста вашего приложения Android.
1. Получите цифровой отпечаток вашего приложения.
Перед настройкой беспрепятственного обмена учетными данными убедитесь, что для каждой платформы у вас есть следующее:
Для каждого приложения Android:
- Идентификатор приложения Android , указанный в файле
build.gradleприложения. - Отпечатки SHA256 сертификата подписи.
- (Рекомендуется) Вход пользователя в систему должен осуществляться с помощью API диспетчера учетных данных .
2. Создайте файл ассоциации.
Вам необходимо создать файл assetlinks.json , который определяет взаимосвязи между вашим веб-сайтом и приложением. Используйте delegate_permission/common.get_login_creds для предоставления разрешения на обмен паролями, а delegate_permission/common.handle_all_urls для включения глубоких ссылок и обмена ключами доступа.
Создайте файл с именем assetlinks.json со следующим содержимым. Замените приведенные примеры значений на URL вашего сайта, имя пакета и отпечаток:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
3. Разместите файл
Загрузите файл assetlinks.json в каталог .well-known в корневом каталоге вашего домена.
Местоположение: https://{your-domain}/.well-known/assetlinks.json
Для корректной работы функции обмена учетными данными ваш хостинг-провайдер должен соответствовать следующим требованиям:
- Доступ к URL-адресу осуществляется по протоколу HTTPS .
- Сервер отвечает с
Content-Type: application/json. - Доступ к URL-адресу возможен без перенаправлений.

4. Настройте ваше Android-приложение
Теперь укажите своему Android-приложению, что оно должно доверять этому веб-сайту. Для этого добавьте в манифест ссылку на файл ресурсов, содержащий URL-адрес вашего файла assetlinks.json .
1. Добавьте строковый ресурс.
В res/values/strings.xml добавьте новую строку asset_statements . Обратите внимание на экранированные кавычки!
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. Добавьте метаданные в манифест.
В AndroidManifest.xml добавьте тег <meta-data> внутри элемента <application> , который будет ссылаться на этот строковый ресурс:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
После выполнения этих шагов и публикации новой версии вашего Android-приложения менеджеры паролей, поддерживающие ссылки на цифровые активы (например, Google Password Manager), смогут предлагать учетные данные, сохраненные для www.example.com когда пользователь попытается войти в com.example.app , и наоборот.
4. Проверьте свою настройку.
Перед отправкой крайне важно проверить конфигурацию ссылок на цифровые активы. Некорректный JSON-код или недоступные файлы приведут к незаметной ошибке.
Воспользуйтесь официальным инструментом генерации и проверки форм .

- Введите домен вашего сайта и имя пакета приложения .
- Нажмите «Тестовое выражение» .
- Инструмент проверит, правильно ли размещен файл
assetlinks.jsonи содержит ли он действительную ассоциацию.
5. Совместное использование учетных данных несколькими веб-сайтами.

Если у вас несколько веб-сайтов, использующих одну и ту же систему авторизации (например, example.com и example.co.uk ), вы можете объявить их аффилированными, чтобы учетные данные могли использоваться совместно.
Обмен паролями между несколькими веб-сайтами
Для обмена паролями между веб-сайтами можно объявить связь между web - web , используя delegate_permission/common.get_login_creds .
Например, чтобы example.com мог обмениваться паролями с example.co.uk , файл assetlinks.json , размещенный по адресу https://example.com/.well-known/assetlinks.json должен содержать указание на example.co.uk :
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
Аналогично, в файле https://example.co.uk/.well-known/assetlinks.json необходимо указать целевую страницу example.com .
Совместное использование паролей на нескольких сайтах
Чтобы несколько веб-сайтов могли использовать одни и те же ключи доступа, они должны использовать один и тот же идентификатор проверяющей стороны (RP ID). В WebAuthn и ключах доступа RP ID определяет область действия учетных данных по доменному имени. При создании ключа доступа он привязывается к определенному RP ID и может использоваться только на доменах, попадающих в область действия этого ID. Правильное определение RP ID обеспечивает бесперебойную работу ключей доступа на поддоменах, межсайтовых ресурсах и в мобильных приложениях. Подробнее о настройке RP ID можно узнать в разделе «Понимание идентификатора проверяющей стороны (RP ID)» . При использовании запросов от связанных источников один веб-сайт может указать другие источники, которым разрешено использовать его RP ID, что позволяет пользователям повторно использовать один и тот же ключ доступа на нескольких сайтах, которыми вы управляете. Обратите внимание, что это отличается от совместного использования ключей доступа между веб-сайтом и приложением Android, где используется delegate_permission/common.handle_all_urls в разделе «Ссылки на цифровые активы».
Например, если вы хотите, чтобы example.com и example.co.uk использовали одни и те же ключи доступа, вы можете указать, что example.com будет каноническим идентификатором RP. Для этого example.co.uk должен использовать rpId: 'example.com' в своих вызовах API WebAuthn, а также должен разместить файл по адресу https://example.com/.well-known/webauthn example.com добавить example.co.uk в список разрешенных сайтов.
{
"origins": [
"https://example.co.uk"
]
}
Это позволяет example.co.uk создавать и использовать пароли, связанные с example.com .
6. Заключение
Поздравляем! Вы успешно настроили бесперебойный обмен учетными данными.
Теперь ваши пользователи могут сохранять пароль и ключ доступа на вашем веб-сайте и использовать их для входа в ваше приложение для Android одним касанием (и наоборот). Это простое изменение может значительно повысить коэффициент конверсии при входе в систему и удовлетворенность пользователей.
Что дальше?
- Ознакомьтесь с официальной документацией Digital Asset Links .
- Узнайте больше об основах совместного использования учетных данных .
- Ознакомьтесь с примером успешного применения стратегии eBay , чтобы увидеть результаты.