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

יציאות

‫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 הבסיסי.
    זהו שם הדומיין בפורמט DN (dc=example,dc=com עבור example.com).
  9. לוחצים על סיום.

Atlassian Jira

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

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

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

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

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

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

    $ 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

    Port

    636

    שימוש ב-SSL

    מסומן

    שם משתמש

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

    סיסמה

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

    Base DN

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

    Additional User DN

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

    Additional Group DN

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

    הרשאות LDAP

    לקריאה בלבד

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

    ללא שינוי

    User Schema Settings >
    User Name Attribute

    googleUid

    User Schema Settings >
    User Name RDN Attribute

    uid

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

    groupOfNames

    Group Schema Settings >
    Group Object Filter

    (objectClass=groupOfNames)

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

    חבר

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

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

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

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

CloudBees Core / Jenkins

הוראות לחיבור CloudBees Core לשירות Secure LDAP זמינות במאמר Configure CloudBees Core with Google's Cloud Identity Secure LDAP.

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 מאובטח זמינות במאמר הגדרת LDAP מאובטח של Google ל-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, לוחצים על עריכה.
    מופיעה תיבת הדו-שיח Edit Application של Service Desk Framework.
  8. בקטע פרמטרים של הגדרה, בוחרים באפשרות Explicit only ברשימה Logon policy ואז לוחצים על OK.
  9. לצד האפליקציה Web Access, לוחצים על עריכה.
    מופיעה תיבת הדו-שיח Edit Application של Web Access.
  10. בקטע Configuration parameters, בוחרים באפשרות Explicit only ברשימה Logon policy ולוחצים על OK.

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

רישום ביומן של חריגים באימות של שרת 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. בוחרים במאגר האישורים אישי, לוחצים על הבא ואז על סיום.
  11. מריצים את Ldp.exe.
  12. עוברים אל Connection > Connect...‎
  13. מזינים את פרטי החיבור הבאים:

    שרת: ldap.google.com
    יציאה: 636
    ללא חיבור: לא מסומן
    SSL: מסומן
  14. לוחצים על אישור.
  15. עוברים אל תצוגה > עץ.
  16. מזינים את ה-DN הבסיסי. זה שם הדומיין שלכם בפורמט DN. (לדוגמה, dc=example,dc=com עבור example.com).
  17. לוחצים על אישור.
  18. אם החיבור יצליח, התוכן של Active Directory, כמו כל המאפיינים שקיימים ב-DN הבסיסי, יוצג בחלונית השמאלית של 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 ולוחצים על פתיחה.
    אם מוצגת בקשה, מזינים את הסיסמה.
    אישור עם השם LDAP Client אמור להופיע עכשיו ברשימת האישורים של 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. עוברים אל כלים > מנהל האישורים.
    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
      Base DN: שם הדומיין בפורמט DN. (לדוגמה, dc=example,dc=com עבור example.com)
      שימוש בחיבור מאובטח (SSL): מסומן
    4. לוחצים על הבא.
    5. בוחרים באפשרות External (SSL Certificate) (חיצוני (אישור SSL)).
    6. לוחצים על הבא.
    7. לוחצים על סיום.

Sophos Mobile

הוראות לחיבור Sophos Mobile לשירות LDAP מאובטח מופיעות במאמר חיבור Sophos Mobile ל-Google 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

Port

636

ה-SSL מופעל

מסומן

סדר החיבורים

1

Bind DN

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

סיסמת Bind DN

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

Base DN

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

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

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

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

uid

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

displayname

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

אימייל

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

dn

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]: Attribute 'ldap_initgroups_use_matching_rule_in_chain' is not allowed in section '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, אתם עדיין יכולים להתחבר לשירות Secure 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.
    טיפ: כדי למצוא את קובצי האישור והמפתח, צריך לחלץ את הקובץ הדחוס.
  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. לוחצים על קובץ > ייבוא פריטים.

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

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

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

      הערה: צפוי שיופיע אישור חדש ומפתח פרטי משויך ברשימת המפתחות. יכול להיות שהשם שלו יהיה לקוח LDAP. רושמים את שם האישור כדי להשתמש בו בשלב הבא.
    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' זהה בדיוק לשם האישור שמוצג באפליקציית Keychain Access ב-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 Secure 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. מגדירים מאפיינים בסוג הרשומה Users:
      1. בקטע סוגי רשומות ומאפיינים, בוחרים באפשרות משתמשים ולוחצים על הלחצן +.
      2. בחלון הקופץ, בוחרים באפשרות סוגי מאפיינים, בוחרים באפשרות GeneratedUID ולוחצים על אישור כדי לסגור את החלון הקופץ.

        אחרי ההרחבה, GeneratedUID אמור להופיע בקטע Users.
      3. לוחצים על GeneratedUID ואז על הסמל + בתיבה בצד שמאל.
      4. מזינים apple-generateduid בתיבת הטקסט ולוחצים על Enter.
      5. בצומת Users, לוחצים על המאפיין 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.

כדי ליצור חשבון נייד למשתמשי Secure 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. נכנסים למכשיר באמצעות חשבון המשתמש שהוגדר לשימוש ב-Secure LDAP לאימות.

שלב הפריסה

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

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

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

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

  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).

הערה: סקריפט לדוגמה הזה מיועד להיות תואם ל-Python בגרסה 3.10.x. הסקריפט הזה מסופק כמו שהוא. צוות התמיכה של 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. לוחצים על אישור ואז על החלה כדי לשמור את השינויים.
  5. בודקים את אימות השירות באמצעות קישוריות ldapsearch וחיפוש תקין.

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

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

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

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

  1. ממירים את האישור והמפתחות לפורמט של מאגר מפתחות Java. במהלך התהליך תתבקשו להזין סיסמאות. בוחרים סיסמה מאובטחת ומשתמשים בה בכל ההנחיות. אם קובץ מפתח הלקוח נקרא 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 לשירות. הוראות מפורטות מופיעות במאמר בדיקה ופתרון בעיות של קישוריות.