Yönetilen bir iş uygulaması için VPN ve proxy durumu nasıl okunur
Yönetilen bir telefondaki VPN simgesi çok az şey kanıtlar. Etkin ağı, yeteneklerini ve geçerli proxy'yi okuyun, sonra her null değeri olduğu gibi okuyun.
Yönetilen bir telefonda iş uygulaması başarısız olur, biri VPN anahtarını kontrol eder, açık olduğunu görür ve yolu sağlıklı ilan eder. Bu teşhislerin çoğu burada durur ve bu çok erken: etkin bir VPN taşıması, bu uygulamanın isteklerinin onu kullandığını söylemez ve gerçekte geçerli olan proxy uygulama bazında olabilir veya Ayarlar'da gösterilmek yerine bir PAC dosyasıyla seçilebilir. Ayıklamakta olduğunuz belirli uygulama ve profilden başlayın, sonra platformun yol hakkındaki kendi görüşünü okuyun.
Uygulama ve profiliyle başlayın
İş rozetli bir uygulama genellikle kendi ağ ilkesine sahip ayrı bir profilde çalışır. Aynı telefondaki kişisel bir tarayıcı bunun kanıtı değildir ve farklı yönetime sahip bir iş arkadaşının cihazından alınan sonuç da değildir. Herhangi bir şey okumadan önce uygulamanın hangi profile ait olduğunu not edin.
Ayarlar'da yapılandırılmış VPN girişlerini listeleyin ve her birinin kime ait olduğunu not edin. Samsung yapılarında menü etiketleri sürümler arasında kayar, bu nedenle girişi tanımlayın, ona giden yolu değil. Gri veya yönetilen bir giriş cihazı yöneten kişiye aittir; deney olarak kapatmak ölçmeye çalıştığınız şeyi değiştirir ve ilkeye aykırı olabilir.
Platformun bildirdiği durumu okuyun
Destek araçlarınızdaki mevcut bir etkinliğin içinde, API 23 veya sonrasında, ağ durumu tek bir bayt göndermeden okunabilir. Çağrı, yetenekleri okumak için normal ACCESS_NETWORK_STATE manifest iznine ihtiyaç duyar.
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.defaultProxyHer değer dar bir soruyu yanıtlar. Etkin ağ, o anda çağıran sürecin varsayılan ağıdır. Yetenek denetimi, bu varsayılan ağın VPN destekli olup olmadığını söyler. Proxy çağrısı, geçerli varsayılan HTTP proxy'sini bildirir ve döndürülen nesne ya statik bir proxy ya da bir PAC betiği tanımlayabilir.
Varsayılan yerine ağ bazında görünüm gerekiyorsa, aynı ağın bağlantı özelliklerini okuyun ve cm.getLinkProperties(network)?.httpProxy ile karşılaştırın. Cihaz yönetimi tarafından yüklenen proxy, varsayılan proxy çağrısında görünür ve bağlantı özelliklerinde görünmez; bu, ilkenin verdiği proxy'yi ağın verdiğinden hızla ayırmanın bir yoludur.
Çıktıyı genel bir rapor yerine destek kanalınızda tutun. Proxy ana makine adları, PAC URL'leri ve iç son ekler kuruluşunuzun trafiği nasıl yönlendirdiğini açığa çıkarır ve hiçbiri arızayı tanımlamak için gerekli değildir.
Her alanı dar yorumlayın
Boş bir ağ veya boş bir yetenek nesnesi, çağıranın ağ durumunun kullanılamadığı veya okuma sırasında değiştiği anlamına gelir. Bu, VPN olmadığı anlamına gelmez. Bunu bilinmeyen olarak ele alın ve uygulama öne geldikten sonra yeniden okuyun, olumsuz bir sonuç olarak değil.
VPN taşıması olumluların en zayıfıdır. VpnService tutan her uygulama bir tane üretir; trafiğinizi hiçbir yere göndermeyen yerel bir filtreleme uygulaması dahil. Bu nedenle true değeri, VPN destekli bir varsayılan ağın var olduğunu söyler; kuruluşunuzun çıkışının kullanıldığını değil ve kesinlikle denetimin gerçekleştiğini değil.
Boş bir varsayılan proxy, bu API'nin geçerli yapılandırma için herhangi bir varsayılan HTTP proxy'si bildirmediği anlamına gelir. Çok azını dışlar: bir uygulama kendi SOCKS ayarını taşıyabilir, kendi HTTP istemcisini uygulayabilir veya cihazın hiç öğrenmediği ağ geçidindeki bir proxy tarafından yönlendirilebilir.
Tek değerli bir yanıtı yenen durum PAC'tir. Bir betik bir hedefi proxy üzerinden yönlendirip diğerini doğrudan gönderebilir, bu nedenle aynı uygulamanın bir saniye içindeki iki isteği farklı yollar izleyebilir. Ve soketlerini seçilen bir ağa bağlayan veya bindProcessToNetwork çağıran bir uygulama, varsayılana uymak zorunda değildir.
Bu anlık görüntünün söyleyemeyecekleri
Bu bir geçmiş değildir. Burada hiçbir şey başarısız isteğin hangi yolu izlediğini kaydetmez ve başarısızlıktan sonraki başarılı okuma başarısızlık hakkında kanıt değildir. Bu bir envanter de değildir: çağıran sürecin varsayılan ağını alırsınız, her uygulamanın özel bağlantılarının listesini değil.
Soketin üstünde ne olduğu hakkında da hiçbir şey söylemez. Yönetilen bir cihazda başarısız olan TLS el sıkışması bir güven deposu sorunu, bir sabitleme uyuşmazlığı veya proxy'nin reddettiği bir ad olabilir ve hiçbiri bir bağlantı okumasında görünmez.
Bu yüzden iki yarı birlikte önemlidir: anlık görüntü nereye bakılacağını daraltır ve uygulamanın kendi tanılaması gerçekte neyin başarısız olduğunu söyler.
Bir yöneticinin kullanabileceği biçimde bildirin
Etkilenen uygulamayı, profili, zaman damgasını ve başarısız olan tam aşamayı verin: ad çözümleme, TCP bağlantısı, TLS el sıkışması veya bir HTTP durumu. Anlık görüntü değerlerini okunduğu gibi ekleyin, boş değerleri hiç yokmuş gibi değil boş olarak yazın. Aynı profildeki diğer uygulamaların da aynı şekilde başarısız olup olmadığını not edin; bu, bir uygulama sorununu profil genelinde bir yol sorunundan ayırır.
Sonra durun ve yolun sahibinin yanıtlamasına izin verin. Kurumsal bir sertifikayı, bir proxy adresini veya bir VPN girişini yönetimi kaldırma ya da onaylanmış yolu atlatma izni olarak görmeyin; bu, bir destek vakasını bir ilke olayına dönüştürür.
Varsayılan proxy sözleşmesi kısadır ve bir kez okumaya değer, çünkü çağrının hangi proxy'yi bildirdiğini tam olarak tanımlar ve bu anlık görüntünün her aşırı okuması, daha fazlasını bildirdiğini varsayarak başlar.