К обсуждениям

OAuth работает в браузере через Tailscale App Connector, но Android получает invalid auth: где граница

Редакция VOne Технологии

Диагностическое дерево для случая, когда браузерная авторизация проходит через Tailscale App Connector, а возврат в Android-приложение завершается ошибкой: доменный маршрут и native redirect проверяются раздельно.

Разделите один экран на четыре перехода

Фраза «вход открылся» объединяет разные операции. Отметьте отдельно: разрешился ли домен авторизации, прошёл ли HTTPS-запрос через App Connector, завершил ли сервер авторизации свою часть и какой тип redirect был вызван после неё. Не записывайте код авторизации, state, cookie или полный callback URL. Достаточно типа схемы, имени приложения и времени. Если ошибка появляется до отправки формы, исследуйте доменный путь. Если только после закрытия браузера, переносите внимание на переход из браузера в приложение, не перестраивая connector.

Что гарантирует App Connector

Tailscale настраивает App Connector списком application-specific domains и направляет к tagged connector трафик, соответствующий обнаруженным адресам этих доменов. Документация описывает DNS и DoH discovery, после которого маршруты объявляются клиентам. Это подтверждает доменную границу механизма, но не обещает обработку любой пользовательской URI-схемы. Сверьте только FQDN браузерной фазы с разрешённым списком и статус connector. Не расширяйте список на все домены организации: сначала установите, какой запрос действительно отсутствует.

Как native app получает ответ OAuth

RFC 8252 рекомендует проводить авторизацию нативных приложений во внешнем браузере и описывает несколько способов вернуть ответ: private-use URI scheme, claimed HTTPS redirect и loopback для настольных приложений. На Android соответствующая ссылка должна быть сопоставлена установленному приложению операционной системой. Поэтому успешный ответ в браузере и открытие нужного приложения — отдельные факты. Зафиксируйте, появилось ли системное предложение открыть приложение, открылось ли правильное приложение и показало ли оно ошибку уже после запуска.

Проведите обратимый тест одной переменной

Повторите вход один раз на том же устройстве и той же сети, сохранив неизменными учётную запись, приложение и список доменов. Сначала отметьте последний HTTPS-домен, затем факт системного перехода без копирования параметров URL. Если браузер остаётся на HTTPS-странице, проверяйте разрешённый redirect и Android App Link с владельцем приложения. Если приложение открывается, но отклоняет ответ, передавайте время и общий класс ошибки разработчику клиента. Не меняйте одновременно callback, connector и конфигурацию поставщика идентификации.

Красные флаги и данные для эскалации

Остановитесь, если для опыта предлагают вставить код авторизации вручную, отключить проверку redirect URI, зарегистрировать широкую wildcard-ссылку или опубликовать callback с параметрами. В безопасный пакет входят версии Android и приложения, тип redirect без секрета, домены браузерной фазы, состояние App Connector, временная шкала и точный локальный текст ошибки. Владельцу identity-сервиса полезен результат до redirect, разработчику Android — факт сопоставления ссылки, администратору Tailscale — только доменная и маршрутная часть. Такое разделение не смешивает ответственность систем.

Материал подготовлен редакцией с помощью ИИ, затем проверен по официальной документации Tailscale и первичному RFC 8252; форумная ветка использована только как обезличенный сигнал.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.