שגיאת הסיסמה הזו של LDAP אולי כלל אינה הסיסמה של המשתמש
כשל bind יכול להגיע מחשבון השירות או מהיקף החיפוש, לא מהמשתמש. הפרידו בין ה-bind לפני איפוס הסיסמה של מישהו.
איפוס סיסמה של משתמש הוא הצעד הראשון השגוי כאשר היומן אומר רק ש-bind נדחה. עם תוסף ספרייה יש יותר מ-bind אחד בהתחברות אחת, והדחייה יכולה להיות של חשבון השירות שמבצע את החיפוש. איפוס פרטי הכניסה של המשתמש במקרה כזה אינו משנה דבר. הוא גם נועל מישהו שמעולם לא היה הבעיה.
התחברות אחת, כמה bind
תצורה עם חשבון ספרייה ייעודי מבצעת בדרך כלל ארבעה שלבים לפי הסדר, וכל אחד מהם יכול לסיים את ההתחברות.
connect to the directory and establish the configured TLS protection
bind as the configured service account
search for the user entry using the search base and filter
open a second connection and bind as that user, then evaluate groups
התוסף בונה את חיבור אימות המשתמש דרך אותו עוזר שמטפל בחיבור הראשון, לכן אותו עוזר יכול להיכשל בזמן התחברות, בזמן משא ומתן TLS או בזמן bind כחשבון השירות. ההודעה ברמה גבוהה על סיסמה נוצרת מאוחר יותר, והיא אינה נושאת איזו זהות הייתה מעורבת. לכן טקסט השגיאה לבדו אינו יכול לומר לכם אם המשתמש או חשבון השירות נדחו.
קראו את השורות שלפני ההודעה, ורשמו את הרגע שבו אירע הכשל. דחייה בעת האתחול, לפני שמגיע משתמש כלשהו, מצביעה על החשבון המוגדר או על נקודת הקצה. דחייה שמופיעה רק לאדם אחד, לאחר חיפוש מוצלח, מצביעה על הרשומה או על מצב החשבון של אותו אדם.
הצמידו את השגיאה לזהות
הכלל המעשי הוא לרשום שלושה דברים יחד: מתי זה נכשל, איזו פעולה רצה ואיזו זהות הוצגה. בלי השלשה הזו, שני כשלים שונים מאוד נראים זהים ביומן ששומר רק את המשפט האחרון.
| What the log shows | Identity likely refused | First thing to check |
|---|---|---|
| Failure at start-up, no user yet | Service account | DN, password, expiry, lockout |
| Search returns nothing | None, the search scope is wrong | Search base and filter |
| Failure only for one user | That user's entry | Entry state, bind DN, group rules |
אם החשבון המוגדר נכשל, בדקו את החשבון הזה ואת החיבור לפני שנוגעים ברשומת משתמש כלשהי. אם ה-bind של המשתמש נכשל לאחר חיפוש מוצלח, בדקו את הרשומה שהחיפוש החזיר ולא את זו שהנחתם שהוא יחזיר. שני המסלולים חולקים הודעה אחת ושום דבר אחר. רשמו איזה מהם שללתם, כי האדם הבא ישאל בדיוק את זה.
השם המובחן הוא נתון, לא ניחוש
שינוי רכיב שם מפני שהוא נראה לא מוכר הוא דרך נפוצה לשבור תצורה שעובדת. המיקום המוגדר כברירת מחדל של אובייקטי משתמש ב-Active Directory הוא מיכל בשם Users, ומיכל אינו אותו סוג אובייקט כמו יחידה ארגונית בעלת שם דומה.
בקשו ממנהל הספרייה את השם המובחן האמיתי של החשבון, או קראו אותו מהאובייקט עצמו. שניהם להלן יכולים להיות נכונים בספרייה שלהם, ולכן אין להקליד אף אחד מהם מהזיכרון.
CN=VPN Bind,CN=Users,DC=corp,DC=example
CN=VPN Bind,OU=Service Accounts,DC=corp,DC=example
העברה או שינוי שם משנים את הערך הזה בעוד החשבון והסיסמה נשארים תקפים, כך שתצורה שעבדה ברבעון הקודם יכולה להיכשל ברבעון הזה בלי שאיש נוגע בפרטי כניסה. השוו את המחרוזת המוגדרת למאפיין הנוכחי של הספרייה לאחר כל ארגון מחדש. עשו זאת גם לאחר הגירה שקטה, לא רק לאחר תקלה שדווחה.
בסיס חיפוש אינו חשבון שירות
זהות ה-bind ובסיס החיפוש עונים על שאלות שונות: כמי התוסף מאמת ואיפה הוא מחפש אנשים. bind מוצלח שאחריו אין משתמש תואם הוא בעיית היקף, מסנן או הרשאת קריאה, והחלפת השם המובחן של החשבון בבסיס של המשתמשים אינה משנה בכך דבר.
ודאו שהשירות טען את התצורה שערכתם, כולל נקודת הקצה, אמון TLS ומצב האימות שתואמים לבדיקה ניהולית שעובדת. חיפוש ידני עם חשבון אחר, או מול בקר תחום אחר, אינו ניסוי שווה ערך.
בדקו את הסוד השמור, ובדקו אם החשבון מופעל, פג תוקף או נעול, בלי להדפיס את הסיסמה בשום מקום. קל לפספס את מועד הפקיעה כי החשבון ממשיך לעבוד עד היום שבו הוא מפסיק. נעילה שהורשתה משירות לא קשור שקטה באותה מידה. אף אחד משני התנאים לא מייצר הודעה שמציינת את חשבון השירות.
כללי קבוצה באים אחרונים
ההרשאה רצה לאחר שה-bind מצליח, לכן בדיקת קבוצה אינה יכולה להיות הסיבה לכשל bind, והסרת דרישת הקבוצה אינה יכולה לתקן אותו. אם ההתחברות מגיעה כעת לשלב הקבוצה, הבעיה שנותרה היא חברות, לא פרטי כניסה.
מתן זכויות ספרייה רחבות לחשבון השירות כדי שהשגיאה תיעלם משנה את מדיניות הגישה של כל הפריסה. התייחסו לכך כאל החלטת אבטחה עם סקירה משלה, לא כתיקון להודעה שעדיין לא ייחסתם לזהות.