התכונה 'כרטיסיות מותאמות אישית ב-Android' מספקת חוויית דפדפן מלאה, מאובטחת וחלקה ישירות בתהליך ההתחברות לרשת עבור פורטלים שבויים, כמו אלה שנמצאים בשדות תעופה, במלונות ובמטוסים. באמצעות שילוב של הדפדפן הראשי של המשתמש בתהליך האימות, כרטיסיות בהתאמה אישית מאפשרות פונקציונליות מתקדמת, כולל מילוי אוטומטי של פרטי כניסה ותשלומים בלחיצה אחת, סטרימינג מוגן ב-DRM וקישוריות עקבית למשתמשים עם אמצעי אבטחה כמו VPN ושרת DNS פרטי. מידע נוסף על כרטיסיות מותאמות אישית זמין במאמר סקירה כללית של כרטיסיות מותאמות אישית ב-Android.
היתרונות בהשוואה ל-WebView מדור קודם
שילוב של דפדפן ראשי של משתמש באמצעות כרטיסיות בהתאמה אישית פותר כמה מגבלות פונקציונליות שקיימות בתהליכי אימות מדור קודם שמבוססים על WebView עבור מפעילי רשת:
- עסקאות מהירות וחלקות: הממשק תומך במילוי אוטומטי של פרטי הכניסה ופרטי התשלום השמורים בלחיצה אחת, וכך מצמצם את הצורך בהזנת נתונים ידנית במהלך תהליך הכניסה. (ראו איור 1).
- תאימות למדיה: הפלטפורמה תומכת בתוכן שמוגן באמצעות DRM (כמו Widevine), ומאפשרת הפעלה של סטרימינג מוצפן של סרטונים ישירות בפורטל. (ראו איור 2).
- תמיכה בהגדרות אבטחה: כרטיסיות בהתאמה אישית שומרות על הפונקציונליות של הפורטל במכשירים שמשתמשים ב-VPN או בשרת DNS פרטי, אמצעי אבטחה שלרוב גורמים להפניות אוטומטיות בדפדפן רגיל להיכשל.
- עקביות הממשק: כרטיסיות בהתאמה אישית משולבות ישירות בדפדפן המערכת, ומספקות את אותם כלים פונקציונליים ורכיבי ממשק משתמש שזמינים בפונקציונליות דפדפן מלאה.
- המשכיות ברקע: הפורטל ממשיך לפעול ברקע ומשמש כנקודת גישה קבועה לאורך תקופת החיבור.
איור 1. קלט ידני (WebView) לעומת מילוי אוטומטי (כרטיסיות מותאמות אישית).
איור 2. אין סרטון (WebView) לעומת הפעלת סרטון (כרטיסיות מותאמות אישית).
תהליך הגילוי והחיבור של כרטיסיות בהתאמה אישית
הכרטיסיות המותאמות אישית מספקות את הממשק, אבל Captive Portal API מנהל את זרימת המידע מהגילוי לחיבור:
- גילוי: הרשת מפרסמת את התמיכה שלה ב-API באמצעות DHCP Option 114.
- אינטראקציה: מכשיר Android שולח שאילתה לנקודת קצה ל-API כדי לאחזר מטען ייעודי (payload) בפורמט JSON שמכיל את סטטוס הרשת.
- חיבור: אם תגובת ה-JSON מסמנת שיש להשתמש בכרטיסיות בהתאמה אישית, המערכת פותחת את הפורטל בסביבת דפדפן עם ביצועים גבוהים במקום בחלון מערכת בסיסי.
Captive Portal API מאפשר למכשירי Android לזהות אם קיים פורטל שבוי באמצעות השדה captive. ממשק ה-API משלב שדות אחרים כמו venue-info-url ו-seconds-remaining בממשק המשתמש של מערכת Android.
איור 3. גילוי API של פורטל שבוי לזרימת חיבור.
הפעלת כרטיסיות מותאמות אישית ב-Android
כדי לתמוך בתהליך של כרטיסיות בהתאמה אישית, מפעילים רשתות צריכים להטמיע את Captive Portal API ולהביע הסכמה באמצעות הגדרת JSON.
דרישות
כדי להפעיל כרטיסיות בהתאמה אישית לכניסה לפורטל שבוי, צריך:
- מכשיר עם Android מגרסה 12 ומעלה שתומך בעדכונים של מערכת Google Play (ראו Mainline) דרך מודול Mainline
CaptivePortalLogin. - תמיכה ב-Captive Portal API (RFC 8908). פרטים נוספים זמינים במאמר בנושא תמיכה ב-Captive Portal API.
הבעת הסכמה לשימוש בכרטיסיות מותאמות אישית ב-Android
אם הרשת שלכם כבר תומכת ב-API של פורטל הכניסה (RFC 8908), תוסיפו את צמד מפתח-ערך הבא לאובייקט התגובה הקיים של JSON כדי להפעיל את התהליך של כרטיסיות בהתאמה אישית:
| מפתח | ערך | תיאור |
|---|---|---|
x-android-use-custom-tabs |
361335020 |
הערך הזה מייצג את מספר הגרסה של מודול Captive Portal Login Mainline שפורסם בינואר 2026. במכשירים עם עדכון מודול ששווה לגרסה הזו או חדש ממנה, נעשה שימוש בתהליך הכניסה של כרטיסיות מותאמות אישית. |
אובייקט ה-JSON לדוגמה הזה כולל את כל המאפיינים של פורטל הכניסה שנתמכים ב-Android:
{
"captive": true,
"user-portal-url": "https://login.example.com",
"venue-info-url": "https://venue.example.com",
"seconds-remaining": 3600,
"x-android-use-custom-tabs": 361335020
}
אלה המאפיינים הזמינים של פורטל הכניסה בפורמט JSON:
-
captive: מגדירים את הערךtrueאם נדרש אימות, או את הערךfalseאם המשתמש כבר מחובר לאינטרנט. -
user-portal-url: כתובת ה-URL של דף הכניסה או התשלום. -
venue-info-url: קישור לאתר שלכם לקבלת מידע (לדוגמה, פרטי טיסה או מפות). -
seconds-remaining: מציין את הזמן שנותר (בשניות) שבו המכשיר צפוי לשמור על חיבור לאינטרנט. -
x-android-use-custom-tabs: קובעת אם המכשיר ישתמש בכרטיסייה המותאמת אישית כשהיא זמינה.
תמיכה ב-Captive Portal API
אם הרשת שלכם לא תומכת ב-Captive Portal API, צריך לפעול לפי השלבים הבאים כדי להפעיל את Captive Portal API ואת התהליך של כרטיסיות בהתאמה אישית.
מעדכנים את ההגדרה של שרת ה-DHCP כך שתכלול את אפשרות DHCP מספר 114.
ערך: מציינים את כתובת ה-URL המלאה מסוג HTTPS של קובץ ה-JSON שנוצר באופן דינמי ומכיל מידע על דף הכניסה לרשת (לדוגמה,
https://api.yourvenue.com/status).תוצאה: כשמכשיר Android מצטרף לרשת, הוא שולח שאילתה ל-API שצוין במקום לחכות להפניה אוטומטית של הדפדפן.
מגדירים את שרת ה-API כך שיגיב לבקשת GET בכתובת ה-URL שצוינה עם קובץ JSON שמעדכן את המכשיר לגבי המצב הנוכחי של הפורטל.
דרישת HTTPS: שרת ה-API שלכם חייב להשתמש באישור HTTPS תקין.
חזרה לאבטחה: אם האישור לא תקין או שהוא בחתימה עצמית, המכשיר חוזר להתנהגות של פורטל שבוי מדור קודם.
התנהגות של זיהוי פורטלים שבויים ב-Android
ממשק ה-API של הפורטל השבוי מספק חלופה אמינה לבדיקות רשת רגילות של Android לזיהוי קיומו של פורטל שבוי, ועוקף אי-התאמות נפוצות.
מכשירי Android בודקים את הגישה לרשת על ידי שליחת בדיקות בו-זמניות של HTTP ו-HTTPS לכתובות URL ספציפיות לאימות. אם הבדיקות לא מצליחות באופן עקבי (לדוגמה, HTTP מצליח אבל HTTPS נכשל), המצב הוא קישוריות חלקית, מה שיכול למנוע את ההצגה האוטומטית של אפליקציית הכניסה.
ה-API של פורטל שבוי משפר את מהימנות הזיהוי באמצעות התנהגות הזיהוי הבאה:
- אם ה-API מחזיר
"captive": true, המערכת מזהה שהמכשיר נמצא מאחורי פורטל ומדלגת על הבדיקות הרגילות כדי להציג מיד את ממשק הכניסה. - אם ה-API מחזיר
"captive": false, המערכת ממשיכה עם בדיקות רגילות, ונדרש שהבדיקות של HTTP ו-HTTPS יצליחו כדי לאשר גישה מלאה לאינטרנט.