הנה אמונה שעולה לאנשים שבוע: של-Mac יש רגע אחד שנקרא לפני התחברות, ולקוח VPN או מתחיל בו או לא. למעשה במכונה יש לפחות שלושה רגעים שבהם הגישה לרשת חשובה, מופרדים לפי מי רשאי להחזיק אישורים באותו רגע. לקוח שמופעל מפריט התחברות מכסה בדיוק אחד מהם, וזה האחרון.

המיתוס שהגדרה אחת מכסה את כל האתחול

קראו שוב את עמוד המוצר ובדקו איזה שלב התכונה משמשת. תיבת סימון שכתוב עליה הפעל בהתחברות פירושה פריט התחברות, שרץ לאחר שקיים סשן משתמש. תיבת סימון שכתוב עליה התחבר לפי דרישה פירושה שהלקוח פותח חיבור כשהתעבורה תואמת כלל, מה שעדיין דורש שהלקוח והאישורים שלו יהיו זמינים.

אף אחד מאלה אינו מגיע לתהליך האתחול. זו אינה מגבלה שהספק שכח להסיר; זה מה שמערכת ההפעלה מתירה. לפני שהכרך נפתח אין מערכת פועלת שממנה אפשר להפעיל לקוח, ולאחר יציאה הסודות של המשתמש עוזבים עם הסשן. שני קירות נפרדים, ואף אחד מהם לא נכנע לתיבת סימון אחרת.

ברגע שמפרידים את השלבים, השאלה המקורית משנה צורה. במקום לשאול אם ה-VPN מתחיל לפני ההתחברות, שואלים איזה משלושה רגעים מסוימים חייב לעבוד, ואז מגלים שלכל אחד יש בעלים אחר: מחסנית ההצפנה, הרחבת הרשת או סשן המשתמש.

מה באמת קורה בכל שלב

האתחול מתחיל בכרך מוצפן שיש לפתוח לפני שקיימת מערכת שמישה לכל דבר כללי. הפתיחה הזו מתרחשת בהקשר מוגבל עם קבוצה מוגבלת של אישורים, ו-Apple מתעדת בבירור שהנתונים המוצפנים נשארים בלתי נגישים בלי פתיחה תקפה.

אחר כך מגיע חלון ההתחברות, שבו המערכת פועלת אבל עדיין אין סשן משתמש. הרחבה בהקשר משתמש כבר הסתיימה אם המשתמש יצא, והרחבת מערכת גלובלית עשויה עדיין לפעול, אבל לפעול אינו אותו דבר כמו להחזיק את האישורים שה-VPN שלכם צריך.

אחר כך מגיע הסשן, שבו לקוח רגיל יכול לקרוא את מחזיק המפתחות של ההתחברות, לבקש גורם שני ולהחיל מסלולים שנדחפו. רוב התכונות שאנשים מתארים כלפני התחברות הן למעשה השלב הזה, שמופעל בתחילת הסשן ולא לפניו.

StageWhat it can useWhat it cannot do
FileVault unlockCredentials supplied at the console to unlock the volumeRun an ordinary VPN app or read a user keychain
Login windowSystem context, possibly a joined networkUse a user secret that only exists after login
User sessionLogin keychain, interactive MFA, full client featuresExist before the volume unlocks

למה launch daemon לא יכול להתחבר בשם משתמש נעדר

הרשאה מוגברת מרגישה כאילו היא אמורה לפתור את הבעיה, והיא לא. launch daemon פועל כתהליך מערכת בלי סשן משתמש מאחוריו, ולכן אין מחזיק מפתחות לפתוח ואין אדם שיענה לבקשה. הוא יכול לפתוח שקע ולקרוא קובץ; מה שהוא לא יכול הוא להפוך למשתמש שבעל האישורים. הרשאה אינה זהות, ובדיוק כאן השניים מתבלבלים.

מה שאנשים בונים בפער הזה הוא סקריפט שבתוכו סיסמה, וזו בעיה גרועה מזו שאיתה התחילו.

הגרסה הכנה של הדרישה צרה יותר. אם המכונה חייבת להגיע למשאב מוגן כשאף אחד לא נוכח, הזהות שהמשאב הזה מקבל חייבת להיות כזו שהמכונה יכולה להחזיק בלי אדם: תעודת מכשיר, אישור במחזיק המפתחות של המערכת, או חשבון שהגורם השני שלו אינו התראה לטלפון בכיס של מישהו. תכננו את הזהות הזו במכוון, ושאלת השלב בדרך כלל עונה על עצמה.

התכונה של Windows לפני התחברות לא עוברת

ל-Windows יש מנגנון מתועד לגישה לפני התחברות בחלק ממוצרי גישה מרחוק, והשם נוסע טוב יותר מהיכולת. תכונה שמתוארת במדריך פריסה של Windows לא אומרת לכם דבר על אם אותו ספק מיישם מקבילה ב-macOS.

בקשו הצהרה שמכסה את חומרת ה-Mac, גרסת macOS, גרסת הלקוח ושיטת האימות שאתם באמת משתמשים בה. הצהרת תמיכה כללית אינה מספיקה, כי ההבדל בין עובד ללא עובד נמצא לעתים קרובות באחד מארבעת אלה.

אם הספק לא יכול לענות, זו התשובה. תכננו את שלב הסשן ותכננו חלופה למקרה ללא השגחה, במקום לגלות את הפער בזמן פריסה.

מה לבקש במקום

כתבו את הדרישה בשפת השלבים. איזה משאב, נדרש למי, באיזה הקשר, ועם איזה עיכוב מקובל כשהחיבור עוד אינו שם?

אם התשובה היא משתמש שמתחבר ואז צריך את המנהרה, התחברות לפי דרישה ופריט אתחול מספיקים וזולים. אם התשובה היא מכונה שמאותחלת מחדש בלילה וחייבת לדווח, העיצוב צריך מסלול פתיחת דיסק נתמך, זהות מכשיר ותהליך שחזור שעובד כשהרשת לא עולה לעולם. אם התשובה היא התחברות ארגונית שתלויה במנהרה, יש לבנות את עיצובי ההתחברות, הזהות וה-VPN יחד ולא לרכוש אותם בנפרד.

תיעוד FileVault של Apple הוא נקודת ההתחלה הנכונה לשלב הפתיחה. כל מה שאחריו הוא שאלה של לקוח וזהות שהצהרת ספק צריכה להכריע לפני הקנייה.

מאמרים קשורים