Вопрос или проблема
Я реализую fido2 на андроиде. На андроиде нам нужно разместить assetlinks.json в корне домена, например: https://example.com/.well-known/assetlinks.json. Но поскольку мы тестируем это в интранете, есть ли какое-либо решение, похожее на iOS, использующее mode=developer для тестирования в интранете?
Ответ или решение
При реализации FIDO2 в Android важно корректное размещение файла assetlinks.json
, который должен находиться по адресу https://example.com/.well-known/assetlinks.json
. Однако, если вы проводите тестирование в рамках локальной сети (интранет), доступ к этому файлу может быть затруднен, что создает определенные проблемы.
Проблема: Доступ к assetlinks.json в частной сети
В отличие от iOS, где существует возможность использовать режим разработчика для тестирования приложений в локальной сети, Android требует, чтобы приложение имело доступ к указанному файлу assetlinks.json
на общедоступном домене. Это связано с механикой проверки подлинности, в которой Android проверяет соответствие метаданных, хранящихся в assetlinks.json
, с данными о приложении.
Возможные решения:
-
Настройка локального веб-сервера:
- Один из простейших способов решения данной проблемы — настроить временный локальный веб-сервер на вашем компьютере или сервере внутри локальной сети, который будет обслуживать
assetlinks.json
. - Используйте инструменты, такие как
Apache
,Nginx
, или дажеPython SimpleHTTPServer
, чтобы развернуть сервер. Убедитесь, что файл доступен по правильному URL (например,http://<ваш_IP>/.well-known/assetlinks.json
).
- Один из простейших способов решения данной проблемы — настроить временный локальный веб-сервер на вашем компьютере или сервере внутри локальной сети, который будет обслуживать
-
Обходные пути с использованием прокси-сервера:
- Настройте прокси-сервер, который будет перенаправлять запросы к вашему локальному серверу с помощью общедоступного домена. Таким образом вы можете протестировать работу FIDO2, не размещая файл на доступном хостинге.
- Например, можно использовать
ngrok
для создания временного публичного URL, который будет туннелировать запросы к локальному серверу.
-
Использование локальных настроек приложений:
- Если ваша реализация FIDO2 поддерживает использование локального
assetlinks.json
, что не всегда бывает, измените код вашего приложения, чтобы оно обращалось к локальному файлу, когда оно запущено в режиме разработчика. Убедитесь, что вы явно указали пути к локальным ресурсам в коде.
- Если ваша реализация FIDO2 поддерживает использование локального
-
Тестирование на реальном устройстве:
- При тестировании с использованием реальных устройств всегда рекомендуется подключаться к локальной сети, чтобы иметь возможность производить доступ к локальным серверам через Wi-Fi. Убедитесь, что ваше устройство настроено для работы в одной сети с сервером.
-
Обсуждение с командой разработчиков:
- Важно сотрудничать с вашей командой разработки и обмениваться опытом по настройке окружения для тестирования. Возможно, у кого-то уже есть готовые решения или скрипты, которые могут помочь в этой ситуации.
Заключение:
Хотя Android не предлагает возможность использовать режим разработчика для тестирования assetlinks.json
в локальных сетях, существуют рабочие решения, которые позволяют вам продолжать тестирование. Выбор конкретного подхода зависит от ваших технических возможностей и ресурсов. Применив предложенные методы, вы сможете без проблем интегрировать FIDO2 в ваше приложение и успешно провести необходимые тестирования в интранет-среде.