Miten lukea hallitun työsovelluksen VPN- ja välityspalvelintila
VPN-kuvake hallitulla puhelimella todistaa hyvin vähän. Lue aktiivinen verkko, sen ominaisuudet ja tehokas välityspalvelin ja lue sitten jokainen nolla sellaisena kuin se on.
Työsovellus epäonnistuu hallitulla puhelimella, joku tarkistaa VPN-kytkimen, näkee sen olevan päällä ja julistaa polun terveeksi. Tähän useimmat näistä diagnooseista pysähtyvät, ja se on liian aikaisin: aktiivinen VPN-siirto ei kerro, että tämän sovelluksen pyynnöt käyttivät sitä, ja välityspalvelin, joka tosiasiassa pätee, voi olla sovelluskohtainen tai PAC-tiedoston valitsema sen sijaan, että se näkyisi Asetuksissa. Aloita tarkasteltavasta sovelluksesta ja profiilista ja lue sitten alustan oma näkemys polusta.
Aloita sovelluksesta ja sen profiilista
Työmerkinnällä varustettu sovellus toimii yleensä erillisessä profiilissa, jolla on oma verkkokäytäntönsä. Saman puhelimen henkilökohtainen selain ei ole todiste siitä, eikä todiste ole kollegan laitteen tulos erilaisella hallinnalla. Merkitse muistiin, mihin profiiliin sovellus kuuluu, ennen kuin luet mitään.
Listaa Asetuksissa määritetyt VPN-kohteet ja merkitse, kuka kunkin omistaa. Samsungin versioissa valikon nimikkeet siirtyvät versioiden välillä, joten kuvaile kohde eikä polkua siihen. Harmaa tai hallittu kohde kuuluu sille, joka hallinnoi laitetta; sen sammuttaminen kokeena muuttaa sitä, mitä yrität mitata, ja voi olla käytännön vastaista.
Lue tila, jonka alusta raportoi
Olemassa olevan aktiviteetin sisällä tukityökaluissasi, API 23 tai uudemmassa, verkon tila voidaan lukea lähettämättä tavuakaan. Kutsu tarvitsee normaalin ACCESS_NETWORK_STATE-manifestiluvan ominaisuuksien lukemiseen.
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.defaultProxyJokainen arvo vastaa kapeaan kysymykseen. Aktiivinen verkko on kutsuvan prosessin oletusverkko sillä hetkellä. Ominaisuuksien tarkistus kertoo, onko tuo oletusverkko VPN-tuettu. Välityspalvelinkutsu raportoi tehokkaan oletus-HTTP-välityspalvelimen, ja palautettu objekti voi kuvata joko staattista välityspalvelinta tai PAC-skriptiä.
Jos tarvitset verkkokohtaisen näkymän oletuksen sijaan, lue saman verkon linkkiominaisuudet ja vertaa niitä cm.getLinkProperties(network)?.httpProxy-arvoon. Laitehallinnan asentama välityspalvelin näkyy oletusvälityspalvelinkutsussa eikä linkkiominaisuuksissa, mikä on nopea tapa erottaa käytännön antama välityspalvelin verkon antamasta.
Pidä tuloste tukikanavallasi äläkä julkisessa raportissa. Välityspalvelimen isäntänimet, PAC-URLit ja sisäiset suffiksit paljastavat, miten organisaatiosi reitittää liikennettä, eikä mitään niistä tarvita vian kuvaamiseen.
Tulkitse jokainen kenttä kapeasti
Nollaverkko tai nollaominaisuusobjekti tarkoittaa, että kutsujan verkon tila ei ollut saatavilla tai muuttui lukemisen aikana. Se ei tarkoita, ettei VPN:ää ole. Käsittele sitä tuntemattomana ja lue uudelleen sen jälkeen, kun sovellus on tullut etualalle, älä kielteisenä tuloksena.
VPN-siirto on heikoin myönteisistä. Jokainen sovellus, jolla on VpnService, tuottaa sellaisen, mukaan lukien paikallinen suodatussovellus, joka ei koskaan lähetä liikennettäsi minnekään. Niinpä arvo true kertoo, että VPN-tuettu oletusverkko on olemassa, ei että organisaatiosi ulostuloa käytettiin ja varmasti ei että tarkastus tapahtui.
Nolla oletusvälityspalvelin tarkoittaa, että tämä API ei raportoi oletus-HTTP-välityspalvelinta tehokkaalle kokoonpanolle. Se sulkee pois hyvin vähän: sovellus voi kantaa oman SOCKS-asetuksensa, toteuttaa oman HTTP-asiakkaansa tai tulla ohjatuksi yhdyskäytävän välityspalvelimella, josta laite ei koskaan saa tietää.
PAC on tapaus, joka voittaa yhden arvon vastauksen. Skripti voi reitittää yhden kohteen välityspalvelimen kautta ja lähettää toisen suoraan, joten saman sovelluksen kaksi pyyntöä sekunnissa voivat kulkea eri polkuja. Ja sovellus, joka sitoo sokettinsa valittuun verkkoon tai kutsuu bindProcessToNetwork, ei ole lainkaan velvollinen noudattamaan oletusta.
Mitä tämä tilannekuva ei voi kertoa sinulle
Se ei ole historia. Mikään täällä ei tallenna, mitä polkua epäonnistuva pyyntö kulki, eikä onnistunut lukeminen epäonnistumisen jälkeen ole todiste epäonnistumisesta. Se ei ole luettelokaan: saat kutsuvan prosessin oletusverkon, et luetteloa kunkin sovelluksen yksityisistä yhteyksistä.
Se ei kerro mitään siitäkään, mitä soketin yläpuolella tapahtuu. Hallitulla laitteella epäonnistuva TLS-kättely voi olla luottamusvaraston ongelma, kiinnityksen ristiriita tai nimi, jonka välityspalvelin hylkää, eikä mikään niistä näy yhteyksien lukemisessa.
Siksi kaksi puoliskoa merkitsevät yhdessä: tilannekuva rajaa, minne katsoa, ja sovelluksen oma diagnostiikka kertoo, mikä tosiasiassa epäonnistui.
Raportoi se muodossa, jota ylläpitäjä voi käyttää
Kerro kärsinyt sovellus, profiili, aikaleima ja täsmällinen epäonnistunut vaihe: nimenselvitys, TCP-yhteys, TLS-kättely tai HTTP-tila. Lisää tilannekuvan arvot sellaisina kuin ne luettiin, nollat nollina kirjoitettuina eikä sanana ei mitään. Merkitse, epäonnistuvatko muut saman profiilin sovellukset samalla tavalla, mikä erottaa sovellusongelman koko profiilin polkuongelmasta.
Pysähdy sitten ja anna polun omistajan vastata. Älä pidä yrityksen varmennetta, välityspalvelimen osoitetta tai VPN-kohdetta lupana poistaa hallinta tai kiertää hyväksytty reitti; se muuttaa tukitapauksen käytäntöpoikkeamaksi.
Oletusvälityspalvelimen sopimus on lyhyt ja yhden lukukerran arvoinen, koska se määrittää täsmälleen, minkä välityspalvelimen kutsu raportoi, ja jokainen tämän tilannekuvan liioiteltu tulkinta alkaa olettamuksesta, että se raportoi enemmän.