OkHttp + общий доступ к файлам Azure завершается с ошибкой, когда VPN в Microsoft Defender активен на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 OkHttp + общий доступ к файлам Azure завершается с ошибкой, когда VPN в Microsoft Defender активен на Android

Сообщение Anonymous »

Мы создаем приложение для Android, которое использует хранилище Azure (Azure File Share) с помощью Azure Java/Android SDK.

Наш уровень HTTP использует пользовательский OkHttpClient, передаваемый в OkHttpAsyncHttpClientBuilder:

Код: Выделить всё

OkHttpClient okHttpClient =
new OkHttpClient.Builder()
.proxy(Proxy.NO_PROXY)              // disable proxy
.proxySelector(noProxySelector)     // avoid system proxy lookup
.proxyAuthenticator(Authenticator.NONE)
.build();

HttpClient azureHttpClient =
new OkHttpAsyncHttpClientBuilder(okHttpClient).build();
Эта настройка отлично работает на устройствах без включенного VPN в Microsoft Defender.
Но когда VPN в Microsoft Defender (Microsoft Tunnel) активен, вторая строка

Код: Выделить всё

new OkHttpAsyncHttpClientBuilder(okHttpClient).build()
не работает со следующим исключением:

Код: Выделить всё

java.lang.IllegalArgumentException: port out of range:-1
at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:154)
at java.net.InetSocketAddress.createUnresolved(InetSocketAddress.java:279)
at com.azure.core.http.ProxyOptions.createOptions(ProxyOptions.java:391)
at com.azure.core.http.ProxyOptions.attemptToLoadJavaProxy(ProxyOptions.java:369)
at com.azure.core.http.ProxyOptions.attemptToLoadProxy(ProxyOptions.java:278)
at com.azure.core.http.ProxyOptions.fromConfiguration(ProxyOptions.java:247)
at com.azure.core.http.okhttp.OkHttpAsyncHttpClientBuilder.build(OkHttpAsyncHttpClientBuilder.java:389)
Несколько замечаний/наблюдений
  • Помимо хранилища Azure, наше приложение взаимодействует только с одним веб-сервером HTTP. Этот веб-сервер находится в интрасети нашего клиента.
  • Наш клиент управляет VPN Microsoft Defender и всей средой Intune MDM. У нас нет контроля и никакой информации.
  • MS Defender VPN активен: связь с веб-сервером работает, а с хранилищем Azure не работает
  • MS Defender VPN неактивен: связь с веб-сервером не работает, а с хранилищем Azure работает
  • По словам нашего клиента, связь с хранилищем Azure должно работать, поскольку, помимо трафика на веб-сервер интрасети, все остальное направляется в Интернет.
Что, по нашему мнению, должно произойти:

Чтобы разрешить трафик файлового ресурса Azure, VPN в Microsoft Defender необходимо настроить с раздельным туннелированием, чтобы все общедоступные IP-адреса службы хранилища Azure были исключены из VPN-туннеля.
Microsoft Tunnel (Defender VPN) поддерживает Разделенное туннелирование на основе IP, а не на основе полного доменного имени, поэтому необходимо добавить хранилище Azure, начиная с официального JSON Microsoft ServiceTags_Public.
Кто-нибудь имел дело с Microsoft Defender VPN / Microsoft Tunnel + Android + OkHttp и настроил раздельное туннелирование специально для хранилища Azure?
Я ищу совет, почему это не работает, или альтернативную конфигурацию, чтобы заставить OkHttp работать.

Подробнее здесь: https://stackoverflow.com/questions/798 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»