איך לקרוא את מצב ה-VPN והפרוקסי של אפליקציית עבודה מנוהלת
סמל VPN בטלפון מנוהל מוכיח מעט מאוד. קראו את הרשת הפעילה, את יכולותיה ואת הפרוקסי האפקטיבי, ואז קראו כל null כפי שהוא.
אפליקציית עבודה נכשלת בטלפון מנוהל, מישהו בודק את מתג ה-VPN, רואה שהוא דלוק ומכריז שהנתיב תקין. כאן נעצרות רוב האבחונים האלה, וזה מוקדם מדי: תעבורת VPN פעילה אינה אומרת שהבקשות של האפליקציה הזאת השתמשו בה, והפרוקסי שבאמת חל יכול להיות לפי אפליקציה או להיבחר מקובץ PAC במקום להופיע בהגדרות. התחילו מהאפליקציה והפרופיל הספציפיים שאתם מאבחנים, ואז קראו את התצוגה של הפלטפורמה עצמה על הנתיב.
התחילו מהאפליקציה ומהפרופיל שלה
אפליקציה עם תג עבודה פועלת בדרך כלל בפרופיל נפרד עם מדיניות רשת משלו. דפדפן אישי באותו טלפון אינו ראיה לגביה, וגם לא תוצאה ממכשיר של עמית עם ניהול אחר. שימו לב לאיזה פרופיל שייכת האפליקציה לפני שאתם קוראים משהו.
בהגדרות, פרטו את רשומות ה-VPN המוגדרות וציינו למי שייכת כל אחת. בגרסאות סמסונג תוויות התפריט משתנות בין מהדורות, אז תארו את הרשומה ולא את הנתיב אליה. רשומה אפורה או מנוהלת שייכת למי שמנהל את המכשיר; כיבויה כניסוי משנה את מה שאתם מנסים למדוד ועלול להיות בניגוד למדיניות.
קראו את המצב שהפלטפורמה מדווחת
בתוך פעילות קיימת בכלי התמיכה שלכם, ב-API 23 ואילך, אפשר לקרוא את מצב הרשת בלי לשלוח בייט. הקריאה דורשת את הרשאת המניפסט הרגילה ACCESS_NETWORK_STATE לקריאת היכולות.
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.defaultProxyכל ערך עונה על שאלה צרה. הרשת הפעילה היא רשת ברירת המחדל של התהליך הקורא באותו רגע. בדיקת היכולות אומרת לכם אם רשת ברירת המחדל הזאת מבוססת VPN. קריאת הפרוקסי מדווחת על פרוקסי ה-HTTP הפעיל כברירת מחדל, והאובייקט המוחזר עשוי לתאר פרוקסי סטטי או סקריפט PAC.
אם אתם צריכים את התצוגה לפי רשת ולא את ברירת המחדל, קראו את מאפייני הקישור של אותה רשת והשוו ל-cm.getLinkProperties(network)?.httpProxy. פרוקסי שהותקן על ידי ניהול המכשיר מופיע בקריאת ברירת המחדל ולא במאפייני הקישור, וזו דרך מהירה להבחין בין פרוקסי שמספקת המדיניות לכזה שסיפקה הרשת.
שמרו את הפלט בערוץ התמיכה שלכם ולא בדוח פומבי. שמות מארחים של פרוקסי, כתובות PAC וסיומות פנימיות חושפים כיצד הארגון שלכם מנתב תעבורה, ואף אחד מהם אינו נחוץ כדי לתאר את התקלה.
פרשו כל שדה בצמצום
רשת null או אובייקט יכולות null פירושם שמצב הרשת של הקורא לא היה זמין או השתנה במהלך הקריאה. זה לא אומר שאין VPN. התייחסו לזה כלא ידוע וקראו שוב לאחר שהאפליקציה עברה לחזית, ולא כתוצאה שלילית.
תעבורת VPN היא החלשה שבחיוביים. כל אפליקציה שמחזיקה ב-VpnService מייצרת אחת, כולל אפליקציית סינון מקומית שלעולם אינה שולחת את התעבורה שלכם לשום מקום. לכן ערך true אומר שקיימת רשת ברירת מחדל מבוססת VPN, לא שהשתמשו ביציאה של הארגון שלכם ובוודאי שלא שנעשתה בדיקה.
פרוקסי ברירת מחדל null פירושו שה-API הזה אינו מדווח על פרוקסי HTTP כברירת מחדל עבור התצורה האפקטיבית. הוא שולל מעט מאוד: אפליקציה יכולה לשאת הגדרת SOCKS משלה, לממש לקוח HTTP משלה, או להיות מונחית על ידי פרוקסי בשער שהמכשיר לעולם אינו יודע עליו.
PAC הוא המקרה שמנצח תשובה של ערך אחד. סקריפט יכול לנתב יעד אחד דרך פרוקסי ולשלוח אחר ישירות, כך ששתי בקשות מאותה אפליקציה בתוך שנייה עשויות ללכת בנתיבים שונים. ואפליקציה שקושרת את הסוקטים שלה לרשת נבחרת, או קוראת ל-bindProcessToNetwork, אינה חייבת ללכת אחר ברירת המחדל כלל.
מה התצלום הזה לא יכול לספר לכם
זה לא היסטוריה. שום דבר כאן לא מתעד איזה נתיב עברה הבקשה שנכשלה, וקריאה מוצלחת לאחר הכשל אינה ראיה לגבי הכשל. זה גם לא מלאי: אתם מקבלים את רשת ברירת המחדל של התהליך הקורא, לא רשימה של החיבורים הפרטיים של כל אפליקציה.
הוא גם לא אומר דבר על מה שקורה מעל הסוקט. לחיצת יד TLS שנכשלת במכשיר מנוהל יכולה להיות בעיית מאגר אמון, אי התאמת נעיצה או שם שהפרוקסי דוחה, ואף אחד מאלה אינו מופיע בקריאת קישוריות.
לכן שני החצאים חשובים יחד: התצלום מצמצם היכן להסתכל, והאבחון של האפליקציה עצמה אומר מה באמת נכשל.
דווחו על כך בצורה שמנהל מערכת יכול להשתמש בה
תנו את האפליקציה שנפגעה, את הפרופיל, את חתימת הזמן ואת השלב המדויק שנכשל: פתרון שמות, חיבור TCP, לחיצת יד TLS או סטטוס HTTP. הוסיפו את ערכי התצלום כפי שנקראו, עם nullים כתובים כ-null ולא כמילה אין. ציינו אם אפליקציות אחרות באותו פרופיל נכשלות באותה דרך, מה שמפריד בין בעיית אפליקציה לבעיית נתיב בכל הפרופיל.
ואז עצרו ותנו לבעל הנתיב להגיב. אל תתייחסו לתעודה ארגונית, לכתובת פרוקסי או לרשומת VPN כאל הרשאה להסיר ניהול או לעקוף את המסלול המאושר; זה הופך מקרה תמיכה לתקרית מדיניות.
חוזה פרוקסי ברירת המחדל קצר ושווה קריאה אחת, כי הוא מגדיר בדיוק איזה פרוקסי הקריאה מדווחת, וכל קריאה מוגזמת של התצלום הזה מתחילה בהנחה שהוא מדווח יותר.