Paano basahin ang estado ng VPN at proxy ng isang pinamamahalaang app sa trabaho
Ang icon ng VPN sa isang pinamamahalaang telepono ay nagpapatunay ng napakaliit. Basahin ang aktibong network, ang mga kakayahan nito at ang epektibong proxy, pagkatapos basahin ang bawat null kung ano ito.
Nabigo ang isang work app sa isang pinamamahalaang telepono, may tumitingin sa VPN toggle, nakikita itong bukas at idinedeklarang malusog ang landas. Dito humihinto ang karamihan sa mga diagnosis na ito, at masyadong maaga: hindi sinasabi ng aktibong VPN transport na ginamit ito ng mga kahilingan ng app na ito, at ang proxy na talagang umiiral ay maaaring per app o pinili ng isang PAC file sa halip na ipakita sa Mga Setting. Magsimula sa partikular na app at profile na ini-debug mo, pagkatapos basahin ang sariling pananaw ng platform sa landas.
Magsimula sa app at sa profile nito
Ang app na may work badge ay karaniwang tumatakbo sa hiwalay na profile na may sariling patakaran sa network. Ang personal na browser sa parehong telepono ay hindi ebidensya para dito, at ang resulta mula sa device ng katrabaho na may ibang pamamahala ay hindi rin. Tandaan kung aling profile nabibilang ang app bago magbasa ng anuman.
Sa Mga Setting, ilista ang mga naka-configure na VPN entry at tandaan kung kanino ang bawat isa. Sa mga Samsung build, gumagalaw ang mga label ng menu sa pagitan ng mga release, kaya ilarawan ang entry at hindi ang landas patungo rito. Ang grey o pinamamahalaang entry ay pag-aari ng sinumang nag-aadministra ng device; ang patayin ito bilang eksperimento ay nagbabago sa sinusubukan mong sukatin at maaaring labag sa patakaran.
Basahin ang estadong iniuulat ng platform
Sa loob ng umiiral na aktibidad sa iyong support tooling, sa API 23 o mas bago, mababasa ang estado ng network nang hindi nagpapadala ng kahit isang byte. Kailangan ng tawag ang normal na pahintulot sa manifest na ACCESS_NETWORK_STATE para sa pagbasa ng mga kakayahan.
val cm = getSystemService(android.net.ConnectivityManager::class.java) ?: return
val network = cm.activeNetwork
val caps = network?.let { cm.getNetworkCapabilities(it) }
val hasVpn = caps?.hasTransport(android.net.NetworkCapabilities.TRANSPORT_VPN)
val proxy = cm.defaultProxyAng bawat halaga ay sumasagot sa makitid na tanong. Ang aktibong network ay ang default na network para sa tumatawag na proseso sa sandaling iyon. Sinasabi ng pagsusuri ng kakayahan kung ang default na network ay may suporta sa VPN. Ang tawag sa proxy ay nag-uulat ng epektibong default na HTTP proxy, at ang ibinalik na object ay maaaring ilarawan ang isang static na proxy o isang PAC script.
Kung kailangan mo ang pananaw per network sa halip na ang default, basahin ang mga link property ng parehong network at ihambing sa cm.getLinkProperties(network)?.httpProxy. Ang proxy na ininstala ng pamamahala ng device ay lumilitaw sa tawag sa default na proxy at hindi sa mga link property, na isang mabilis na paraan upang makilala ang proxy na ibinigay ng patakaran mula sa ibinigay ng network.
Itago ang output sa iyong channel ng suporta sa halip na sa pampublikong ulat. Ang mga hostname ng proxy, PAC URL at panloob na suffix ay nagbubunyag kung paano itinuturo ng iyong organisasyon ang trapiko, at wala sa mga ito ang kailangan upang ilarawan ang pagkasira.
Bigyang-kahulugan ang bawat field nang makitid
Ang null network o null na object ng kakayahan ay nangangahulugang ang estado ng network ng tumatawag ay hindi available o nagbago habang binabasa. Hindi ito nangangahulugang walang VPN. Ituring itong hindi alam at basahin muli pagkatapos na lumipat ang app sa harapan, at hindi bilang negatibong resulta.
Ang VPN transport ang pinakamahina sa mga positibo. Anumang app na may hawak na VpnService ay gumagawa ng isa, kabilang ang lokal na app sa pagsasala na hindi kailanman nagpapadala ng iyong trapiko kahit saan. Kaya ang halagang true ay nagsasabi na may default na network na may suporta sa VPN, hindi na ginamit ang labasan ng iyong organisasyon at tiyak na hindi na may naganap na inspeksyon.
Ang null na default na proxy ay nangangahulugang hindi nag-uulat ang API na ito ng anumang default na HTTP proxy para sa epektibong configuration. Kaunti lang ang ibinubukod nito: ang app ay maaaring magdala ng sariling setting ng SOCKS, magpatupad ng sariling HTTP client, o mapatnubayan ng proxy sa gateway na hindi alam ng device.
Ang PAC ang kaso na tumatalo sa isang solong halagang sagot. Maaaring i-route ng script ang isang destinasyon sa proxy at ipadala ang isa nang direkta, kaya ang dalawang kahilingan ng parehong app sa loob ng isang segundo ay maaaring tumahak ng magkaibang landas. At ang app na nagbibigkis ng mga socket nito sa piniling network, o tumatawag ng bindProcessToNetwork, ay walang obligasyon na sundan ang default.
Ano ang hindi masasabi ng snapshot na ito
Hindi ito kasaysayan. Wala sa loob nito ang nagtatala kung anong landas ang tinahak ng kahilingang nabigo, at ang matagumpay na pagbasa pagkatapos ng pagkabigo ay hindi ebidensya tungkol sa pagkabigo. Hindi rin ito imbentaryo: nakukuha mo ang default na network ng tumatawag na proseso, hindi listahan ng mga pribadong koneksyon ng bawat app.
Wala rin itong sinasabi tungkol sa nangyayari sa itaas ng socket. Ang TLS handshake na nabigo sa pinamamahalaang device ay maaaring problema sa trust store, hindi pagtutugma ng pinning o pangalang tinatanggihan ng proxy, at wala sa mga ito ang lumilitaw sa pagbasa ng konektibidad.
Kaya mahalaga ang dalawang hati nang magkasama: pinaliit ng snapshot kung saan titingin, at sinasabi ng sariling diagnostika ng app kung ano ang talagang nabigo.
Iulat ito sa anyo na magagamit ng administrator
Ibigay ang apektadong app, ang profile, ang timestamp at ang eksaktong yugtong nabigo: resolusyon ng pangalan, koneksyon ng TCP, TLS handshake o isang HTTP status. Idagdag ang mga halaga ng snapshot kung paano binasa, na ang mga null ay isinulat bilang null at hindi bilang wala. Tandaan kung nabigo rin ang ibang app sa parehong profile sa parehong paraan, na naghihiwalay ng problema ng app mula sa problema ng landas sa buong profile.
Pagkatapos huminto at hayaang tumugon ang may-ari ng landas. Huwag ituring ang corporate certificate, proxy address o VPN entry bilang pahintulot na alisin ang pamamahala o laktawan ang aprubadong ruta; ginagawa niyan ang kaso ng suporta na insidente ng patakaran.
Ang kontrata ng default na proxy ay maikli at sulit basahin nang isang beses, dahil tinutukoy nito nang eksakto kung aling proxy ang iniuulat ng tawag, at ang bawat sobrang pagbasa ng snapshot na ito ay nagsisimula sa pag-aakalang nag-uulat ito ng higit pa.