en
שפה
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
תרגום AI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

אימות LDAP

LDAP

כיצד להגדיר את אימות LDAP

סקירה כללית
הכרזה על מצב אימות LDAP
על יצירת המשתמשים לטוס
כניסה LDAP לקבוצות
פתרון בעיות
במצבי Corner

 

סקירה כללית

LDAP (Lightweight Directory Access Protocol) הוא פרוטוקול תוכנה המאפשר לכל אחד לאתר ארגונים, אנשים ומשאבים אחרים כגון קבצים והתקנים ברשת, בין אם באינטרנט הציבורי ובין אם הוא אינטראנט של ארגונים. LDAP היא גרסה "קלה יותר" (כמות קטנה יותר של קוד) של Directory Access Protocol (DAP), המהווה חלק מ- X.500, תקן לשירותי ספריות ברשת. LDAP קל יותר מכיוון שבגרסתו הראשונית הוא לא כלל תכונות אבטחה. Easy Redmine תומך באופן מקורי באימות LDAP באמצעות ספרית LDAP אחת או מרובות. סוגי שירותי הספרייה הנתמכים כוללים Active Directory, OpenLDAP, eDirectory, Sun Java System Directory Server וכן שירותי ספרייה תואמים אחרים.

ספריית LDAP מסודרת בהיררכיית "עץ" פשוטה המורכבת מהרמות הבאות:

  1. ספריית השורשים (מקום ההתחלה או מקור העץ), שמסתעפת אליו
  2. מדינות, שכל אחת מהן מסתעפת אליהן
  3. ארגונים, שמסתעפים אליהם
  4. יחידות ארגוניות (חטיבות, מחלקות וכדומה), המסתעפות אל (כולל ערך עבור)
  5. אנשים (הכוללים אנשים, קבצים ומשאבים משותפים כגון מדפסות)

 

הכרזה על מצב אימות LDAP

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

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

  • שֵׁם: שם שרירותי לספריה.
  • מנחה: שם מארח LDAP (שרת בדיקה).
  • נמל: יציאת LDAP (ברירת המחדל היא 389).
  • LDAPS: בדוק זאת אם ברצונך או עליך להשתמש ב- LDAPS כדי לגשת לספריה.
  • חֶשְׁבּוֹן: הזן שם משתמש שיש לו גישה לקריאה ל- LDAP, אחרת השאר את השדה הזה ריק אם ניתן לקרוא את ה- LDAP שלך באופן אנונימי (בדרך כלל שרתי Active Directory אינם מאפשרים גישה אנונימית).
  • סיסמה: סיסמא לחשבון.
  • בסיס DN: ה- DN ברמה העליונה של עץ הספריות LDAP שלך (דוגמה: dc = דוגמה, dc = com).
  • מסנן LDAP: ניתן להשתמש במסננים להגבלת מספר המשתמשים או הקבוצות המורשים לגשת ליישום. בעיקרו של דבר המסנן מגביל מאיזה חלק מעץ LDAP שהיישום מסנכרן. ניתן וצריך לכתוב מסנן לחברות משתמשים וקבוצות כאחד. זה מבטיח שאתה לא מציף את היישום שלך עם משתמשים וקבוצות שאינם זקוקים לגישה.
     

    מסננים לדוגמא

    (אַזהָרָה) מסננים אלה נכתבים עבור Active Directory. על מנת להשתמש בהם למשהו כמו OpenLDAP יהיה צורך לשנות את התכונות.

    זה יסנכרן רק משתמשים בקבוצת 'CaptainPlanet' - יש להחיל זאת על ה- מסנן אובייקטים למשתמש:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    וזה יחפש משתמשים שחברים בקבוצה זו, ישירות או באמצעות קינון:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    (info) חשוב שיהיה ל- Active Directory memberOf: 1.2.840.113556.1.4.1941 אם ברצונך למצוא קבוצות מקוננות (אל תחליף את המחרוזת המספרית) בתוך קבוצת CaptainPlanet.

    זה יחפש משתמשים שחברים באחת או בכל 4 הקבוצות (אש, רוח, מים, לב)

    (&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
  • פסק זמן (בשניות): אם ספק ה- LDAP אינו מקבל תגובת LDAP בתוך התקופה שצוינה, הוא מבטל את ניסיון הקריאה. המספר השלם צריך להיות גדול מאפס. מספר שלם שקטן או שווה לאפס פירושו שלא נקבע פסק זמן לקריאה שווה ערך להמתין לתגובה אינסוף עד שתתקבל אשר ברירת המחדל להתנהגות המקורית. אם מאפיין זה לא צוין, ברירת המחדל היא להמתין לתגובה עד שתתקבל.
  • יצירת משתמשים תוך כדי טיסה: על ידי בדיקה זו, כל משתמש LDAP ייצור את חשבון Easy Redmine שלו באופן אוטומטי בפעם הראשונה שהוא יכנס ל- Easy Redmine. אחרת, יהיה עליך ליצור את המשתמש באופן ידני ב- Easy Redmine לכל משתמש LDAP שרוצה להיכנס.

תכונות (דוגמאות):

  • תכונת כניסה: שם הכניסה שבאמצעותו משתמש מתחבר ומאומת.
  • מאפיין שם פרטי: תכונה לשם פרטי.
  • מאפיין שם משפחה: תכונה לשם משפחה.
  • מאפיין דוא"ל: תכונה לכתובת דוא"ל.

משתמשי Easy Redmine צריכים כעת להיות מסוגלים לאמת באמצעות שם המשתמש והסיסמה שלהם ב- LDAP אם חשבונותיהם מוגדרים להשתמש ב- LDAP לאימות (סמן את הגדרת "מצב אימות" בעת עריכת פרופיל המשתמש).

כדי לבדוק זאת, צור משתמש Easy Redmine עם כניסה המתאימה לחשבון ה- LDAP שלו (בדרך כלל Easy Redmine ייעץ לך על ידי חיפוש נתוני LDAP), בחר את ה- LDAP החדש שנוצר ברשימה הנפתחת מצב אימות (שדה זה הוא גלוי במסך החשבון רק אם מוכרז LDAP) והשאיר את הסיסמה ריקה. נסה להיכנס ל- Easy Redmine באמצעות שם המשתמש והסיסמה של LDAP.

 

על יצירת המשתמשים לטוס

על ידי סימון יצירת משתמשים תוך כדי תנועה, לכל משתמשי LDAP החשבון Easy Redmine שלו ייווצר אוטומטית בפעם הראשונה שהוא יכנס ל- Easy Redmine.
לשם כך, עליך לציין את שם תכונות ה- LDAP (שם פרטי, שם משפחה, דוא"ל) שישמש ליצירת חשבונות Easy Redmine שלהם.

הנה דוגמה טיפוסית לשימוש ב- Active Directory:

שם = מארח הספריה שלי = host.domain.org יציאה = 389 LDAPS = אין חשבון = MyDomain \ UserName (או שם משתמש @ MyDomain תלוי בשרת AD) סיסמה = בסיס DN = CN = משתמשים, DC = מארח, DC = דומיין, DC = org יצירת משתמשים ברמה = כן תכונות כניסה = sAMAccountName שם פרטי = givenName שם משפחה = sN דוא"ל = דואר

הנה דוגמה נוספת ל- Active Directory עם אינטרא-נט ממודר:

שם = רק תיאור לדף מצבי האימות Host = DepartmentName.OrganizationName.local Port = 389 LDAPS = no Account = DepartmentName \ UserName (או UserName @ MyDomain תלוי בשרת AD או לאגד DN uid = מנהל, cn = משתמשים, dc = MyDomain, dc = com) סיסמה = בסיס DN = DC = שם מחלקה, DC = שם ארגוני, DC = יצירת משתמש מקומי בזמן אמת = כן תכונות כניסה = sAMAccountName שם פרטי = שם פרטי שם משפחה = sN דוא"ל = דואר

שים לב ששמות תכונות LDAP הם תלוי רישיות.

חשבון קישור דינמי

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

חשבון: $login@COMPANY.DOMAIN.NAME

or

חשבון: כניסה לחברה \ $

גרסאות DN בסיסיות

למרות שייתכן בהחלט ש- DN DN לעיל הוא סטנדרטי עבור Active Directory, ה- Active Directory באתר המעסיק שלי אינו משתמש במיכל המשתמשים עבור משתמשים רגילים, כך שההוראות האלה שלחו אותי בדרך ארוכה וכואבת. אני ממליץ לנסות רק "DC = host, DC = domain, DC = org" אם הכניסה נכשלת עם ההגדרות שם.

 

התחברות LDAP קבוצתית

אם אתה רק רוצה לאפשר כניסות למשתמשים השייכים לקבוצת LDAP מסוימת, עליך לפעול לפי ההנחיות הבאות. הם מבוססים על שרת LDLD OpenLDAP ו- Easy Redmine.

1. (שרת OpenLDAP) אפשר שכבת-על של חבר

1.1. צור קובץ:

vim ~ / memberof_add.ldif

עם התוכן למטה:

dn: cn = מודול, cn = config
objectClass: olcModuleList
cn: מודול
olcModulePath: / usr / lib / ldap
olcModuleLoad: memberof

1.2. צור קובץ:

vim ~ / memberof_config.ldif

עם התוכן למטה:

dn: olcOverlay = memberof, olcDatabase = {1} hdb, cn = config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: למעלה
olcOverlay: memberof
olcMemberOfDangling: התעלם
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: חבר
olcMemberOfMemberOfAD: memberOf

1.3. טען אותם. זה יהיה תלוי בתצורת OpenLDAP שלך, לכן אנו מציעים כמה אפשרויות:

sudo ldapadd -c -Y EXTERNAL -H ldapi: /// -f memberof_add.ldif
sudo ldapadd -c -Y EXTERNAL -H ldapi: /// -f memberof_config.ldif

או:

ldapadd -D cn = admin, cn = config -w "סיסמה" -H ldapi: /// -f memberof_add.ldif
ldapadd -D cn = admin, cn = config -w "סיסמה" -H ldapi: /// -f memberof_config.ldif

אין צורך בהפעלה מחדש אם אתה משתמש במנוע תצורה דינמי של זמן ריצה (slapd-config).

1.4. (אופציונלי) בדוק את זה:

ldapsearch -D cn = admin, dc = example, dc = com -x -W -b 'dc = example, dc = com' -H 'ldap: //127.0.0.1: 389/' '(& (objectClass = posixAccount ) (memberOf = cn = ldapeasyredmine, ou = קבוצות, dc = דוגמא, dc = com)) '

2. (שרת OpenLDAP) צור את הקבוצה. בדוגמה זו המשתמש הוא "ldap_user_1" והקבוצה היא "ldapeasyredmine":

dn: cn = ldapeasyredmine, ou = קבוצות, dc = דוגמא, dc = com
cn: ldapeasyredmine
תיאור: אנשי הצוות רשאים להיכנס למערכת הכרטיסים Easy Redmine
חבר: cn = ldap_user_1, ou = אנשים, dc = דוגמה, dc = com
class class: groupOfNames
אובייקט-קלאס: עליון

התאם את "dn" ו- "cn" כך שיתאימו למבנה ה- DIT שלך

3. (Easy Redmine) ערוך את מצב אימות LDAP. במקרה שלי "ldap_user_1" הוא מחלקת אובייקטים "posixAccount":

בסיס DN: dc = דוגמה, dc = com
מסנן: (& (objectClass = posixAccount) (memberOf = cn = ldapeasyredmine, ou = קבוצות, dc = דוגמא, dc = com))

 

פתרון בעיות

אם ברצונך להשתמש ביצירת משתמשים בזריזות, ודא ש- Easy Redmine יכול להביא מה- LDAP שלך את כל המידע הנדרש ליצירת משתמש תקף.
לדוגמא, יצירת משתמשים תוך כדי תנועה לא תעבוד אם אין לך כתובות דוא"ל חוקיות בספרייה שלך (תקבל הודעת שגיאה 'שם משתמש / סיסמה לא חוקי' בעת ניסיון להתחבר).
(זה לא נכון לגבי גרסאות חדשות יותר של Redmine; תיבת הדו -שיח ליצירת משתמשים מאוכלסת בכל מה שהוא יכול למצוא משרת ה- LDAP, ומבקשת מהמשתמש החדש למלא את השאר.)

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

שגיאות במערכת ההתחברות אינן מדווחות עם מידע אמיתי ביומני Easy Redmine, מה שמקשה על פתרון בעיות. עם זאת, אתה יכול למצוא את רוב המידע שאתה צריך להשתמש בו Wireshark בין מארח Easy Redmine שלך ​​לבין שרת LDAP. שים לב שזה פועל רק אם יש לך הרשאות לקרוא תעבורת רשת בין שני המארחים האלה.

תוכל גם להשתמש בכלי 'ldapsearch' כדי לבדוק אם ההגדרות שלך נכונות. היכנס למכונת לינוקס המארחת את Easy Redmine שלך ​​(ואולי התקן ldaputils) והפעל זאת:

ldapsearch -x -b  "dc=example,dc=com" -H ldap://hostname/ -D "DOMAIN\USER" -w mypassword [searchterm]

אם הצליח, תקבל רישום של תוכן המודעה המתאים לשאילתת החיפוש שלך. לאחר מכן, תדע כיצד למלא את השדות בתצורת LDAP ב- Easy Redmine.

דרכים חלופיות לאימות הפונקציונליות

  • נסה להסיר מסנני LDAP שאם הם מוגדרים באופן שגוי, הם יכולים למחוק את המשתמשים שאתה רוצה למצוא.
  • ליד "תכונת הכניסה" מופיע סמל ספר. אם אתה לוחץ עליו וה- LDAP מוגדר כהלכה, "התכונות הרגילות" ממולאות אוטומטית מראש על ידי שרת ה- LDAP בפועל. במקום שדות טקסט, תיבות בחירה מופיעות עבור מקרה בו המשתמש רוצה לשנות את ההגדרות. ברוב המקרים המשתמש כלל לא צריך למלא זאת. אם זה עובד, סביר להניח שכל השאר יעבוד.
  • לבעיות חיבור, תוכלו להשתמש בלחצן "בדיקה" ברישום שרת ה- LDAP. היזהר, זה משמש רק כדי לבדוק אם אתה יכול להתחבר ל- LDAP. הבעיה הנפוצה היא שמנהלים אינם ממלאים את משתמש מערכת ה- LDAP גם כאשר הגדרות ה- LDAP עדיין מוגנות. במקרה זה, הבדיקה תפעל בסדר מכיוון שהחיבור פועל אך לא ניתן להוסיף משתמשים מכיוון שה- LDAP אינו "רואה" אף אחד.
  • כדי לבדוק האם LDAP באמת עובד, ניתן להשתמש גם במספר "משתמשים זמינים" - אם הערך שלו הוא 0, LDAP אינו מחזיר נתונים וכנראה שהוא מוגדר באופן שגוי. אם יש מספר, אתה יכול ללחוץ עליו כדי להרחיב ולראות מה מראה ה- LDAP (ולהתאים את המסננים בהתאם).

חֶשְׁבּוֹן פורמט ערך

ייתכן שיהיה צורך לציין את שם המשתמש של אישורי הקישור כ- DN ולא כ- UPN (user@domain.com) או כ דומיין \ משתמש, כפי שצוין בתגובה זו ב מקור: trunk / vendor / plugins / ruby-net-ldap-0.0.4 / lib / net / ldap.rb:

  # כמתואר תחת #bind, רוב שרתי ה- LDAP דורשים שתספק מספר DN מלא כתעודת כריכה מחייבת, יחד עם מאמת כגון סיסמה.

לכן משתמש ב- MyDomain \ MyUserName או MyUserName@MyDomain.com שם המשתמש עשוי להכניס את MyUserName רק בשם התחברות ל Redmine Easy.

אימות LDAP איטי

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

OpenDS

אם אתה משתמש בשרת OpenDS, ייתכן שיש לך בעיות עם בקרת הבקשות "תוצאות בדף" שנשלחות עם השאילתה הראשונית בחיפוש המשתמש על ידי תכונת ההתחברות שצוין. בקרת בקשה זו 1.2.840.113556.1.4.319 אינה מותרת למשתמשים אנונימיים כברירת מחדל, ובכך מונעת מ- Easy Redmine למצוא את המשתמש בספרייה עוד לפני שהחיבור מתרחש.

הוסף ACI גלובלי כזה

./dsconfig -h SERVER_IP -p 4444 -D cn = "מנהל ספריות" -w סיסמת -n set-control-control-handler-prop -trustAll - להוסיף global-aci: \ (targetcontrol = \ "1.2.840.113556.1.4.319 .3.0 \ "\) \ (גרסה \ 1.2.840.113556.1.4.319 \; \ acl \ \" אנונימי \ שליטה \ גישה \ אל \ XNUMX \ "\; \ allow \ \ (קרא \) \ userdn = \ "ldap: /// מישהו \" \; \)

הערה: הזן את הפקודה בשורה אחת, השתמש ב- escaping בדיוק כפי שצוין (ה \ אחרי "acl" אמור להיות "\" למרחב).

משתמשים מסוימים אינם יכולים להתחבר

בעיה: OU ספציפי של משתמשים אינו מצליח להתחבר (משתמש או סיסמה לא חוקיים) בזמן שכל האחרים. המשתמשים נמצאים באתר מרוחק, אך משתמשים בשאר ה- OUs באותו אתר לא מקבלים את השגיאה הזו.

פתרון: הבעיה היא ככל הנראה לא הקשורה להגדרות שגויות אלא לבעיה של Active Directory (AD). למשתמשים שלא הצליחו להתחבר, הוגדר שדה "כניסה אל" למחשב מסוים במאפיינים של משתמש ה- AD (ניהול AD). לאחר שינוי זה ל"כניסה מכל מקום ", זה אמור לעבוד. באופן ספציפי יותר, יש להגדיר שדה זה: משתמש משתמש -> מאפיינים -> חשבון -> כניסה מכל מקום.

בעיות עם כניסה בעת שימוש ב- LDAPS ללא אישור תקף

אתה עלול להיתקל בבעיות בכניסה בעת שימוש ב- LDAPS ללא אישור תקף. ב- Redmine 4, אישור LDAPS תמיד מאומת. עם אישור לא חוקי, משתמשים לא יוכלו להיכנס. כמובן, הפיתרון הנכון והארוך הוא שימוש באישור תקף. אך עד שתשיג זאת, הפתרון הזמני הוא לעבור לניהול >> אימות LDAP >> ערוך מצב אימות בהתאמה.

שנה את ההגדרה ל- LDAPS (ללא בדיקת תעודה).

עם פתרון Easy Redmine Server אתה יכול לשנות את זה בתפזורת מסוף מסילות
rails r "AuthSource.update_all (valid_peer: false)" -הייצור

או באמצעות SQL
UPhate auth_sources set verify_peer = 0;

 

במצבי Corner

  • בעת ייבוא ​​/ יצירה של משתמשים באופן אוטומטי מ- LDAP, עדיפה הגדרת ברירת המחדל של סוג המשתמש שהוזנה בטופס יצירת המשתמש על פני הגדרת ברירת המחדל של סוג המשתמש שהוזנה ב- LDAP. לאחר יצירת המשתמש, לא ניתן לשנות מאוחר יותר הגדרה זו (אלא אם כן אתה יוצר LDAP חדש).

נסה את Easy Redmine תוך 30 יום ניסיון חינם

תכונות מלאות, מוגנת SSL, גיבויים יומיים, במיקום הגיאוגרפי שלך