OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

1.7. בקרת גישה


הניהול של איזה סוג של גישה (קריאה, כתיבה וכו') יש להעניק למשתמשים למשאבים מכונה

בקרת גישה. הנחיות התצורה המעורבות נקראות רשימות בקרת גישה או ACL.


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


כדי לקבל את ה-ACL האפקטיבי עבור שאילתת LDAP, עלינו להסתכל על ערכי ה-ACL של מסד הנתונים הנשאל, כמו גם את אלה של מופע מסד הנתונים החזיתי המיוחד. ה-ACLs השייכים לאחרונים פועלים כברירת מחדל במקרה שאלו של הראשונים אינם תואמים. מסד הנתונים החזיתי הוא השני שיש להתייעץ איתו וה-ACL שיוחל הוא הראשון שתתאים ("מנצחת התאמה ראשונה") בין 2 מקורות ה-ACL הללו. הפקודות הבאות יתנו, בהתאמה, את ה-ACL של מסד הנתונים mdb ("dc=example,dc=com") ואלו של מסד הנתונים הקדמי:


sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcDatabase={1}mdb)' olcAccess


dn: olcDatabase={1}mdb,cn=config

olcAccess: {0}to attrs=userPassword על ידי כתיבה עצמית על ידי אישור אנונימי על ידי * אין olcAccess: {1}to attrs=shadowLastChange על ידי עצמי כתוב על ידי * קרא

olcAccess: {2}ל* על ידי * לקרוא


תמונה

ל-rootDN תמיד יש זכויות מלאות על מסד הנתונים שלו ואין צורך להיכלל באף ACL.



sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcDatabase={-1}frontend)' olcAccess


dn: olcDatabase={-1}frontend,cn=config

olcAccess: {0}to * מאת dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external

,cn=auth ניהול לפי * הפסקה

olcAccess: {1}to dn.exact="" by * read

olcAccess: {2}to dn.base="cn=Subschema" על ידי * read


שני ה-ACL הראשונים הם קריטיים:


olcAccess: {0}to attrs=userPassword על ידי כתיבה עצמית על ידי אישור אנונימי על ידי * אין olcAccess: {1}to attrs=shadowLastChange על ידי עצמי כתוב על ידי * קרא


זה יכול להיות מיוצג אחרת לעיכול קל יותר:


אל attrs=userPassword



בכתיבה עצמית

על ידי אישור אנונימי על ידי * אין


to attrs=shadowLastChange על ידי כתיבה עצמית

על ידי * לקרוא


ACLs אלה אוכפים את הדברים הבאים:

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

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

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

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


ניתן לחפש את ה-DIT הזה באופן אנונימי בגלל 'to * by * read' ב-ACL זה, המעניק גישת קריאה לכל השאר, על ידי כל אחד (כולל אנונימי):


ל *

על ידי * לקרוא


אם זה לא רצוי, עליך לשנות את ה-ACL. כדי לאלץ אימות במהלך בקשת חיבור, אתה יכול לחילופין (או בשילוב עם ה-ACL המשונה) להשתמש בהנחיית 'olcRequire: authc'.


כפי שצוין קודם לכן, לא נוצר חשבון ניהול ("rootDN") עבור מסד הנתונים slapd-config. עם זאת, קיימת זהות SASL המוענקת אליה גישה מלאה. הוא מייצג את משתמש העל של המארח המקומי (root/sudo). הנה זה:


dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth


הפקודה הבאה תציג את ה-ACL של מסד הנתונים slapd-config:


sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcDatabase={0}config)' olcAccess


dn: olcDatabase={0}config,cn=config

olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred, cn=external,cn=auth management by * break


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


1. אתה חייב להשתמש sudo להפוך לזהות השורשית כדי שה-ACL יתאים.

2. מנגנון EXTERNAL פועל באמצעות IPC (שקעי תחום UNIX). זה אומר שאתה חייב להשתמש ב ldapi

פורמט URI.


דרך תמציתית להשיג את כל ה-ACL היא כזו:


sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcAccess=*)' olcAccess olcSuffix

יש הרבה מה לומר על נושא בקרת הגישה. עיין בדף האיש עבור slapd.access4.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: