Наш уровень 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 (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
Мобильная версия