4. חיבור לקוחות LDAP לשירות LDAP מאובטח

במאמר הזה מוסבר איך לחבר את לקוח ה-LDAP לשירות LDAP מאובטח.

חשוב לדעת:

  • חשוב לקרוא את התיעוד של הספק
    הפרטים במאמר הזה לגבי חיבור לקוח LDAP לשירות LDAP מאובטח הם להפניה בלבד, והם עשויים להשתנות. בנוסף להוראות העזרה האלה, חשוב לקרוא את התיעוד של הספק כדי לקבל את השלבים העדכניים ביותר לחיבור הלקוח לשירות LDAP מאובטח.
  • לפני שמתחילים
    לפני שמשתמשים בהוראות האלה, צריך לוודא שהוספתם את הלקוח לשירות LDAP מאובטח, הגדרתם הרשאות גישה, הורדתם אישור ומפתח של לקוח, ואם רוצים, יצרתם פרטי גישה.
  • בדיקת קישוריות
    אם רוצים, לפני שמתחילים בשלבים האלה, אפשר לבצע בדיקת חיבור מהירה באמצעות כלים פשוטים כמו ldapsearch,‏ ADSI ו-ldp.exe. אפשר גם להשתמש בכלים האלה לפתרון בעיות אם נתקלים בשגיאות בניסיון לחבר את לקוח ה-LDAP לשירות. הוראות מפורטות זמינות במאמר בנושא בדיקת קישוריות מאובטחת של LDAP.
  • איך משלימים את שלבי ההגדרה
    אחרי שמחברים את לקוח ה-LDAP לפי ההוראות שבדף הזה, צריך להשלים את ההגדרה של לקוח ה-LDAP על ידי שינוי סטטוס השירות למופעל במסוף Google Admin. הוראות מפורטות מופיעות בקטע 5. מעבירים את המתג שליד 'לקוחות LDAP' למצב מופעל.

מה כולל המאמר הזה

המאמר הזה כולל את הקטעים הבאים:

ההוראות האלה מניחות ששמות הקבצים של המפתח והאישור שהורדתם הם ldap-client.key ו-ldap-client.crt.

הוראות הגדרה בסיסיות

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

הערה: לקוחות LDAP מסוימים, כמו Atlassian Jira ו-SSSD, מבצעים חיפוש משתמש כדי לקבל מידע נוסף על משתמש במהלך אימות המשתמש. כדי לוודא שאימות המשתמשים פועל בצורה תקינה בלקוחות LDAP כאלה, צריך להפעיל את האפשרות קריאת פרטי המשתמש בכל היחידות הארגוניות שבהן מופעלת האפשרות אימות פרטי הכניסה של המשתמש. (הוראות מפורטות מופיעות במאמר הגדרת הרשאות גישה).

כדי לחבר את לקוח ה-LDAP לשירות LDAP מאובטח:

  1. מגדירים את לקוח ה-LDAP עם Cloud Directory כשרת ה-LDAP.
  2. מעלים את האישור ללקוח ה-LDAP.

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

    הערה: כדי לקבל פרטים מלאים על אופן ההעלאה של אישורי TLS ועל המקום שבו צריך להעלות אותם, אפשר לעיין במסמכי הספק.

בטבלה הבאה מפורט מידע בסיסי על החיבור:

שם מארח

ldap.google.com

Ports

389 ל-LDAP עם StartTLS מופעל
636 ל-LDAPS (עם SSL/TLS מופעל)

Base DN

הדומיין שלכם בפורמט DN. לדוגמה:

dc=example,dc=com עבור example.com

שם משתמש וסיסמה

בנוסף לאימות באמצעות אישור, חלק מלקוחות ה-LDAP מחייבים הזנה של שם משתמש וסיסמה. אם לא חובה למלא את השדות של שם המשתמש והסיסמה, אפשר לדלג על השלב הזה.

יוצרים שם משתמש וסיסמה במסוף Google Admin. הוראות מפורטות מופיעות במאמר בנושא יצירת פרטי גישה.

קבצים של אישור לקוח ומפתחות

משתמשים באישור ובקובץ המפתח שהורדתם ממסוף Google Admin. אם לקוח ה-LDAP לא מספק דרך לאימות באמצעות אישור לקוח, אפשר לעיין במאמר בנושא שימוש ב-stunnel כפרוקסי.

חשוב: חלק מלקוחות LDAP, כמו Apache Directory Studio, לא תומכים בהעלאה של אישורים דיגיטליים. כדי לפתור את הבעיה בתרחיש הזה, אפשר לעיין במאמר בנושא שימוש ב-stunnel כפרוקסי.

הוראות להגדרת לקוחות LDAP ספציפיים

ADSI Edit (Windows)

מבצעים את הפעולות הבאות:

  1. פועלים לפי שלבים 1 עד 11 במאמר ldp.exe (Windows) כדי להתקין את אישורי הלקוח.
  2. עוברים אל פעולה > התחברות אל…
  3. מזינים את הגדרות החיבור הבאות:

    שם: מקלידים שם לחיבור, כמו Google LDAP.
    נקודת חיבור: "בחירה או הקלדה של שם ייחודי או הקשר שמות"
    מזינים את שם הדומיין בפורמט DN (לדוגמה, dc=example,dc=com עבור example.com).

    מחשב: 'בחירה או הקלדה של דומיין או שרת'
    ldap.google.com

    שימוש בהצפנה מבוססת SSL: מסומן
  4. לוחצים על Advanced...‎ ומזינים את הפרטים הבאים:

    Specify credentials: מסומן
    Username: שם המשתמש של פרטי הגישה ממסוף Admin
    Password: הסיסמה של פרטי הגישה ממסוף Admin
    Port Number: 636
    Protocol: LDAP
    Simple bind authentication: מסומן
  5. לוחצים על אישור ואז שוב על אישור.
  6. אם החיבור יצליח, התוכן של Active Directory ב-DN הבסיסי יוצג בחלונית השמאלית.

Apache Directory Studio

כדי להשתמש ב-Apache Directory Studio, מתחברים דרך stunnel ומשתמשים בפרטי גישה (שם משתמש וסיסמה) שנוצרו במסוף Google Admin. בהנחה שפרטי הגישה קיימים ו-stunnel מאזין ליציאה localhost 1389, פועלים לפי השלבים הבאים:

  1. לוחצים על קובץ > חדש…
  2. בוחרים באפשרות LDAP Browser > LDAP Connection (דפדפן LDAP > חיבור LDAP).
  3. לוחצים על הבא.
  4. מזינים את פרמטרי החיבור:

    שם החיבור: בוחרים שם, כמו Google LDAP
    שם המארח: localhost
    יציאה: 1389 (או יציאת ההאזנה/הקבלה של stunnel)
    שיטת ההצפנה: ללא הצפנה (הערה: אם stunnel פועל מרחוק, מומלץ להצפין את הנתונים בין stunnel לבין הלקוח).
  5. לוחצים על הבא.
  6. מזינים את פרמטרי האימות:

    שיטת אימות: אימות פשוט
    Bind DN or user: שם המשתמש של פרטי הגישה ממסוף Admin
    Bind password: הסיסמה של פרטי הגישה ממסוף Admin
  7. לוחצים על הבא.
  8. מזינים את שם הדומיין הבסיסי.
    זה שם הדומיין בפורמט DN (dc=example,dc=com עבור example.com).
  9. לוחצים על סיום.

Atlassian Jira

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

חשוב: שימוש בהוראות הבאות עלול לחשוף את keystorePassword למשתמשים ולקובצי יומן. חשוב לנקוט אמצעי זהירות כדי למנוע גישה לא מורשית למעטפת המקומית, לקובץ היומן ולמסוף Google Admin. במקום ההוראות הבאות, אפשר להשתמש בשיטה stunnel4 (ראו אופציונלי: שימוש ב-stunnel כשרת proxy).

הערה: ההוראות הבאות מניחות ש-Jira מותקן בנתיב ‎/opt/atlassian/jira.

כדי לחבר לקוח Atlassian Jira לשירות LDAP מאובטח:

  1. מעתיקים את האישור ואת המפתח לשרתים של Jira. (זהו האישור שנוצר במסוף Google Admin בזמן הוספת לקוח ה-LDAP לשירות ה-LDAP המאובטח).

    לדוגמה:
    $ scp ldap-client.key user@jira-server:
  2. ממירים את האישור והמפתחות לפורמט של Java keystore. במהלך התהליך תוצג בקשה להזנת סיסמאות. כדי לפשט את התהליך, בוחרים סיסמה מאובטחת ומשתמשים בה בכל ההנחיות.

    $ openssl pkcs12 -export -out jira-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    $ sudo /opt/atlassian/jira/jre/bin/keytool -v -importkeystore -srckeystore jira-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore /opt/atlassian/jira/jira-ldap.jks -deststoretype JKS

  3. מגדירים את Jira כך שישתמש במאגר המפתחות החדש. פועלים לפי ההוראות כאן כדי להוסיף אפשרויות:

    ‎"-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password"

    ב-Linux:
    1. עורכים את הקובץ /opt/atlassian/jira/bin/setenv.sh.
    2. מחפשים את ההגדרה JVM_SUPPORT_RECOMMENDED_ARGS.
    3. מוסיפים את המחרוזת ‎ "-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password"‎, ומחליפים את ‎ "password"‎ בסיסמה שבחרתם למעלה.
  4. מפעילים מחדש את Jira.

    $ /opt/atlassian/jira/bin/stop-jira.sh
    $ /opt/atlassian/jira/bin/start-jira.sh

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

    שם

    ‫Google Secure LDAP

    סוג המדריך

    OpenLDAP

    שם מארח

    ldap.google.com

    יציאה

    636

    שימוש ב-SSL

    מסומן

    שם משתמש

    יוצרים שם משתמש וסיסמה במסוף Google Admin. הוראות מפורטות מופיעות במאמר בנושא יצירת פרטי גישה.

    סיסמה

    יוצרים שם משתמש וסיסמה במסוף Google Admin. הוראות מפורטות מופיעות במאמר בנושא יצירת פרטי גישה.

    Base DN

    שם הדומיין בפורמט DN. (לדוגמה, dc=example,dc=com עבור example.com)

    DN של משתמש נוסף

    אופציונלי. ‪"ou=Users"

    שם DN של קבוצה נוספת

    אופציונלי. ‪"ou=Groups"

    הרשאות LDAP

    לקריאה בלבד

    הגדרות מתקדמות

    ללא שינוי

    User Schema Settings >
    User Name Attribute

    googleUid

    הגדרות של סכימת משתמשים >
    מאפיין RDN של שם המשתמש

    uid

    Group Schema Settings >
    Group Object Class

    groupOfNames

    הגדרות סכימת קבוצה >
    מסנן אובייקט של קבוצה

    (objectClass=groupOfNames)

    הגדרות סכימת המינוי >
    מאפיין חברי הקבוצה

    חבר

    הגדרות סכימת החברות >
    שימוש במאפיין חברות המשתמש

    מסומן
  7. נותנים תפקיד לקבוצה.

    כדי שמשתמש יוכל להתחבר ל-Atlassian Jira, הוא צריך להיות חבר בקבוצה שיש לה גישה ל-Jira.

    כדי להעניק תפקיד לקבוצה:
    1. עוברים אל הגדרות > אפליקציות > גישה לאפליקציות.
    2. בתיבת הטקסט Select group (בחירת קבוצה), מזינים את השם של קבוצת Google שרוצים לתת לה גישה ל-Jira.

CloudBees Core / Jenkins

הוראות לחיבור CloudBees Core לשירות LDAP מאובטח זמינות במאמר Configure CloudBees Core with Google's Cloud Identity Secure LDAP (הגדרה של CloudBees Core באמצעות Secure LDAP של Cloud Identity של Google).

FreeRadius

מבצעים את הפעולות הבאות:

  1. מתקינים ומגדירים את FreeRADIUS בנתיב /etc/freeradius/3.0/.

    אחרי שמתקינים את FreeRADIUS, אפשר להוסיף את הגדרת ה-LDAP על ידי התקנת הפלאגין freeradius-ldap.

    $ sudo apt-get install freeradius freeradius-ldap
  2. מעתיקים את קובצי המפתח והאישור של לקוח ה-LDAP אל ‎/etc/freeradius/3.0/certs/ldap-client.key ו-‎/etc/freeradius/3.0/certs/ldap-client.crt בהתאמה.

    $ chown freeradius:freeradius
    /etc/freeradius/3.0/certs/ldap-client.*
    $ chmod 640 /etc/freeradius/3.0/certs/ldap-client.*

  3. מפעילים את מודול ה-LDAP.

    $ cd /etc/freeradius/3.0/mods-enabled/
    $ ln -s ../mods-available/ldap ldap

  4. עורכים את ‎/etc/freeradius/3.0/mods-available/ldap.
    1. ldap->server = 'ldaps://ldap.google.com:636'
    2. identity = username from the application credentials
    3. סיסמה = סיסמה מפרטי הכניסה של האפליקציה
    4. base_dn = 'dc=domain,dc=com'
    5. tls->start_tls = no
    6. tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
    7. tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
    8. tls->require_cert = 'allow'
    9. מוסיפים הערה לכל השדות בנתיב הניווט שמייצג את הקטע ldap -> post-auth -> update
  5. עורכים את /etc/freeradius/3.0/sites-available/default.
    הפעולה הזו משנה את חיבור הלקוח של FreeRadius. אם אתם לא משתמשים בלקוח ברירת המחדל, הקפידו לעדכן את הלקוח הרלוונטי (inner-tunnel או כל לקוח מותאם אישית) שהגדרתם.
    1. משנים את הקטע authorize כדי להוסיף את הבלוק הבא בתחתית אחרי ההצהרה של פרוטוקול אימות הסיסמה (PAP):

      if (User-Password) {
      update control {
      Auth-Type := ldap
      }
      }

    2. בקטע authorize, מסירים את המקף '-' שלפני LDAP כדי להפעיל אותו.

      #
      # מודול ה-ldap קורא סיסמאות ממסד הנתונים של LDAP.
      ldap
    3. משנים את הקטע authenticate על ידי עריכת הבלוק Auth-Type LDAP באופן הבא:

      # Auth-Type LDAP {
      ldap
      # }

    4. משנים את הקטע authenticate על ידי עריכת הבלוק Auth-Type PAP באופן הבא:

      Auth-Type PAP {
      # pap
      ldap
      }

GitLab

הוראות לחיבור GitLab לשירות LDAP מאובטח זמינות במאמר הגדרת Google Secure LDAP ל-GitLab.

Itopia/Ubuntu

הוראות לחיבור Itopia/Ubuntu לשירות LDAP מאובטח זמינות במאמר הגדרת Google Cloud Identity LDAP ב-Ubuntu 16.04 לכניסות של משתמשים.

Ivanti / LanDesk

מבצעים את הפעולות הבאות:

  1. בשרת האינטרנט של Ivanti, פותחים את OpenLDAPAuthenticationConfiguration.xml או את OpenLDAPSSLAuthenticationConfiguration.xml בעורך טקסט בשתי התיקיות הבאות:

    C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework ו-C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess (כאשר servicedesk הוא שם המופע)
  2. מעדכנים את הערך <Server> ל-ldap.google.com.
  3. מעדכנים את הערך של <Port> ליציאה 3268 לטקסט גלוי עם StartTLS מופעל, וליציאה 3269 ליציאת SSL/TLS (ברירות המחדל הן 389 ליציאת הטקסט הגלוי או 636 ליציאת SSL/TLS).
  4. מגדירים את הערך <TestDN> לשם הדומיין בפורמט DN. (לדוגמה, dc=example,dc=com עבור example.com).
  5. מוסיפים את השורה הבאה לקובץ ..ProgramData\LANDesk\ServiceDesk\ServiceDesk.Framework\tps.config וגם לקובץ ..ProgramData\LANDesk\ServiceDesk\WebAccess\tps.config:

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPLogon.OpenLDAPAuthenticationProvider" />

    או את השורה הבאה:

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPSSLLogon.OpenLDAPSSLAuthenticationProvider" />
  6. ב-Ivanti Configuration Center, פותחים את המופע הנדרש.
  7. לצד האפליקציה Service Desk Framework, לוחצים על עריכה.
    מופיעה תיבת הדו-שיח עריכת אפליקציה של Service Desk Framework.
  8. בקטע Configuration parameters, בוחרים באפשרות Explicit only ברשימה Logon policy ולוחצים על OK.
  9. לצד האפליקציה Web Access, לוחצים על עריכה.
    מופיעה תיבת הדו-שיח עריכת אפליקציה של Web Access.
  10. בקטע פרמטרים של הגדרות, בוחרים באפשרות Explicit only (מפורש בלבד) ברשימה מדיניות כניסה ולוחצים על אישור.

כשמתחברים, משתמשים בסיסמה של המשתמש ברשת שמשויכת לדומיין.

רישום חריגים ביומן לאימות שרת LDAP

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

כדי להפעיל רישום ביומן של חריגות באימות של שרת LDAP:

  1. פותחים את קובץ ה-XML המתאים של הגדרות האימות בעורך טקסט:

    DirectoryServiceAuthenticationConfiguration.xml,‏ OpenLDAPAuthenticationConfiguration.xml או OpenLDAPSSLAuthenticationConfiguration.xml
  2. משנים את השורה:

    <ShowExceptions>false</ShowExceptions>
    ל-
    <ShowExceptions>true</ShowExceptions>
  3. שומרים את השינויים.

‫Ldp.exe‏ (Windows)

מבצעים את הפעולות הבאות:

  1. ממירים את קובצי האישור והמפתח לקובץ אחד בפורמט PKCS12. בשורת הפקודה, מזינים את הפקודה הבאה:

    אם אתם משתמשים ב-macOS או ב-Linux, מזינים את הפקודות הבאות:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    מזינים סיסמה להצפנת קובץ הפלט.

    אם אתם משתמשים ב-Windows, משתמשים בפקודות הבאות:

    $ certutil -mergepfx ldap-client.crt ldap-client.p12

    חשוב: שני הקבצים (<CERT_FILE>.crt ו-<CERT_FILE>.key) צריכים להיות באותה ספרייה. בנוסף, מוודאים שלשני הקבצים, key ו-crt, יש שם זהה (עם סיומת שונה). בדוגמה הזו, אנחנו משתמשים בשמות ldap-client.crt ו-ldap-client.key.

  2. עוברים אל לוח הבקרה.
  3. בתיבת החיפוש, מחפשים את האפשרות 'אישור' ולוחצים על ניהול אישורים של משתמשים.
  4. עוברים אל פעולה > כל המשימות > ייבוא…
  5. בוחרים באפשרות משתמש נוכחי ולוחצים על הבא.
  6. לוחצים על עיון….
  7. בתפריט הנפתח סוג הקובץ בפינה השמאלית התחתונה של תיבת הדו-שיח, בוחרים באפשרות Personal Information Exchange (*.pfx;*.p12)‎.
  8. בוחרים את הקובץ ldap-client.p12 מהשלב 2, לוחצים על פתיחה ואז על הבא.
  9. מזינים את הסיסמה משלב 2 ולוחצים על הבא.
  10. בוחרים את מאגר האישורים Personal, לוחצים על Next ואז על Finish.
  11. מריצים את Ldp.exe.
  12. עוברים אל חיבור > חיבור...
  13. מזינים את פרטי החיבור הבאים:

    שרת: ldap.google.com
    יציאה: 636
    ללא חיבור: לא מסומן
    SSL: מסומן
  14. לוחצים על אישור.
  15. עוברים אל תצוגה > עץ.
  16. מזינים את שם הדומיין הבסיסי. זה שם הדומיין שלכם בפורמט DN. (לדוגמה, dc=example,dc=com עבור example.com).
  17. לוחצים על אישור.
  18. אם החיבור מצליח, התוכן של Active Directory מוצג בחלונית השמאלית של LDP.exe, כמו כל המאפיינים שקיימים בשם הדומיין הבסיסי.

Netgate / pfSense

הוראות לחיבור Netgate/pfSense לשירות LDAP מאובטח מופיעות במאמר הגדרת Google Cloud Identity כמקור אימות.

‫OpenLDAP / ldapsearch (Linux)

כדי לגשת לספריית ה-LDAP משורת הפקודה, אפשר להשתמש בפקודה ldapsearch של OpenLDAP.

בהנחה שקובצי המפתח והאישור של הלקוח הם ldap-client.crt ו-ldap-client.key, הדומיין הוא example.com ושם המשתמש הוא jsmith:

$ LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -H ldaps://ldap.google.com -b dc=example,dc=com '(uid=jsmith)'

הפעולה הזו מגדירה את משתני הסביבה הרלוונטיים כך שיצביעו על מפתחות הלקוח. אפשר להחליף את האפשרויות האחרות של ldapsearch במסננים הרצויים, במאפיינים המבוקשים וכן הלאה. פרטים נוספים מופיעים בדפי ההוראות של ldapsearch (‏man ldapsearch).

ldapsearch‏ (macOS)

מבצעים את הפעולות הבאות:

  1. ממירים את קובצי האישור והמפתח לקובץ אחד בפורמט PKCS12. בשורת הפקודה, מזינים את הפקודה הבאה:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    מזינים את הסיסמה כדי להצפין את קובץ הפלט.
  2. לוחצים על בפינה השמאלית העליונה של סרגל התפריטים, ומקלידים Keychain Access.
  3. פותחים את האפליקציה Keychain Access וברשימה שמימין לוחצים על System (מערכת).
  4. לוחצים על האפשרות קובץ בסרגל התפריטים בפינה הימנית העליונה ובוחרים באפשרות ייבוא פריטים.
  5. עוברים למיקום שבו נוצר ldap-client.p12, בוחרים באפשרות ldap-client.p12 ולוחצים על Open (פתיחה).
    אם מוצגת בקשה, מזינים את הסיסמה.
    אישור בשם LDAP Client (לקוח LDAP) אמור להופיע עכשיו ברשימת האישורים של System Keychain.
  6. לוחצים על החץ לצד האישור של לקוח LDAP. מתחתיו מופיע מפתח פרטי.
    1. לוחצים לחיצה כפולה על המפתח הפרטי.
    2. בתיבת הדו-שיח, בוחרים בכרטיסייה Access Control ולוחצים על + בפינה הימנית התחתונה.
    3. בחלון שנפתח, מקלידים Command+Shift+G כדי לפתוח חלון חדש, ואז מחליפים את הטקסט הקיים בטקסט /usr/bin/ldapsearch.

    4. Click Go.

      ייפתח חלון עם ldapsearch מודגש.

    5. לוחצים על הוספה.

    6. לוחצים על שמירת שינויים ומזינים את הסיסמה אם מתבקשים.

      עכשיו אפשר לגשת לספריית ה-LDAP משורת הפקודה באמצעות הפקודה ldapsearch של OpenLDAP.

  7. בהנחה שהקובץ ldap-client.p12 שיובא קודם למחזיק המפתחות נקרא LDAP Client, הדומיין הוא example.com ושם המשתמש הוא jsmith, מזינים את הפרטים הבאים:

    $ LDAPTLS_IDENTITY="LDAP Client" ldapsearch -H ldaps://ldap.google.com:636 -b dc=example,dc=com '(uid=jsmith)'

הפעולה הזו מגדירה את משתני הסביבה הרלוונטיים כך שיצביעו על אישור הלקוח שיובא. אפשר להחליף את האפשרויות האחרות של ldapsearch במסננים הרצויים, במאפיינים המבוקשים וכן הלאה. פרטים נוספים זמינים בדפי ההסבר של ldapsearch ‏ (man ldapsearch).

OpenVPN (גרסת קהילה)

מבצעים את הפעולות הבאות:

  1. אם צריך, מתקינים ומגדירים את OpenVPN, או אם כבר עשיתם את זה, פותחים את דף ההגדרות ב-OpenVPN.

    הגדרה כללית של VPN היא מעבר להיקף של מאמר העזרה הזה. אחרי שמגדירים VPN, אפשר להוסיף אימות והרשאת משתמשים באמצעות LDAP. במיוחד, תצטרכו להתקין את הפלאגין openvpn-auth-ldap.

    $ sudo apt-get install openvpn openvpn-auth-ldap
  2. מעתיקים את קובצי המפתח והאישור של לקוח ה-LDAP אל /etc/openvpn/ldap-client.key ו-/etc/openvpn/ldap-client.crt.
  3. יוצרים קובץ, /etc/openvpn/auth-ldap.conf, שמכיל את הטקסט הבא (בהנחה ש-example.com הוא שם הדומיין):

    <LDAP>
    URL ldaps://ldap.google.com:636 #
    Timeout 15
    TLSEnable false
    TLSCACertDir /etc/ssl/certs
    TLSCertFile /etc/openvpn/ldap-client.crt
    TLSKeyFile /etc/openvpn/ldap-client.key
    </LDAP>
    <Authorization>
    BaseDN "dc=example,dc=com"
    SearchFilter "(uid=%u)" # (or choose your own LDAP filter for users)
    RequireGroup false
    </Authorization>

  4. עורכים את קובץ התצורה של OpenVPN, שלרוב נקרא /etc/openvpn/server.conf או שם דומה. בתחתית הקובץ, מוסיפים את הטקסט הבא:

    plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
    verify-client-cert optional

  5. מפעילים מחדש את שרת OpenVPN.

    $ sudo systemctl restart openvpn@server
  6. מגדירים את לקוחות ה-VPN כך שישתמשו בשמות המשתמשים ובסיסמאות של המשתמשים. לדוגמה, בהגדרת לקוח OpenVPN, מוסיפים את auth-user-pass לסוף קובץ ההגדרות של לקוח OpenVPN ומפעילים את לקוח OpenVPN:

    $ openvpn --config /path/to/client.conf
  7. פועלים לפי ההוראות לשימוש ב-stunnel כשרת proxy.

OpenVPN Access Server (גרסה מסחרית)

הוראות לחיבור OpenVPN Access Server לשירות LDAP מאובטח זמינות במאמר הגדרת LDAP מאובטח של Google באמצעות OpenVPN Access Server.

‫PaperCut MF ו-NG

הוראות לחיבור PaperCut לשירות LDAP מאובטח מפורטות במאמר איך מסנכרנים ומאמתים משתמשים ב-Google Workspace וב-Google Cloud Identity ב-PaperCut.

Puppet Enteprise

הוראות לחיבור Puppet Enterprise לשירות LDAP מאובטח מופיעות במאמר Google Cloud Directory for PE.

Softerra LDAP Browser

חשוב: לפני שמתחילים, צריך לוודא שהתקנתם את Softerra LDAP Browser בגרסה 4.5 (4.5.19808.0) ואילך. מידע על LDAP Browser 4.5

מבצעים את הפעולות הבאות:

  1. ממירים את קובצי האישור והמפתח לקובץ אחד בפורמט PKCS12. בשורת הפקודה, מזינים את הפקודה הבאה:

    אם אתם משתמשים ב-macOS או ב-Linux, מזינים את הפקודות הבאות:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    מזינים סיסמה להצפנת קובץ הפלט.

    אם אתם משתמשים ב-Windows, משתמשים בפקודות הבאות:

    $ certutil -mergepfx ldap-client.crt ldap-client.p12

    חשוב: שני הקבצים (<CERT_FILE>.crt ו-<CERT_FILE>.key) צריכים להיות באותה ספרייה. בנוסף, מוודאים שלשני הקבצים, key ו-crt, יש שם זהה (עם סיומת שונה). בדוגמה הזו, אנחנו משתמשים בשמות ldap-client.crt ו-ldap-client.key.

  2. ב-Softerra LDAP Browser, מתקינים את צמד המפתחות.
    1. עוברים אל כלים > Certificate Manager.
    2. לוחצים על ייבוא….
    3. לוחצים על הבא.
    4. לוחצים על עיון….
    5. ברשימה הנפתחת סוג הקובץ בפינה השמאלית התחתונה של תיבת הדו-שיח, בוחרים באפשרות Personal Information Exchange (*.pfx;*.p12)‎.
    6. בוחרים את הקובץ ldap-client.p12 משלב 2 שלמעלה.
    7. לוחצים על פתיחה ואז על הבא.
    8. מזינים את הסיסמה משלב 2 שלמעלה ולוחצים על הבא.
    9. בוחרים את מאגר האישורים Personal (אישי).
    10. לוחצים על הבא.
    11. לוחצים על סיום.
  3. מוסיפים פרופיל שרת.
    1. עוברים אל קובץ > חדש > פרופיל חדש…
    2. מזינים שם לפרופיל, כמו Google LDAP.
    3. לוחצים על הבא.

      מזינים את הפרטים הבאים:

      מארח: ldap.google.com
      יציאה:
      636
      DN בסיסי: שם הדומיין שלכם בפורמט DN. (לדוגמה, dc=example,dc=com עבור example.com)
      שימוש בחיבור מאובטח (SSL): מסומן
    4. לוחצים על הבא.
    5. בוחרים באפשרות External (SSL Certificate) (חיצוני (אישור SSL)).
    6. לוחצים על הבא.
    7. לוחצים על סיום.

Sophos Mobile

הוראות לחיבור Sophos Mobile לשירות LDAP מאובטח מופיעות במאמר חיבור Sophos Mobile ל-Cloud Identity / Google Cloud Directory באמצעות LDAP מאובטח.

Splunk

כשמחברים את Splunk לשירות LDAP מאובטח, חשוב להשתמש בגרסה 8.1.4 של Splunk ומעלה. כשמשתמשים בגרסאות ישנות יותר של Splunk, כמו גרסה 8.1.3, יכול להיות שיישלחו לשרת LDAP יותר מדי שאילתות LDAP, מה שעלול לגרום לניצול מהיר של מכסת ה-LDAP. מידע נוסף על בעיות בגרסה 8.1.3 של Splunk זמין במאמר בעיות מוכרות ב-Splunk.

מבצעים את הפעולות הבאות:

  1. מעתיקים את קובצי המפתח והאישור של לקוח ה-LDAP אל ‎/home/splunk/splunkadmin/etc/openldap/certs/ldap-client.key ו-‎/home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt.

    $ cat /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.key > /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

    $ sudo chown $(splunkuser):$(splunkuser) /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

    $ sudo chmod 644 /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

  2. עורכים את הקובץ ldap.conf כדי להוסיף את ההגדרות הבאות:

    ssl start_tls
    TLS_REQCERT never
    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem

  3. מוסיפים את ההגדרות הבאות לקובץ /home/splunkadmin/.ldaprc של המשתמש:

    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

  4. מוסיפים את אסטרטגיית ה-LDAP באמצעות ממשק המשתמש באינטרנט של Splunk. מזינים את הפרטים הבאים ולוחצים על שמירה:

שם

‫Google Secure LDAP

מארח

ldap.google.com

יציאה

636

ה-SSL מופעל

מסומן

סדר החיבורים

1

Bind DN

מזינים את פרטי הגישה שיצרתם במסוף Google Admin.

סיסמת DN של איגוד

מזינים את פרטי הגישה שיצרתם במסוף Google Admin.

Base DN

שם הדומיין בפורמט DN (לדוגמה, dc=example,dc=com לדומיין example.com)

מסנן בסיס המשתמשים

מזינים את המסנן User base (בסיס משתמשים) עבור מחלקת האובייקט שרוצים לסנן את המשתמשים לפי.

מאפיין שם המשתמש

uid

מאפיין השם האמיתי

displayname

מאפיין האימייל

אימייל

מאפיין מיפוי קבוצה

dn

שם דומיין בסיסי של קבוצה

שם הדומיין בפורמט DN (לדוגמה, ou=Groups,dc=example,dc=com עבור הדומיין example.com)

מסנן חיפוש סטטי של קבוצות

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

מאפיין שם הקבוצה

cn

מאפיין סטטי של חבר

חבר

‫SSSD‏ (Red Hat Enterprise ו-CentOS)

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

כדי לחבר לקוח SSSD ב-Red Hat 8 או ב-CentOS 8 לשירות LDAP מאובטח:

  1. מוסיפים את לקוח SSSD לשירות LDAP מאובטח:
    1. במסוף Google Admin, עוברים אל אפליקציות > LDAP > הוספת לקוח.
      חשוב להיכנס באמצעות החשבון הארגוני ולא באמצעות חשבון Gmail אישי.
    2. מזינים את פרטי הלקוח ולוחצים על המשך.
    3. מגדירים את הרשאות הגישה:
      אימות פרטי הכניסה של משתמשים – כל הדומיין
      קריאת פרטי המשתמש – כל הדומיין
      קריאת פרטי הקבוצה – מופעל
    4. לוחצים על הוספת לקוח LDAP.
    5. מורידים את האישור שנוצר.
    6. לוחצים על המשך לפרטי הלקוח.
    7. משנים את סטטוס השירות למופעל.
  2. מתקינים את שאר הספריות הדרושות לצורך יצירת ספריות הלקוח:

    dnf install openldap-clients sssd-ldap
    install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap


    פותחים את קובץ ה-ZIP של האישור ומעתיקים את קובצי ה-‎.crt ו-‎.key אל /etc/sssd/ldap
  3. (אופציונלי) בדיקה באמצעות ldapsearch:

    LDAPTLS_REQCERT=never \
    LDAPTLS_KEY=Google.key \
    LDAPTLS_CERT=Google.crt \
    ldapsearch -H ldaps://ldap.google.com:636/ \
    -b dc=example,dc=com \
    -D usertoverify@example.com \
    -W \
    '(mail=usertoverify@example.com)' \
    mail dn


    מזינים את הסיסמה של המשתמש ב-Google כשמתבקשים.

    הערה: למשתמש צריך להיות רישיון Google Workspace Enterprise או Cloud Identity Premium.

  4. יוצרים את הקובץ /etc/sssd/sssd.conf עם התוכן הבא:

    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /etc/sssd/ldap/Google.crt
    ldap_tls_key = /etc/sssd/ldap/Google.key
    ldap_tls_reqcert = never
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID

  5. מעדכנים את ההרשאות ואת התוויות של SELinux:

    chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    restorecon -FRv /etc/sssd

  6. מפעילים מחדש את SSSD:

    systemctl restart sssd
  7. בדיקה:

    מתחברים לשרת באמצעות SSH:

    ssh -l user@example.com {HOSTNAME}

פתרון בעיות

  1. בודקים את גרסת SSSD (הגרסה צריכה להיות 1.15.2 ומעלה):

    # sssd --version
    2.2.3

  2. ב-RHEL/CentOS (או בכל הפצה עם אכיפת SELinux), קובצי התצורה של SSSD, קובץ האישור והמפתח צריכים להיות בספרייה שאפשר לגשת אליה באמצעות התפקיד sssd_conf_t:

    # egrep "object_r:sssd_conf_t" /etc/selinux/targeted/contexts/files/file_contexts

    בודקים את הקובץ ‎ /var/log/audit/audit.log כדי לראות אם יש הודעות AVC deny.

  3. בודקים שבקובץ ‎ /etc/nsswitch.conf מופיע sss עבור הישויות passwd,‏ shadow,‏ group ו-netgroup:

    passwd: files sss
    shadow: files sss
    group: files sss
    netgroup: files sss


    במקרה הזה, קבצים מקומיים יבטלו את המשתמשים ב-LDAP.
  4. בודקים את הקובץ ‎ /var/log/sssd.conf כדי לראות אם יש שגיאות בהגדרות:

    דוגמה:
    [sssd] [sss_ini_add_snippets] (0x0020): Config merge error: File /etc/sssd/sssd.conf did not pass access check. מתבצע דילוג.

    פעולה: צריך להשתמש בפקודה chmod 600 בקובץ ‎ .conf.

    דוגמה:
    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_groups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. בודקים אם יש שגיאות הקלדה.

    ‫[sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: אי אפשר להשתמש במאפיין 'ldap_initgroups_use_matching_rule_in_chain' בקטע 'domain/{DOMAIN}'. צריך לבדוק אם יש שגיאות הקלדה.

    פעולה: מסירים את התוספים של LDAP להתאמת קבוצות שלא נתמכים מ-sssd.conf.

  5. בודקים את הקובץ ‎/var/log/sssd_{DOMAIN}.log‎ כדי לראות אם יש שגיאות ב-LDAP, ברשת או באימות.

    לדוגמה:

    ‪[sssd[be[example.com]]] [sss_ldap_init_sys_connect_done] (0x0020): ldap_install_tls failed: [Connect error] [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (self signed certificate)]

    פעולה: צריך להוסיף את השורה ldap_tls_reqcert = never לקובץ sssd.conf.

    כדי להגדיל את רמת הפירוט של השגיאות, מוסיפים את השורה debug_level = 9 בקובץ sssd.conf בקטע domain ומפעילים מחדש את sssd.

‫SSSD (מהדורות אחרות של Linux)

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

כדי לחבר לקוח SSSD לשירות LDAP מאובטח:

  1. מתקינים את גרסת SSSD ‏ >= 1.15.2.

    $ sudo apt-get install sssd
  2. בהנחה ששמות הקבצים של האישור והמפתח של הלקוח הם /var/ldap-client.crt ו-/var/ldap-client.key, ושם הדומיין הוא example.com, עורכים את /etc/sssd/sssd.conf עם הגדרה כמו:


    [sssd]
    services = nss, pam
    domains = example.com

    ‪[domain/example.com]
    ldap_tls_cert = /var/ldap-client.crt
    ldap_tls_key = /var/ldap-client.key
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID
    ldap_groups_use_matching_rule_in_chain = true
    ldap_initgroups_use_matching_rule_in_chain = true

  3. משנים את הבעלות וההרשאה של קובץ התצורה:

    $ sudo chown root:root /etc/sssd/sssd.conf
    $ sudo chmod 600 /etc/sssd/sssd.conf

  4. מפעילים מחדש את SSSD:

    $ sudo service sssd restart

טיפ: אם אתם משתמשים במודול SSSD במחשבי Linux ללא כתובות IP חיצוניות ב-Google Compute Engine, עדיין תוכלו להתחבר לשירות LDAP מאובטח אם הגישה הפנימית לשירותי Google מופעלת. פרטים נוספים זמינים במאמר בנושא הגדרת גישה פרטית ל-Google.

macOS

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

דרישות המערכת

  • גרסת macOS צריכה להיות Catalina 10.15.4 ואילך.
  • כדי להשלים את שלב 1 בשלב ההכנה, צריך להזין את מזהה המשתמש של סופר-אדמין ב-Google.
  • כדי לבצע את ההגדרה הזו, צריך הרשאות אדמין מקומיות.

תוכן:

שלב ההכנה

ההוראות בקטע הזה מתמקדות בהגדרה ובבדיקה ידניות של אימות ב-macOS באמצעות שירות LDAP מאובטח.

שלב 1: צירוף macOS כלקוח LDAP במסוף Google Admin

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

שלב 2: מייבאים את האישור ל-keychain של המערכת

  1. מעתיקים את האישור (קובץ ה-ZIP שהורדתם בשלב 1) ואת המפתח למחשב macOS.
    טיפ: כדי למצוא את קובצי האישור והמפתח, צריך לחלץ את קובץ ה-ZIP.
  2. מייבאים את צמד המפתחות למחזיק המפתחות של המערכת:
    1. ממירים את המפתח והאישור לקובץ PKCS 12 ‏ (p12). מריצים את הפקודה הבאה בטרמינל:

      openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key

      טיפ: כדאי לרשום את השם של קובץ ה-‎ .p12.

      המערכת תבקש להזין סיסמה. מזינים סיסמה להצפנת קובץ ה-p12.

    2. פותחים את האפליקציה Keychain Access.

    3. לוחצים על מחזיק המפתחות System.

    4. לוחצים על File > Import Items (קובץ > ייבוא פריטים).

    5. בוחרים את הקובץ ldap-client.p12 שנוצר למעלה.

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

    7. מזינים את הסיסמה שיצרתם למעלה כדי לפענח את קובץ ה-‎ .p12.

      הערה: צפוי שיופיעו ברשימת המפתחות אישור חדש ומפתח פרטי משויך. יכול להיות שהשם שלו הוא LDAP Client. רושמים את שם האישור לשלב הבא שבהמשך.
    8. פועלים לפי שלב 6 בקטע ldapsearch‏ (macOS) במאמר הזה כדי להגדיר בקרת גישה למפתח הפרטי, כדי להוסיף את האפליקציות שמפורטות בהמשך. אם המפתח הפרטי לא מופיע בקטגוריה All Items (כל הפריטים), נסו לעבור לקטגוריה My Certificates (האישורים שלי) ולאתר את רשומת המפתח הפרטי הנכונה על ידי הרחבת האישור המתאים.

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

      צריך להוסיף את שלוש האפליקציות הבאות לרשימת בקרת הגישה:

      /System/Library/CoreServices/Applications/Directory Utility
      /usr/libexec/opendirectoryd
      /usr/bin/dscl
  3. מוסיפים שורה לקובץ ‎/etc/openldap/ldap.conf, ומוודאים שהשם 'LDAP Client' זהה בדיוק לשם האישור שמוצג באפליקציה 'גישה למחזיק המפתחות' ב-macOS אחרי ייבוא קובץ ה-‎ .p12 (השם מגיע מהשם הנפוץ של הנושא X.509 באישור שנוצר):

    sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'

שלב 3: הפניית המכשיר לספריית Google לצורך אימות

פותחים את האפליקציה Directory Utility כדי ליצור צומת חדש של ספריית LDAP:

  1. כדי לבצע שינויים, לוחצים על סמל המנעול ומזינים את הסיסמה.
  2. בוחרים באפשרות LDAPv3 ולוחצים על סמל העיפרון כדי לערוך את ההגדרות.
  3. לוחצים על חדש….
  4. בשדה של שם השרת, מזינים ldap.google.com, בוחרים באפשרות Encrypt using SSL (הצפנה באמצעות SSL) ולוחצים על Manual (ידני).
  5. בוחרים את שם השרת החדש ולוחצים על עריכה…
  6. מזינים שם תיאורי כמו Google LDAP מאובטח בתור שם ההגדרה.
  7. בוחרים באפשרות הצפנה באמצעות SSL ומוודאים שהיציאה מוגדרת לערך 636.
  8. עוברים לכרטיסייה חיפוש ומיפויים.
    1. ברשימה הנפתחת Access this LDAPv3 server using [גישה לשרת LDAPv3 הזה באמצעות], בוחרים באפשרות RFC2307.
    2. כשמתבקשים, מזינים את הפרטים שקשורים לדומיין בשדה Search Base Suffix (חיפוש סיומת בסיס). לדוגמה, אם שם הדומיין הוא zomato.com, מזינים dc=zomato,dc=com.
    3. לוחצים על אישור.
    4. מגדירים מאפיינים בסוג הרשומה משתמשים:
      1. בקטע Record Types and Attributes (סוגי רשומות ומאפיינים), בוחרים באפשרות Users (משתמשים) ולוחצים על הלחצן +.
      2. בחלון הקופץ, בוחרים באפשרות סוגי מאפיינים,בוחרים באפשרות GeneratedUID ולוחצים על אישור כדי לסגור את החלון הקופץ.

        אחרי שמרחיבים את האפשרות 'משתמשים', אמור להופיע GeneratedUID.
      3. לוחצים על GeneratedUID ואז על הסמל + בתיבה בצד שמאל.
      4. מזינים apple-generateduid בתיבת הטקסט ולוחצים על Enter.
      5. בצומת משתמשים, לוחצים על המאפיין NFSHomeDirectory.
      6. במסך שמשמאל, מעדכנים את הערך של המאפיין הזה ל-#/Users/$uid$
      7. לוחצים על OK (אישור) ומזינים את הסיסמה כדי לשמור את השינויים.
  9. בחלון Directory Utility, מגדירים את תצורת ה-LDAP החדשה:
    1. עוברים לכרטיסייה מדיניות החיפוש.
    2. כדי לבצע שינויים, לוחצים על סמל הנעילה ומזינים את הסיסמה של המשתמש הנוכחי כשמוצגת בקשה לכך.
    3. משנים את האפשרות בתפריט הנפתח מנתיב חיפוש לנתיב מותאם אישית.
    4. פותחים את הכרטיסייה אימות ולוחצים על הסמל +.
    5. בוחרים באפשרות /LDAPv3/ldap.google.com מהרשימה 'דומיינים בספרייה' ולוחצים על הוספה.
    6. לוחצים על הכפתור אישור ומזינים את סיסמת האדמין אם מוצגת בקשה.
  10. מריצים את ארבע הפקודות הבאות כדי להשבית את מנגנוני האימות DIGEST-MD5,‏ CRAM-MD5,‏ NTLM ו-GSSAPI SASL. ‫macOS ישתמש ב-Simple Bind כדי לבצע אימות באמצעות שירות LDAP מאובטח של Google:

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string DIGEST-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string CRAM-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

  11. מפעילים מחדש את המחשב כדי לטעון מחדש את ההגדרה של OpenDirectory.

שלב 4: יצירת חשבון המכשיר הנייד (מאפשרת כניסה במצב אופליין)

כל משתמש ב-Google Workspace או ב-Cloud Identity יכול להתחבר באמצעות חשבון רשת (חשבון Google) עם שם המשתמש והסיסמה שלו. תהליך הכניסה הזה דורש חיבור לרשת. אם משתמש צריך להתחבר עם או בלי חיבור לרשת, אפשר ליצור חשבון נייד. חשבון נייד מאפשר להשתמש בשם המשתמש והסיסמה של חשבון הרשת (חשבון Google) כדי להתחבר, בין אם יש חיבור לרשת ובין אם לא. לפרטים נוספים, אפשר לעיין במאמר בנושא יצירה והגדרה של חשבונות ניידים ב-Mac.

כדי ליצור חשבון נייד למשתמשי LDAP מאובטח:

  1. מריצים את הפקודה הבאה כדי להתחבר לשרת LDAP מאובטח ולהגדיר נתיב ביתי וחשבונות המכשיר הנייד:

    sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v

    טיפ: מחליפים את $uid בחלק של שם המשתמש בכתובת האימייל שמשויכת לחשבון Google של המשתמש. לדוגמה, jsmith הוא שם המשתמש בכתובת jsmith@solarmora.com.

  2. כשמופיעה בקשה להזין את שם המשתמש של האדמין ב-SecureToken, מזינים את שם המשתמש של האדמין, ואז מזינים את הסיסמה בבקשה הבאה. הפעולה הזו תוסיף את $uid ל-FileVault. הפעולה הזו נדרשת אם הדיסק של macOS מוצפן.

שלב 5: (אופציונלי) הגדרת ההעדפה של מסך הכניסה

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

שלב 6: מפעילים מחדש את המכשיר ונכנסים לחשבון

  1. מוודאים שהמכשיר מחובר לאינטרנט. אם אין לכם חיבור לאינטרנט, לא תוכלו להתחבר כמשתמש LDAP מאובטח.
    הערה: חיבור לאינטרנט נדרש רק לכניסה הראשונה. אפשר להתחבר לחשבון גם בלי גישה לאינטרנט.
  2. נכנסים למכשיר באמצעות חשבון המשתמש שהוגדר לשימוש ב-LDAP מאובטח לצורך אימות.

שלב הפריסה

ההוראות בקטע הזה מתמקדות באוטומציה של הגדרת המכשיר עבור המשתמשים. מבצעים את שלבים 1 ו-2 בהמשך באותו מכשיר macOS שבו השלמתם את ההגדרה הידנית בשלב ההכנה.

שלב 1: יצירת פרופיל Mac עם אישור באמצעות Apple Configurator 2

  1. מתקינים את Apple Configurator 2 במחשב שבו הגדרתם אימות macOS באופן ידני באמצעות LDAP מאובטח.
  2. פותחים את Apple Configurator 2, יוצרים פרופיל חדש, בקטע Certificate (אישור), לוחצים על Configure (הגדרה) ומייבאים את קובץ ה-‎ .p12 שנוצר קודם.

    הערה: חשוב לוודא שלקובץ ה-‎ .p12 הזה יש סיסמה. מזינים את הסיסמה הזו בקטע Password (סיסמה) של האישור.

  3. שומרים את הפרופיל.
  4. (במכשירים עם מעבדי M1 או M2, מדלגים על השלב הזה וממשיכים לשלב 5. ) פותחים את הפרופיל הזה בכל עורך טקסט ומוסיפים את השורות הבאות בתג <dict> הראשון:

    <key>PayloadScope</key>
    <string>System</string>


    התוספת הזו נדרשת כי Apple Configurator עדיין לא תומך בפרופילים ל-macOS.
  5. בתג השני <dict>, במקביל לנתוני האישור, מוסיפים את השורות הבאות:

    <key>AllowAllAppsAccess</key>
    <true/>


    כך מוודאים שכל האפליקציות יוכלו לגשת לאישור הזה.

שלב 2: המרת קובץ ההגדרות של הספרייה (plist) ל-XML

בשלב הזה, אתם מחלצים לקובץ XML את כל ההגדרות הידניות שהשלמתם במהלך שלב 3 של שלב ההכנה. אפשר להשתמש בקובץ הזה ובפרופיל Mac שנוצר בשלב 1 שלמעלה כדי להגדיר באופן אוטומטי מכשירי macOS אחרים.

  1. מעתיקים את הקובץ ‎ /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist לשולחן העבודה או למיקום אחר.
  2. ממירים אותו ל-XML כדי שאפשר יהיה לבדוק אותו בכל עורך טקסט. מריצים את הפקודה הבאה בטרמינל:

    sudo plutil -convert xml1 <path>/ldap.google.com.plist

    אפשר לגשת לקובץ כ-<path>/ldap.google.com.plist.
  3. משנים את ההרשאה של הקובץ שצוין למעלה כדי שתוכלו לפתוח את קובץ ה-XML. חשוב לוודא שהקובץ לא ריק.

שלב 3: יצירת סקריפט Python לאוטומציה של ההגדרה במכשירי משתמשי הקצה

מעתיקים את סקריפט Python שמוצג למטה ושומרים אותו כקובץ Python (קובץ ‎.py).

הערה: סקריפט הדוגמה הזה מיועד להיות תואם לגרסה 3.10.x של Python. הסקריפט הזה מסופק כמו שהוא. צוות התמיכה של Google לא מספק תמיכה בסקריפטים לדוגמה.

Ldap_python_config.py

#!/usr/bin/python
from OpenDirectory import ODNode, ODSession, kODNodeTypeConfigure
from Foundation import NSMutableData, NSData

import os
import sys

# Reading plist
GOOGLELDAPCONFIGFILE = open(sys.argv[1], "r")
CONFIG = GOOGLELDAPCONFIGFILE.read()
GOOGLELDAPCONFIGFILE.close()

# Write the plist
od_session = ODSession.defaultSession()
od_conf_node, err = ODNode.nodeWithSession_type_error_(od_session, kODNodeTypeConfigure, None)
request = NSMutableData.dataWithBytes_length_(b' '*32, 32)
request.appendData_(NSData.dataWithBytes_length_(str.encode(CONFIG), len(CONFIG)))
response, err = od_conf_node.customCall_sendData_error_(99991, request, None)

# Edit the default search path and append the new node to allow for login
os.system("dscl -q localhost -append /Search CSPSearchPath /LDAPv3/ldap.google.com")
os.system("bash -c 'echo -e \"TLS_IDENTITY\tLDAP Client\" >> /etc/openldap/ldap.conf' ")

שלב 4: הגדרה אוטומטית של מכשירי משתמשי קצה

עוברים למכשירי macOS אחרים שרוצים להגדיר ופועלים לפי השלבים הבאים:

  1. מעתיקים למכשיר את קובץ הפרופיל של Mac שנוצר בשלב 1, את קובץ ההגדרות של XML שנוצר בשלב 2 ואת סקריפט ה-Python משלב 3.
  2. כדי להתקין את התלות הנדרשת לסקריפט, מריצים את הפקודה הבאה:
    python3 -m pip install pyobjc-framework-opendirectory
  3. מריצים את הפקודה הבאה:
    sudo python </path/to/saved_python_script> </path/to/ldap.google.com.plist generated in step 2>
  4. כדי לייבא אישורים לצרור המפתחות של מערכת macOS, לוחצים לחיצה כפולה על קובץ הפרופיל של Mac שנוצר בשלב 1, ומזינים את פרטי הכניסה של האדמין המקומי ב-macOS כשמוצגת בקשה לכך. לאחר מכן תתבקשו להזין את הסיסמה של קובץ ה-‎ .p12 שהגדרתם בשלב ההכנה.
  5. מפעילים מחדש את מחשב macOS.
  6. יוצרים חשבונות לנייד לפי ההוראות בשלב 4 של שלב ההכנה, ואם רוצים, מגדירים העדפות נוספות כמו שמתואר בשלב 5 של שלב ההכנה.

מגבלות והנחיות

  • משתמשים שנכנסים ל-macOS באמצעות פרטי הכניסה שלהם לחשבון Google Workspace צריכים לוודא ששם המשתמש שלהם בחשבון Google Workspace שונה ממזהה המשתמש בפרופיל המשתמש שלהם ב-macOS, אחרת הכניסה תיחסם.
  • אחרי שמשתמש מתחיל להיכנס ל-macOS באמצעות פרטי הכניסה שלו ל-Google, ניהול הסיסמה של המשתמש (איפוס או שחזור) צריך להתבצע באתר Google (לדוגמה, בכתובת myaccount.google.com או במסוף Google Admin). אם בוחרים לנהל את הסיסמה באמצעות פתרון של צד שלישי, צריך לוודא שהסיסמה העדכנית מסונכרנת עם Google.
  • אם האדמין יוצר משתמש חדש או מאפס סיסמה של משתמש קיים כשההגדרה בקשה לשינוי סיסמה בכניסה הבאה מופעלת, המשתמש לא יכול להיכנס ל-Mac באמצעות הסיסמה הזמנית שהוגדרה על ידי האדמין.
    פתרון עקיף: המשתמש צריך להיכנס ל-Google באמצעות מכשיר אחר (לדוגמה, מכשיר נייד או מכשיר שולחני אחר), להגדיר סיסמה קבועה ואז להיכנס ל-macOS באמצעות הסיסמה החדשה.
  • מחשב ה-Mac צריך להיות מחובר לחיבור אינטרנט פעיל כדי שאפשר יהיה להגיע אל ldap.google.com במהלך הכניסה הראשונה אחרי ההגדרה שלמעלה. בכניסות הבאות לא תהיה דרישה לגישה לאינטרנט, בתנאי שבחרתם להגדיר חשבון המכשיר הנייד.
  • האינטגרציה של Google Secure LDAP עם macOS נבדקת ב-macOS Catalina,‏ Big Sur ו-Monterey.

פתרון בעיות

אם נתקלתם בבעיות בהתחברות לשירות LDAP מאובטח, פועלים לפי ההוראות שבהמשך.

שלב 1: מאמתים את החיבור.

מאמתים את החיבור באמצעות odutil.
מריצים את הפקודה odutil show nodenames במסוף.
מוודאים שהסטטוס /LDAPv3/ldap.google.com הוא online. אם הוא לא אונליין, מנסים את האפשרות telnet.

מאמתים את החיבור באמצעות nc.
מריצים את הפקודה הבאה במסוף: nc -zv ldap.google.com 636
אם לא מצליחים להתחבר ל-Google באמצעות השיטה הזו, מנסים להתחבר באמצעות IPv4.

מוודאים שיש חיבור באמצעות IPv4.
כדי לשנות את המכשיר לשימוש ב-IPv4, מבצעים את השלבים הבאים:

  1. עוברים אל העדפות המערכת > רשת > Wi-Fi > מתקדם.
  2. בתפריט 'מתקדם', עוברים לכרטיסייה TCP/IP.
  3. משנים את הבחירה בתפריט הנפתח מConfigure IPv6 (הגדרת IPv6) לLink-local only (רק קישור מקומי).
  4. לוחצים על OK (אישור) ואז על Apply (החלה) כדי לשמור את השינויים.
  5. בודקים את אימות השירות באמצעות קישוריות ldapsearch וחיפוש תקין.

שלב 2: בודקים אם אתם יכולים לראות אובייקטים בספרייה.

  1. פותחים את Directory Utility ואז את הכרטיסייה Directory Editor.
  2. בתפריט הנפתח, בוחרים את הצומת /LDAPv3/ldap.google.com.
  3. בודקים אם אתם יכולים לראות משתמשים וקבוצות מהדומיין שלכם ב-Google.

הוראות להגדרת אפליקציות Java

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

  1. ממירים את האישור והמפתחות לפורמט של Java keystore. במהלך התהליך תתבקשו להזין סיסמאות. בוחרים סיסמה מאובטחת ומשתמשים באותה סיסמה בכל ההנחיות. אם קובץ מפתח הלקוח נקרא ldap-client.key:

    אם אתם משתמשים ב-macOS או ב-Linux, אפשר להשתמש בפקודות הבאות:

    $  openssl pkcs12 -export -out java-application-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key
    

    אם אתם משתמשים ב-Windows, משתמשים בפקודות הבאות:

    $  certutil -mergepfx ldap-client.crt java-application-ldap.pkcs12
    

    חשוב: שני הקבצים (<CERT_FILE>.crt ו-<CERT_FILE>.key) צריכים להיות באותה ספרייה. בנוסף, חשוב לוודא שלשני הקבצים, key ו-crt, יש שם זהה (עם שתי הסיומות השונות). בדוגמה הזו, השתמשנו בשמות ldap-client.crt ו-ldap-client.key.

  2. מייבאים את האישור למאגר המפתחות:

    $  keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS
    
  3. אפשר להגדיר מאפייני Java בדרכים שונות, בהתאם לאפליקציה. לעיתים קרובות אפשר להגדיר אותם באמצעות האפשרות ‎-D בשורת הפקודה java שמשמשת להפעלת האפליקציה. מגדירים את מאפייני Java לאפליקציה:

    javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks
    javax.net.ssl.keyStorePassword = <password selected above>
    
  4. מגדירים את הגדרות החיבור של האפליקציה ל-LDAP באמצעות המידע שמופיע בהוראות ההגדרה הבסיסיות.

אופציונלי: שימוש ב-stunnel כ-proxy

אם הלקוחות לא מאפשרים אימות ל-LDAP באמצעות אישור לקוח, צריך להשתמש ב-stunnel כשרת proxy.

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

מבצעים את הפעולות הבאות:

  1. מתקינים את stunnel. לדוגמה, ב-Ubuntu:

    $  sudo apt-get install stunnel4
    
  2. יוצרים קובץ הגדרה ‎/etc/stunnel/google-ldap.conf עם התוכן הבא (בהנחה ש-ldap-client.crt הוא האישור ו-ldap-client.key הוא המפתח):

    [ldap]
    client = yes
    accept = 127.0.0.1:1636
    connect = ldap.google.com:636
    cert = ldap-client.crt
    key =
    ldap-client.key

  3. כדי להפעיל את stunnel, עורכים את ‎/etc/default/stunnel4 ומגדירים את ENABLED=1.

  4. מפעילים מחדש את stunnel.

    $  sudo /etc/init.d/stunnel4 restart
    
  5. מגדירים את האפליקציה כך שתפנה אל ldap://127.0.0.1:1636.

    אפשר להחליף את '1636' בכל יציאה שלא נמצאת בשימוש, אם משנים גם את השורה accept בקובץ התצורה שלמעלה. תצטרכו להשתמש ב-LDAP בטקסט לא מוצפן ללא הפעלה של StartTLS/SSL/TLS בין הלקוח ל-stunnel, כי הם מתקשרים באופן מקומי.

הערה: אם בוחרים להריץ את stunnel בשרת נפרד, צריך להגדיר את חומות האש כך שרק האפליקציות הנדרשות יוכלו לגשת לשרת stunnel. אפשר גם להגדיר את stunnel להאזנה עם TLS כדי שהנתונים בין האפליקציה לבין שרתי stunnel יוצפנו. הפרטים של שתי ההגדרות האלה תלויים בסביבה שלכם.

השלבים הבאים

אחרי שמחברים את לקוח ה-LDAP לשירות LDAP מאובטח, צריך להעביר את סטטוס השירות לOn (מופעל) עבור לקוח ה-LDAP.

לשלבים הבאים, אפשר לעבור אל 5. מעבירים את המתג שליד 'לקוחות LDAP' למצב מופעל.

הערה: אם צריך, אפשר להשתמש בכלים פשוטים כמו ldapsearch,‏ ADSI או ldp.exe כדי לפתור בעיות אם נתקלים בשגיאות כשמנסים לחבר את לקוח ה-LDAP לשירות. הוראות מפורטות זמינות במאמר בנושא בדיקה ופתרון בעיות בקישוריות.