בדף הזה מוסבר איך PostgreSQL משתלב עם Active Directory ב-AlloyDB Omni באמצעות ממשק תכנות יישומים (API) גנרי לשירות אבטחה (GSSAPI), ומוצגים מושגי מפתח של Kerberos. Kerberos הוא פרוטוקול האימות שמפעיל את Active Directory.
Active Directory הוא שירות ספריות שפיתחה מיקרוסופט לרשתות דומיין של Windows.Active Directory היא מערכת מרכזית וסטנדרטית שמבצעת אוטומציה של ניהול רשת של נתוני משתמשים, אבטחה ומשאבים מבוזרים. שירות הספריות הזה מספק נקודת ניהול יחידה לחשבונות משתמשים, לקבוצות ולאובייקטים אחרים ברשת. פונקציה מרכזית של Active Directory היא אימות, שמאשר את הזהות וההרשאה של משתמש ומעניק למשתמש גישה למשאבים ספציפיים ברשת.
רכיבי Active Directory
Realm הוא הדומיין האדמיניסטרטיבי לאימות Kerberos. בהקשר של Active Directory, תחום שווה לדומיין של Active Directory. תחומים מייצגים קבוצה לוגית של משתמשים, מחשבים ושירותים שחולקים מסד נתונים משותף של אימות. כשמגדירים את Kerberos, צריך לציין את התחום שאליו שייכים הלקוחות והשירותים. מקבץ שרתי משחק (Realm) הוא גרסה באותיות רישיות של שם הדומיין – לדוגמה, אם הדומיין הוא ad.example.com, מקבץ שרתי המשחק (Realm) הוא AD.EXAMPLE.COM.
המרכז להקצאת מפתחות (KDC) הוא שירות ליבה של Kerberos שפועל בכל בקר דומיין ב-Active Directory. ל-KDC יש את הפונקציות העיקריות הבאות:
- שירות אימות (AS): מאמת את הזהות של המשתמש בכניסה הראשונית, לדוגמה, כשנכנסים ל-Windows, ומנפיק כרטיס להענקת כרטיס (TGT).
- שירות למתן כרטיסים (TGS): מנפיק כרטיסי שירות למשתמשים מאומתים שמציגים כרטיס TGT תקף. כרטיסי התמיכה האלה מעניקים גישה לשירותים ספציפיים, כמו מסד נתונים של PostgreSQL.
חשבון הוא זהות ייחודית בתחום Kerberos שאפשר להקצות לה כרטיסים. אלה הסוגים העיקריים של חשבונות משתמשים:
- חשבונות משתמשים: מייצגים משתמשים אנושיים – לדוגמה,
username@REALM. - שמות שירות ראשיים (SPN): מייצגים שירות ספציפי במארח ספציפי – לדוגמה,
postgres/db-server.ad.example.com@REALM. כדי שלקוח יוכל לבקש כרטיס שירות למסד הנתונים שלכם, לשירות מסד הנתונים צריך להיות SPN רשום.
קובץ keytab או קובץ של טבלת מפתחות מכיל רשימה של חשבונות משתמשים ואת המפתחות הסודיים התואמים שלהם, שנגזרים מהסיסמאות של חשבונות המשתמשים. שירותים משתמשים בקובץ keytab כדי להוכיח את הזהות שלהם ל-KDC ולפענח כרטיסי שירות שמוצגים על ידי לקוחות.
הגישה הזו מאפשרת לשירות כמו PostgreSQL לבצע אימות למערכת Kerberos בלי לדרוש אינטראקציה אנושית או לאחסן סיסמה בטקסט פשוט בשרת. קובץ ה-keytab הוא רגיש מאוד, ולכן צריך לאחסן אותו בצורה מאובטחת ולהגן עליו.
שילוב של PostgreSQL עם Active Directory
שילוב של PostgreSQL עם Active Directory מאפשר לכם לנהל את המשתמשים באופן מרכזי על סמך זהויות ארגוניות, וכך לשפר את אבטחת מסד הנתונים.
כדי לתמוך באימות, PostgreSQL מציע את השיטות הבאות לשילוב עם Active Directory:
Lightweight Directory Access Protocol (LDAP): אפשר להגדיר את PostgreSQL לאימות משתמשים מול שרת Active Directory באמצעות פרוטוקול LDAP. כשמשתמש מנסה להתחבר למסד הנתונים, PostgreSQL מתקשר עם שרת Active Directory באמצעות LDAP כדי לאמת את פרטי הכניסה של המשתמש, שהם בדרך כלל שם משתמש וסיסמה. בשיטה הזו נעשה שימוש ב-Active Directory כספק אימות חיצוני.
ממשק תכנות יישומים (API) גנרי לשירותי אבטחה (GSSAPI) עם Kerberos: זו שיטה מאובטחת ומורכבת יותר שמשתמשת בפרוטוקול Kerberos, שהוא מנגנון האימות שמוגדר כברירת מחדל ב-Active Directory. GSSAPI מספק ממשק סטנדרטי לאפליקציות כדי לגשת לשירותי אבטחה.
למרות שגם LDAP וגם GSSAPI משיגים את המטרה של שילוב Active Directory, GSSAPI עם Kerberos היא הגישה המאובטחת והחזקה יותר לסביבות ארגוניות, בגלל האימות הקריפטוגרפי החזק שלה שמבוסס על כרטיסים. בדף הזה מוסבר איך מטמיעים שילוב של Active Directory ב-AlloyDB Omni באמצעות שיטת GSSAPI.
אימות Active Directory באמצעות GSSAPI
AlloyDB Omni מאפשר לכם לבצע אימות באמצעות Kerberos באמצעות Active Directory כקצה עורפי לאימות. התרשים הבא מציג את השלבים לביצוע האימות.

- הלקוח
psqlיוזם בקשת אימות באמצעות שירות האימות (AS) במרכז הפצת המפתחות (KDC). - שרת האימות מאמת את הלקוח ומנפיק ללקוח כרטיס להענקת הרשאה (TGT) (T1). לאחר מכן משתמשים בכרטיס ה-TGT כדי לבקש כרטיסי שירות.
- הלקוח משתמש ב-TGT כדי לבקש כרטיס שירות משירות הענקת הכרטיסים (TGS) ב-KDC עבור שירות PostgreSQL. הלקוח מבקש עכשיו גישה לשרת PostgreSQL הספציפי.
- ה-TGS מאמת את ה-TGT ומנפיק כרטיס שירות (T2) ללקוח. הכרטיס הזה מכיל מפתח סשן (T3) והוא מוצפן באמצעות המפתח הסודי של שרת PostgreSQL.
- הלקוח שולח את כרטיס השירות המוצפן (T2) לשרת PostgreSQL.
- שרת PostgreSQL משתמש במפתח שלו (מקובץ keytab) כדי לפענח את כרטיס השירות (T2). לאחר מכן השרת מאחזר את מפתח הסשן (T3) ומאמת את האותנטיות של הכרטיס. אם הפעולה הזו מצליחה, השרת מעניק גישה ויוצר ערוץ תקשורת מאובטח עם הלקוח באמצעות מפתח הסשן.
המאמרים הבאים
- שילוב תמיכה במשתמשי Active Directory עם AlloyDB Omni.
- שילוב תמיכה במשתמשי Active Directory ב-Kubernetes.
- שילוב תמיכה בקבוצות Active Directory עם AlloyDB Omni.
- שילוב תמיכה בקבוצות Active Directory ב-Kubernetes.
- פתרון בעיות בשילוב של Active Directory ב-AlloyDB Omni