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

שני מנגנונים, שתי נקודות החלטה

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

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

מסלול מפת המאפיינים, לפי סדר התצורה

מסלול המפה מתחיל בהגדרת שרת ה-AAA. מפת המאפיינים חייבת להיות מחוברת לרשומת שרת ה-LDAP שבה משתמש בפועל פרופיל החיבור; מפה שקיימת בתצורה הפועלת אך אינה מוזכרת על ידי אותו שרת לא משנה דבר. שורת החיבור הזו היא מה שהופך את שאר התצורה לחיה. מדריך מיפוי ה-LDAP של ASA הוא ההפניה לתחביר המפה בגרסאות 9.x.

בתוך המפה, הצהרה אחת מכנה את מאפיין המדריך ואת מאפיין ה-ASA שהוא מזין, והצהרות נוספות מתרגמות ערכים ספציפיים. map-name memberOf Group-Policy ואחריו map-value memberOf CN=VPN-Support,OU=Groups,DC=corp,DC=example Support-ReadOnly היא הצורה: הצד השמאלי הוא מה שהמדריך החזיר, הצד הימני הוא שמה של מדיניות קבוצה שחייבת כבר להתקיים. שם מובחן ושם תצוגה של מדיניות אינם ניתנים להחלפה, וכמעט-התאמה בכל אחד מהמחרוזות אינה מייצרת שגיאה בהתחברות.

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

מסלול DAP, ומה הוא מוסיף

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

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

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

היכן השתיים חולקות

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

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

לקרוא את הראיות מהפעלה חיה

קראו את התשובה מהפעלה חדשה ולא מהתצורה. show vpn-sessiondb detail anyconnect filter name jdoe מדפיס את מדיניות הקבוצה שההפעלה קיבלה בפועל, ו-show running-config ldap attribute-map מאשר אילו ערכים המפה הייתה יכולה להחזיר. בצד המדריך, test aaa-server authentication LDAP-AD username jdoe password <password> מציג את המאפיינים שה-ASA קיבל בחזרה, ו-debug ldap 255 מציג את החליפין כשהבדיקה אינה תואמת למה שציפיתם.

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

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