ניהול משתמשים וקבוצות בדומיין - איך עושים את זה נכון ולא רק "עובד"¶
כל מי שמנהל Active Directory יודע ליצור משתמש חדש וללחוץ עליו הרשאה. השאלה האמיתית היא אם הוא עושה את זה בצורה שנשארת בת ניהול גם כשהארגון גדל מ-50 עובדים ל-500. ההבדל הוא לא בטכנולוגיה, הוא בשיטת עבודה, וזה בדיוק מה שנדבר עליו כאן.
חשבון משתמש מול חשבון מחשב¶
בדומיין יש שני סוגי חשבונות עיקריים שקל להתבלבל ביניהם. חשבון משתמש (User Account) מייצג אדם - עם סיסמה, פרטי התחברות, והרשאות. חשבון מחשב (Computer Account) מייצג מכשיר שהצטרף לדומיין, ויש לו זהות משלו ברשת, בנפרד מהמשתמש שמתחבר אליו בפועל. שני הסוגים משתתפים באימות מול הדומיין, אבל הם מייצגים ישויות שונות לגמרי, ולכל אחד מדיניות ומחזור חיים משלו.
סוגי קבוצות - לא כל קבוצה נועדה להרשאות¶
טעות נפוצה של מתחילים היא לחשוב שכל קבוצה בדומיין משמשת להענקת הרשאות. בפועל יש שני סוגים:
- קבוצת אבטחה - Security Group. משמשת להענקת הרשאות בפועל - גישה לתיקייה, הרשאה למערכת, חברות בקבוצת מנהלים. זו הסוג שרוב מנהלי המערכת עובדים איתו יום יום.
- קבוצת הפצה - Distribution Group. משמשת רק לתפוצת מייל, למשל רשימת תפוצה של כל מחלקת השיווק. אי אפשר לתת לה הרשאות גישה למשאבים, גם אם זה נראה מפתה לעשות את זה בטעות.
תחום ההיקף של קבוצה - עד כמה רחוק היא "רואה"¶
מעבר לסוג, לכל קבוצה יש גם תחום היקף (Scope), שקובע איפה בדיוק אפשר להשתמש בה:
- קבוצה מקומית לתחום - Domain Local. משמשת בעיקר להענקת הרשאות בפועל למשאב מסוים, כמו תיקייה משותפת. יכולה לכלול חברים מכל דומיין ביער.
- קבוצה גלובלית - Global. משמשת לארגון משתמשים לפי תפקיד או מחלקה בתוך אותו דומיין, למשל "כל צוות הפיתוח".
- קבוצה אוניברסלית - Universal. משמשת ביערות עם כמה דומיינים, כשצריך קבוצה שרלוונטית בכל היער כולו.
שיטת AGDLP - הדרך המומלצת לחבר את הכל¶
אם יש כלל אחד ששווה לזכור מכל המאמר הזה, זה הכלל שנקרא AGDLP: משתמשים (Accounts) נכנסים לקבוצות גלובליות (Global), קבוצות גלובליות נכנסות לקבוצות מקומיות לתחום (Domain Local), וקבוצות מקומיות לתחום מקבלות הרשאות (Permissions) בפועל על משאבים.
למה זה חשוב? כי זה מפריד בין "מי" (ארגון משתמשים לפי תפקיד, בקבוצה גלובלית) לבין "מה מותר" (הרשאה קונקרטית, דרך קבוצה מקומית לתחום). כשמנהל מערכת רוצה להוסיף עובד חדש לצוות פיתוח, הוא מוסיף אותו לקבוצה הגלובלית "צוות פיתוח" בלבד, וכל ההרשאות שהצוות הזה כבר מקבל - לתיקיות, למערכות, לשרתים - מגיעות אליו אוטומטית, בלי לגעת בהרשאות עצמן בכלל.
למה נטינג של קבוצות בלי סדר הופך לסיוט¶
ארגון שגדל בלי שיטה ברורה מוצא את עצמו עם קבוצות מקוננות בתוך קבוצות, שאף אחד כבר לא זוכר למה הן קיימות, ומשתמשים עם הרשאות שהצטברו לאורך שנים בלי שאף אחד ניקה אותן. זה נקרא זחילת הרשאות (Permission Creep), וזו אחת הבעיות הכי נפוצות שבודקי חדירות מנצלים בבדיקות פנימיות - לא כי הם מוצאים חולשת תוכנה, אלא כי הם מוצאים משתמש רגיל שבטעות יש לו, דרך שרשרת קבוצות ארוכה, הרשאה שהוא לא אמור להחזיק בכלל.
כמה כללי עבודה שחוסכים כאב ראש בעתיד¶
הרשאות תמיד ניתנות לקבוצות, אף פעם לא למשתמש בודד באופן ישיר, גם אם זה נראה מהיר יותר ברגע הנתון. שם קבוצה צריך לתאר מה היא עושה, לא מי יצר אותה, כדי שאדם אחר יבין את המטרה שלה בעוד שנתיים. וכדאי לבצע סקירה תקופתית של חברי קבוצות בעלות הרשאות רגישות, כי חשבונות שהתווספו "זמנית" נוטים להישאר לנצח אם אף אחד לא בודק.
איך מתרגלים את זה נכון¶
הדרך הכי טובה להפנים את שיטת AGDLP היא להקים סביבת מעבדה, ליצור כמה משתמשים, כמה קבוצות מכל סוג, ולראות בעצמכם איך הרשאה שמוגדרת פעם אחת על קבוצה מקומית לתחום מתפשטת אוטומטית לכל מי שמצטרף לקבוצה הגלובלית המתאימה.
קורס הרשתות המלא נמצא כאן, חינם ובעברית, כולל הבנה מעמיקה של רשתות ארגוניות וניהול זהויות.
יש לכם שאלה על מבנה קבוצות בסביבה שלכם? שאלו בדיסקורד.
לסיכום¶
ניהול משתמשים וקבוצות טוב בדומיין הוא לא עניין של לחצן "צור משתמש חדש", הוא שיטת עבודה שמפרידה בין ארגון אנשים לבין הענקת הרשאות. מי שמפנים את שיטת AGDLP מהתחלה חוסך לעצמו שנים של בלגן הרשאות שאף אחד לא רוצה לנקות בדיעבד.