4. เชื่อมต่อไคลเอ็นต์ LDAP กับบริการ LDAP ที่ปลอดภัย

ทำตามวิธีการในบทความนี้เพื่อเชื่อมต่อไคลเอ็นต์ LDAP กับบริการ LDAP ที่ปลอดภัย

สำคัญ

  • โปรดอ่านเอกสารประกอบของผู้ให้บริการ
    รายละเอียดในบทความนี้ที่มีไว้สำหรับการเชื่อมต่อไคลเอ็นต์ LDAP กับบริการ LDAP ที่ปลอดภัยนั้นเป็นเพียงข้อมูลอ้างอิงและอาจมีการเปลี่ยนแปลง นอกเหนือจากวิธีการช่วยเหลือเหล่านี้ โปรดอ่านเอกสารขั้นตอนการเชื่อมต่อไคลเอ็นต์กับบริการ LDAP ที่ปลอดภัยจากผู้ให้บริการของคุณเพื่อรับข้อมูลที่อัปเดตล่าสุด
  • ก่อนเริ่มเชื่อมต่อ
    ก่อนใช้วิธีการต่อไปนี้ ให้ตรวจสอบว่าคุณได้เพิ่มไคลเอ็นต์ในบริการ LDAP ที่ปลอดภัย กำหนดค่าสิทธิ์เข้าถึง ดาวน์โหลดใบรับรองไคลเอ็นต์และคีย์แล้ว และอาจสร้างข้อมูลรับรองการเข้าถึงที่ต้องการไว้ด้วยก็ได้
  • การทดสอบการเชื่อมต่อ
    ก่อนเริ่มทำตามขั้นตอนเหล่านี้ คุณอาจเลือกที่จะทดสอบการเชื่อมต่อแบบเร่งด่วนได้โดยใช้เครื่องมือง่ายๆ อย่าง ldapsearch, ADSI และ ldp.exe นอกจากนี้ คุณยังใช้เครื่องมือเหล่านี้แก้ปัญหาเมื่อพบข้อผิดพลาดขณะพยายามเชื่อมต่อไคลเอ็นต์ LDAP กับบริการได้อีกด้วย โปรดดูวิธีการที่หัวข้อการทดสอบการเชื่อมต่อ LDAP ที่ปลอดภัย
  • วิธีทำตามขั้นตอนการตั้งค่าให้เสร็จสิ้น
    หลังจากเชื่อมต่อไคลเอ็นต์ LDAP โดย ทำตามวิธีการในหน้านี้แล้ว คุณจะต้องตั้งค่า ไคลเอ็นต์ LDAP ให้เสร็จสิ้นโดยเปลี่ยนสถานะบริการในคอนโซลผู้ดูแลระบบของ Google เป็นเปิด ดูวิธีการที่ 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 โปรดดูวิธีสร้างข้อมูลเข้าสู่ระบบ

ไฟล์ใบรับรองไคลเอ็นต์และคีย์

ใช้ไฟล์ใบรับรองและคีย์ที่ดาวน์โหลดจากคอนโซลผู้ดูแลระบบของ Google หากไคลเอ็นต์ LDAP ไม่ได้ระบุวิธีตรวจสอบสิทธิ์ด้วยใบรับรองไคลเอ็นต์ โปรดดูที่หัวข้อใช้ stunnel เป็นพร็อกซี

ข้อสำคัญ: ไคลเอ็นต์ LDAP บางประเภท เช่น Apache Directory Studio จะไม่รองรับการอัปโหลดใบรับรองดิจิทัล โปรดดูวิธีการสำหรับกรณีนี้ที่หัวข้อใช้ stunnel เป็นพร็อกซี

วิธีการกำหนดค่าสำหรับไคล์เอ็นต์ LDAP เฉพาะประเภท

ADSI Edit (Windows)

โปรดทำตามขั้นตอนต่อไปนี้

  1. ทำตามขั้นตอนที่ 1–11 ใน ldp.exe (สำหรับ Windows) เพื่อติดตั้งใบรับรองไคลเอ็นต์
  2. ไปที่ Action > Connect to…
  3. ป้อนการตั้งค่าการเชื่อมต่อดังนี้

    ชื่อ: พิมพ์ชื่อสำหรับการเชื่อมต่อ เช่น Google LDAP
    Connection Point: "Select or type a Distinguished Name or Naming Context"
    ป้อนชื่อโดเมนในรูปแบบ DN (ตัวอย่างเช่น dc=example,dc=com สำหรับ example.com)

    Computer: "Select or type a domain or server"
    ldap.google.com

    Use SSL-based Encryption: Checked
  4. คลิกขั้นสูง... แล้วป้อนรายละเอียดต่อไปนี้

    ระบุข้อมูลเข้าสู่ระบบ: เลือก
    ชื่อผู้ใช้: ชื่อผู้ใช้ที่เป็นข้อมูลเข้าสู่ระบบจากคอนโซลผู้ดูแลระบบ
    รหัสผ่าน: รหัสผ่านที่เป็นข้อมูลเข้าสู่ระบบจากคอนโซลผู้ดูแลระบบ
    หมายเลขพอร์ต: 636
    โปรโตคอล: LDAP
    การตรวจสอบสิทธิ์แบบเชื่อมโยงอย่างง่าย: เลือก
  5. คลิก OK แล้วคลิก OK อีกครั้ง
  6. หากการเชื่อมต่อเสร็จสิ้น เนื้อหา Active Directory ใน DN ฐานจะปรากฏในแผงด้านขวา

Apache Directory Studio

หากต้องการใช้ Apache Directory Studio คุณจะต้องเชื่อมต่อผ่าน stunnel และใช้ข้อมูลเข้าสู่ระบบ (ชื่อผู้ใช้และรหัสผ่าน) ที่สร้างขึ้นในคอนโซลผู้ดูแลระบบของ Google สมมติว่าข้อมูลเข้าสู่ระบบใช้งานได้ และสมมติว่า Stunnel กำลังรอการเชื่อมต่อในพอร์ต localhost 1389 ให้ทำตามขั้นตอนต่อไปนี้

  1. คลิก File > New…
  2. เลือก LDAP Browser > LDAP Connection
  3. คลิกถัดไป
  4. ป้อนพารามิเตอร์การเชื่อมต่อ

    ชื่อการเชื่อมต่อ: เลือกชื่อ เช่น Google LDAP
    ชื่อโฮสต์: localhost
    พอร์ต: 1389 (หรือพอร์ตที่ stunnel ฟัง/ยอมรับ)
    วิธีการเข้ารหัส: ไม่มีการเข้ารหัส (หมายเหตุ: หาก stunnel ทำงานจากระยะไกล ขอแนะนำให้เข้ารหัสระหว่าง stunnel กับไคลเอ็นต์)
  5. คลิกถัดไป
  6. ป้อนพารามิเตอร์สำหรับการตรวจสอบสิทธิ์ดังนี้

    Authentication Method: การตรวจสอบสิทธิ์พื้นฐาน
    Bind DN or user: ชื่อผู้ใช้ที่เป็นข้อมูลเข้าสู่ระบบจากคอนโซลผู้ดูแลระบบ
    Bind password: รหัสผ่านที่เป็นข้อมูลเข้าสู่ระบบจากคอนโซลผู้ดูแลระบบ
  7. คลิกถัดไป
  8. ป้อน DN พื้นฐาน
    ซึ่งเป็นชื่อโดเมนในรูปแบบ DN (dc=example,dc=com สำหรับ example.com)
  9. คลิกเสร็จสิ้น

Atlassian Jira

Atlassian Jira จะค้นหาผู้ใช้เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ระหว่างการตรวจสอบสิทธิ์ คุณจะต้องเปิดใช้อ่านข้อมูลผู้ใช้และอ่านข้อมูลของกลุ่มสำหรับหน่วยขององค์กรทั้งหมดที่เปิดใช้ยืนยันข้อมูลเข้าสู่ระบบของผู้ใช้เพื่อให้การตรวจสอบสิทธิ์ผู้ใช้ทำงานอย่างถูกต้องกับไคลเอ็นต์ LDAP นี้ (โปรดดูวิธีการที่หัวข้อกำหนดสิทธิ์การเข้าถึง)

ข้อสำคัญ: การทำตามวิธีการต่อไปนี้อาจเปิดเผย keystorePassword ต่อผู้ใช้และไฟล์บันทึก โปรดใช้ความระมัดระวังเพื่อไม่ให้ผู้อื่นเข้าถึง Shell ในเครื่อง, ไฟล์บันทึก และคอนโซลผู้ดูแลระบบของ Google โดยไม่ได้รับอนุญาต นอกเหนือจากวิธีการต่อไปนี้ คุณยังสามารถใช้เมธอด stunnel4 ได้ด้วย (โปรดดูที่หัวข้อไม่บังคับ: ใช้ stunnel เป็นพร็อกซี)

หมายเหตุ: วิธีการต่อไปนี้จะสมมติว่าติดตั้ง Jira ไว้ที่ /opt/atlassian/jira

การเชื่อมต่อไคลเอ็นต์ Atlassian Jira กับบริการ LDAP ที่ปลอดภัย ให้ทำตามขั้นตอนต่อไปนี้

  1. คัดลอกใบรับรองและคีย์ไปยังเซิร์ฟเวอร์ Jira (ซึ่งก็คือใบรับรองที่สร้างขึ้นในคอนโซลผู้ดูแลระบบของ Google ขณะเพิ่มไคลเอ็นต์ 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=รหัสผ่าน" โดยแทนที่ "รหัสผ่าน" ด้วยรหัสผ่านที่เลือกไว้ด้านบน
  4. รีสตาร์ท Jira

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

  5. ลงชื่อเข้าใช้อินเทอร์เฟซเว็บ Jira ในฐานะผู้ดูแลระบบ
    1. ไปที่การตั้งค่า > การจัดการผู้ใช้ (สำหรับการตั้งค่า ให้ไปที่ไอคอนรูปเฟืองที่ด้านขวาบน)
    2. คลิก User Directories
    3. คลิก Add Directory
    4. เลือก LDAP ตามประเภท
    5. คลิกถัดไป
  6. ป้อนข้อมูลต่อไปนี้

    ชื่อ

    Google Secure LDAP

    ประเภทไดเรกทอรี

    OpenLDAP

    ชื่อโฮสต์

    ldap.google.com

    พอร์ต

    636

    ใช้ SSL

    เลือกแล้ว

    ชื่อผู้ใช้

    สร้างชื่อผู้ใช้และรหัสผ่านในคอนโซลผู้ดูแลระบบของ Google โปรดดูวิธีสร้างข้อมูลเข้าสู่ระบบ

    รหัสผ่าน

    สร้างชื่อผู้ใช้และรหัสผ่านในคอนโซลผู้ดูแลระบบของ Google โปรดดูวิธีสร้างข้อมูลเข้าสู่ระบบ

    Base DN

    ชื่อโดเมนในรูปแบบ DN (เช่น dc=example,dc=com สำหรับ example.com)

    Additional User DN

    ไม่บังคับ "ou=Users"

    Additional Group DN

    ไม่บังคับ "ou=Groups"

    LDAP Permissions

    อ่านอย่างเดียว

    การตั้งค่าขั้นสูง

    ไม่มีการเปลี่ยนแปลง

    User Schema Settings >
    User Name Attribute

    googleUid

    User Schema Settings >
    User Name RDN Attribute

    uid

    Group Schema Settings >
    Group Object Class

    groupOfNames

    Group Schema Settings >
    Group Object Filter

    (objectClass=groupOfNames)

    Membership Schema Settings >
    Group Members Attribute

    สมาชิก

    Membership Schema Settings >
    Use the User Membership Attribute

    เลือกแล้ว
  7. กำหนดบทบาทให้กับกลุ่ม

    ผู้ใช้ต้องเป็นสมาชิกของกลุ่มที่มีสิทธิ์เข้าถึง Atlassian Jira ก่อนจึงจะลงชื่อเข้าสู่ระบบนี้ได้

    หากต้องการให้สิทธิ์บทบาทแก่กลุ่ม ให้ทำตามขั้นตอนต่อไปนี้
    1. ไปที่ Settings > Applications > Application access
    2. ในกล่องข้อความ Select group ให้ป้อนชื่อกลุ่ม Google ที่คุณต้องการให้เข้าใช้งาน Jira ได้

CloudBees Core / Jenkins

สำหรับวิธีการเชื่อมต่อ CloudBees Core กับบริการ LDAP ที่ปลอดภัย โปรดดูที่หัวข้อกำหนดค่า CloudBees Core ด้วย LDAP ที่ปลอดภัยของ Google Cloud Identity

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 = ชื่อผู้ใช้ในข้อมูลเข้าสู่ระบบของแอปพลิเคชัน
    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. แก้ไขส่วนให้สิทธิ์เพื่อเพิ่มบล็อกต่อไปนี้ที่ด้านล่างหลังจากคำสั่งโปรโตคอลการตรวจสอบสิทธิ์รหัสผ่าน (PAP)

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

    2. ในส่วนให้สิทธิ์ ให้เปิดใช้ LDAP โดยลบเครื่องหมาย '-' ที่อยู่ข้างหน้าออก

      #
      # โมดูล ldap จะอ่านรหัสผ่านจากฐานข้อมูล LDAP
      ldap
    3. แก้ไขส่วนตรวจสอบสิทธิ์โดยแก้ไขบล็อก Auth-Type LDAP ดังนี้

      # Auth-Type LDAP {
      ldap
      # }

    4. แก้ไขส่วนตรวจสอบสิทธิ์โดยแก้ไขบล็อก 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. เปิดอินสแตนซ์ที่ต้องการใน Configuration Center ของ Ivanti
  7. คลิก Edit ถัดจากแอปพลิเคชัน Service Desk Framework
    ระบบจะแสดงกล่องโต้ตอบ Edit Application สำหรับ Service Desk Framework
  8. ในกลุ่ม Configuration parameters ให้เลือก Explicit only ในรายการ Logon policy แล้วจึงคลิก OK
  9. คลิก Edit ถัดจากแอปพลิเคชัน 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 ไฟล์เดียว ป้อนคำสั่งต่อไปนี้ที่ Command Prompt

    หากคุณใช้ 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. ในช่องค้นหา ให้ค้นหา "certificate" แล้วคลิก Manage user certificates
  4. ไปที่ Action > All Tasks > Import…
  5. เลือก Current User แล้วคลิก Next
  6. คลิก Browse…
  7. ในรายการแบบเลื่อนลง file type ที่มุมขวาล่างของกล่องโต้ตอบ ให้เลือก Personal Information Exchange (&ast;.pfx;&ast;.p12)
  8. เลือกไฟล์ ldap-client.p12 จากขั้นตอนที่ 2 แล้วคลิก Open จากนั้นคลิก Next
  9. ป้อนรหัสผ่านจากขั้นตอนที่ 2 และคลิก Next
  10. เลือกที่เก็บใบรับรอง Personal คลิกถัดไป แล้วคลิกเสร็จสิ้น
  11. เรียกใช้ Ldp.exe
  12. ไปที่ Connection > Connect...
  13. ป้อนรายละเอียดการเชื่อมต่อดังนี้

    Server: ldap.google.com
    Port: 636
    Connectionless: ยกเลิกการเลือก
    SSL: เลือก
  14. คลิกตกลง
  15. ไปที่ View > Tree
  16. ป้อน DN พื้นฐาน นี่คือชื่อโดเมนในรูปแบบ DN (เช่น dc=example,dc=com สำหรับ example.com)
  17. คลิกตกลง
  18. หากการเชื่อมต่อเสร็จสิ้น LDP.exe จะแสดงเนื้อหา Active Directory เช่น แอตทริบิวต์ทั้งหมดที่อยู่ใน DN พื้นฐานในบานหน้าต่างด้านขวา

Netgate / pfSense

โปรดดูวิธีการเชื่อมต่อ Netgate/pfSense กับบริการ LDAP ที่ปลอดภัยที่หัวข้อการกำหนดค่า Google Cloud Identity เป็นแหล่งข้อมูลการตรวจสอบสิทธิ์

OpenLDAP / ldapsearch (Linux)

หากต้องการเข้าถึงไดเร็กทอรี LDAP จากบรรทัดคำสั่ง คุณอาจใช้ OpenLDAP สำหรับคำสั่ง ldapsearch

สมมติว่าใบรับรองไคลเอ็นต์และไฟล์คีย์ของคุณคือ 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 ("man ldapsearch")

ldapsearch (macOS)

โปรดทำตามขั้นตอนต่อไปนี้

  1. แปลงไฟล์ใบรับรองและคีย์เป็นไฟล์รูปแบบ PKCS12 ไฟล์เดียว ป้อนคำสั่งต่อไปนี้ที่ Command Prompt

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

    ป้อนรหัสผ่านเพื่อเข้ารหัสไฟล์เอาต์พุต
  2. คลิก ที่มุมขวาบนของแถบเมนู แล้วพิมพ์ Keychain Access
  3. เปิดแอปพลิเคชัน Keychain Access แล้วคลิก System จากรายการทางด้านซ้าย
  4. คลิกตัวเลือก File ในแถบเมนูด้านบนซ้ายและเลือก Import Items
  5. เรียกดูตำแหน่งด้วย ldap-client.p12 ที่สร้างขึ้น เลือก ldap-client.p12 แล้วคลิก Open
    ป้อนรหัสผ่านหากได้รับข้อความแจ้ง
    ขณะนี้ใบรับรองที่มีชื่อ LDAP Client ควรปรากฏในรายการใบรับรอง System Keychain
  6. คลิกลูกศรถัดจากใบรับรอง LDAP Client คีย์ส่วนตัวจะปรากฏด้านล่าง
    1. ดับเบิลคลิกที่คีย์ส่วนตัว
    2. จากกล่องโต้ตอบ ให้เลือกแท็บ Access Control แล้วคลิก + ที่มุมล่างซ้าย
    3. จากหน้าต่างที่เปิดขึ้น ให้พิมพ์ Command+Shift+G เพื่อเปิดหน้าต่างใหม่แล้วแทนที่ข้อความเดิมด้วย /usr/bin/ldapsearch

    4. ลิก Go

      ระบบจะเปิดหน้าต่างที่ไฮไลต์ ldapsearch ขึ้นมา

    5. คลิกเพิ่ม

    6. คลิก Save Changes และป้อนรหัสผ่านหากได้รับข้อความแจ้ง

      ขณะนี้คุณพร้อมที่จะเข้าถึงไดเรกทอรี LDAP จากบรรทัดคำสั่งแล้วโดยใช้คำสั่ง OpenLDAP ldapsearch

  7. สมมติว่าไฟล์ ldap-client.p12 ที่คุณนำเข้าใน Keychain ก่อหน้านี้มีชื่อไคลเอ็นต์ LDAP โดเมนของคุณคือ example.com และชื่อผู้ใช้คือ jsmith ให้ป้อนข้อมูลต่อไปนี้

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

ซึ่งจะเป็นการตั้งค่าตัวแปรสภาพแวดล้อมที่เกี่ยวข้องให้ชี้ไปยังใบรับรองไคลเอ็นต์ที่นำเข้า คุณแทนที่ตัวเลือก ldapsearch อื่นได้ด้วยตัวกรองที่คุณต้องการ แอตทริบิวต์ที่ขอ และอื่นๆ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่หน้า ldapsearch man (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 เป็นพร็อกซี

เซิร์ฟเวอร์การเข้าถึง OpenVPN (เวอร์ชันเชิงพาณิชย์)

โปรดดูวิธีการเชื่อมต่อเซิร์ฟเวอร์การเข้าถึง OpenVPN กับบริการ LDAP ที่ปลอดภัยที่หัวข้อการกำหนดค่า LDAP ที่ปลอดภัยของ Google ด้วยเซิร์ฟเวอร์การเข้าถึง OpenVPN

PaperCut MF และ NG

โปรดดูวิธีการเชื่อมต่อ PaperCut กับบริการ LDAP ที่ปลอดภัยที่หัวข้อวิธีซิงค์และตรวจสอบสิทธิ์ผู้ใช้ Google Workspace และ Google Cloud Identity ใน PaperCut

Puppet Enteprise

โปรดดูวิธีการเชื่อมต่อ Puppet Enterprise กับบริการ LDAP ที่ปลอดภัยที่หัวข้อ Google Cloud Directory สำหรับ PE

เบราว์เซอร์ Softerra LDAP

สำคัญ: ก่อนที่คุณจะเริ่มต้น โปรดแน่ใจว่าได้ติดตั้งเบราว์เซอร์ Softerra LDAP ด้วยหมายเลขเวอร์ชัน 4.5 (4.5.19808.0) ขึ้นไป โปรดดูหัวข้อเบราว์เซอร์ LDAP 4.5

โปรดทำตามขั้นตอนต่อไปนี้

  1. แปลงไฟล์ใบรับรองและคีย์เป็นไฟล์รูปแบบ PKCS12 ไฟล์เดียว ป้อนคำสั่งต่อไปนี้ที่ Command Prompt

    หากคุณใช้ 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
    1. ไปที่ Tools > Certificate Manager
    2. คลิก Import…
    3. คลิกถัดไป
    4. คลิก Browse…
    5. ในรายการแบบเลื่อนลง File type ที่มุมขวาล่างของกล่องโต้ตอบ ให้เลือก Personal Information Exchange (&ast;.pfx;&ast;.p12)
    6. เลือกไฟล์ ldap-client.p12 จากขั้นตอนที่ 2 ด้านบน
    7. คลิก Open แล้วคลิก Next
    8. ป้อนรหัสผ่านจากขั้นตอนที่ 2 ด้านบนและคลิก Next
    9. เลือกที่เก็บใบรับรอง Personal
    10. คลิกถัดไป
    11. คลิกเสร็จสิ้น
  3. เพิ่มโปรไฟล์เซิร์ฟเวอร์
    1. ไปที่ File > New > New Profile…
    2. ป้อนชื่อโปรไฟล์ เช่น Google LDAP
    3. คลิกถัดไป

      ป้อนรายละเอียดดังนี้

      Host: ldap.google.com
      Port:
      636
      Base DN: ชื่อโดเมนในรูปแบบ DN (เช่น dc=example,dc=com สำหรับ example.com)
      Use secure connection (SSL): เลือก
    4. คลิกถัดไป
    5. เลือก External (SSL Certificate)
    6. คลิกถัดไป
    7. คลิกเสร็จสิ้น

Sophos Mobile

โปรดดูวิธีการเชื่อมต่อ Sophos Mobile กับบริการ LDAP ที่ปลอดภัยที่หัวข้อเชื่อมต่อ Sophos Mobile กับ Google Cloud Identity / Google Cloud Directory โดยใช้ LDAP ที่ปลอดภัย

Splunk

เมื่อเชื่อมต่อ Splunk เข้ากับบริการ LDAP ที่ปลอดภัย โปรดใช้ Splunk เวอร์ชัน 8.1.4 ขึ้นไป เมื่อคุณใช้ Splunk เวอร์ชันเก่ากว่า เช่น เวอร์ชัน 8.1.3 การค้นหา LDAP ส่วนเกินอาจส่งไปยังเซิร์ฟเวอร์ LDAP ซึ่งอาจส่งผลให้โควต้า LDAP ของคุณครบจำนวนเร็วขึ้น โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับปัญหาของ Splunk เวอร์ชัน 8.1.3 ที่ปัญหาที่ทราบเกี่ยวกับ 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 โดยใช้ UI บนเว็บของ Splunk ป้อนรายละเอียดต่อไปนี้ แล้วคลิกบันทึก

ชื่อ

Google Secure LDAP

โฮสต์

ldap.google.com

พอร์ต

636

เปิดใช้ SSL

เลือกแล้ว

ลำดับการเชื่อมต่อ

1

Bind DN

ป้อนข้อมูลเข้าสู่ระบบที่คุณสร้างขึ้นในคอนโซลผู้ดูแลระบบของ Google

Bind DN password

ป้อนข้อมูลเข้าสู่ระบบที่คุณสร้างขึ้นในคอนโซลผู้ดูแลระบบของ Google

Base DN

ชื่อโดเมนของคุณในรูปแบบ DN (ตัวอย่างเช่น dc=example,dc=com สำหรับโดเมน example.com)

ตัวกรองฐานผู้ใช้

ป้อนตัวกรองฐานผู้ใช้สําหรับคลาสออบเจ็กต์ที่ต้องการกรองผู้ใช้

แอตทริบิวต์ชื่อผู้ใช้

uid

แอตทริบิวต์ชื่อจริง

displayname

แอตทริบิวต์อีเมล

อีเมล

แอตทริบิวต์การแมปกลุ่ม

dn

Group base DN

ชื่อโดเมนของคุณในรูปแบบ DN (ตัวอย่างเช่น ou=Groups,dc=example,dc=com สำหรับโดเมน example.com)

Static group search filter

ป้อนตัวกรองการค้นหากลุ่มแบบคงที่สําหรับคลาสออบเจ็กต์ที่ต้องการกรองกลุ่มคงที่

แอตทริบิวต์ชื่อกลุ่ม

cn

Static member attribute

สมาชิก

SSSD (Red Hat Enterprise และ CentOS)

SSSD จะค้นหาผู้ใช้เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ระหว่างการตรวจสอบสิทธิ์ คุณจะต้องเปิดใช้อ่านข้อมูลผู้ใช้และอ่านข้อมูลของกลุ่มสำหรับหน่วยขององค์กรทั้งหมดที่เปิดใช้ยืนยันข้อมูลเข้าสู่ระบบของผู้ใช้เพื่อให้การตรวจสอบสิทธิ์ผู้ใช้ทำงานอย่างถูกต้องกับไคลเอ็นต์ LDAP นี้ (โปรดดูวิธีการที่หัวข้อกำหนดสิทธิ์การเข้าถึง)

หากต้องการเชื่อมต่อไคลเอ็นต์ SSSD ใน Red Hat 8 หรือ CentOS 8 กับบริการ LDAP ที่ปลอดภัย ให้ทำดังนี้

  1. เพิ่มไคลเอ็นต์ SSSD ไปยังบริการ LDAP ที่ปลอดภัย ดังนี้
    1. จากคอนโซลผู้ดูแลระบบของ Google ให้ไปที่แอป > LDAP > เพิ่มไคลเอ็นต์
      โปรดลงชื่อเข้าใช้ด้วยบัญชีบริษัท ไม่ใช่บัญชี Gmail ส่วนบุคคล
    2. ป้อนรายละเอียดไคลเอ็นต์แล้วคลิกต่อไป
    3. กำหนดค่าสิทธิ์ในการเข้าถึง ให้ทำดังนี้
      ยืนยันข้อมูลเข้าสู่ระบบของผู้ใช้ - ทั้งโดเมน
      อ่านข้อมูลผู้ใช้ - ทั้งโดเมน
      อ่านข้อมูลกลุ่ม - เปิด
    4. คลิกเพิ่มไคลเอ็นต์ LDAP
    5. ดาวน์โหลดใบรับรองที่สร้างไว้
    6. คลิกไปต่อยังรายละเอียดของไคลเอ็นต์
    7. เปลี่ยนสถานะบริการเป็นเปิด
  2. ติดตั้งทรัพยากร Dependency ดังนี้

    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 รวมทั้งไฟล์และคีย์ใบรับรองต้องอยู่ในไดเรกทอรีที่เข้าถึงได้โดยบทบาท ssdd_conf_t ดังนี้

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

    ตรวจหาข้อความปฏิเสธ AVC จาก /var/log/audit/audit.log

  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. ตรวจสอบข้อผิดพลาด LDAP /network/auth จาก/var/log/sssd_{DOMAIN}.log

    ตัวอย่าง:

    [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 ในส่วนโดเมนแล้วรีสตาร์ท 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 ขึ้นไป
  • คุณต้องมีรหัสผู้ใช้ของผู้ดูแลระบบขั้นสูงของ Google เพื่อใช้ในขั้นตอนที่ 1 ในระยะเตรียมการ
  • คุณต้องมีสิทธิ์ผู้ดูแลระบบในเครื่องจึงจะกำหนดค่านี้ได้

เนื้อหา:

ระยะเตรียมการ

วิธีการในส่วนนี้จะเน้นที่การตั้งค่าและทดสอบการตรวจสอบสิทธิ์ macOS ด้วยตนเองโดยใช้บริการ LDAP ที่ปลอดภัย

ขั้นตอนที่ 1: เตรียมความพร้อมให้ macOS เป็นไคลเอ็นต์ LDAP ในคอนโซลผู้ดูแลระบบของ Google

โปรดดูวิธีการที่หัวข้อเพิ่มไคลเอ็นต์ LDAP หรือดูการสาธิต LDAP ที่ปลอดภัยนี้ นอกจากนี้คุณยังดาวน์โหลดใบรับรองไคลเอ็นต์ TLS ที่สร้างขึ้นโดยอัตโนมัติในขั้นตอนนี้ได้ด้วย

ขั้นตอนที่ 2: นำเข้าใบรับรองลงในคีย์เชนระบบ

  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. คลิก File > Import Items

    5. เลือกไฟล์ ldap-client.p12 ที่สร้างไว้ด้านบน

    6. ให้ป้อนรหัสผ่านของผู้ดูแลระบบเพื่ออนุญาตให้แก้ไขคีย์เชนระบบได้เมื่อระบบแจ้ง

    7. ป้อนรหัสผ่านที่สร้างไว้ด้านบนเพื่อถอดรหัสไฟล์ .p12

      หมายเหตุ: ระบบจะแสดงใบรับรองใหม่และคีย์ส่วนตัวที่เกี่ยวข้องในรายการคีย์ ซึ่งอาจเรียกว่า LDAP Client จดชื่อใบรับรองไว้สำหรับขั้นตอนถัดไป
    8. ทำตามขั้นตอนที่ 6 ในส่วน ldapsearch (macOS) ของบทความนี้เพื่อตั้งค่า Access Control สำหรับคีย์ส่วนตัวเพื่อเพิ่มแอปที่ระบุด้านล่าง หากคีย์ส่วนตัวไม่แสดงใต้หมวดหมู่ All Items ให้ลองเปลี่ยนไปใช้หมวดหมู่ My Certificates แล้วค้นหารายการคีย์ส่วนตัวที่ถูกต้องโดยขยายใบรับรองที่เกี่ยวข้อง

      วิธีการระบุไว้ว่าแอป ldapsearch จะจำเป็นเฉพาะในกรณีที่ต้องแก้ปัญหาเท่านั้น ไม่ใช่เพื่อวัตถุประสงค์อื่น โดยปกติแล้วระบบจะลบออกก่อนที่จะให้ผู้ใช้เข้าถึง macOS

      คุณต้องเพิ่มแอป 3 รายการต่อไปนี้ลงในรายการควบคุมการเข้าถึง

      /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. คลิก New…
  4. สำหรับชื่อเซิร์ฟเวอร์ ให้ป้อน ldap.google.com จากนั้นเลือก Encrypt using SSL แล้วคลิก Manual
  5. เลือกชื่อเซิร์ฟเวอร์ใหม่แล้วคลิก Edit…
  6. ป้อนชื่อที่สื่อความหมาย เช่น Google Secure LDAP เพื่อใช้เป็นชื่อการกำหนดค่า
  7. เลือก Encrypt using SSL และตรวจสอบว่าได้ตั้งค่าพอร์ตเป็น 636 แล้ว
  8. ไปที่แท็บ Search & Mappings
    1. เลือก RFC2307 จากรายการแบบเลื่อนลง Access this LDAPv3 server using
    2. ป้อนข้อมูลที่เกี่ยวข้องกับโดเมนลงในช่อง Search Base Suffix เมื่อระบบแจ้ง เช่น ป้อน dc=zomato,dc=com สำหรับชื่อโดเมนของ zomato.com
    3. คลิกตกลง
    4. กำหนดค่าแอตทริบิวต์ในส่วนประเภทระเบียน Users ดังนี้
      1. ในส่วน Record Types and Attributes ให้เลือก Users แล้วคลิกปุ่ม "+"
      2. ในหน้าต่างป๊อปอัป ให้เลือก Attribute Types เลือก GeneratedUID แล้วคลิก OK เพื่อปิดหน้าต่างป๊อปอัป

        GeneratedUID ควรแสดงในส่วน Users หลังจากขยายแล้ว
      3. คลิกที่ GeneratedUID แล้วคลิกไอคอน "+" ในช่องทางด้านขวา
      4. ป้อน apple-generateduid ในกล่องข้อความ แล้วคลิก Enter
      5. ในส่วนโหนด Users ให้คลิกแอตทริบิวต์ NFSHomeDirectory
      6. ในหน้าจอทางด้านขวา ให้อัปเดตค่าสำหรับแอตทริบิวต์นี้เป็น #/Users/$uid$
      7. คลิก OK และป้อนรหัสผ่านเพื่อบันทึกการเปลี่ยนแปลง
  9. จากหน้าต่าง Directory Utility ให้กำหนดค่า LDAP ใหม่ดังนี้
    1. ไปที่แท็บ Search Policy
    2. คลิกไอคอนแม่กุญแจเพื่อทำการเปลี่ยนแปลง แล้วป้อนรหัสผ่านของผู้ใช้ปัจจุบันเมื่อระบบแจ้ง
    3. เปลี่ยนตัวเลือกแบบเลื่อนลงจาก Search Path เป็น Custom path
    4. เปิดแท็บ Authentication แล้วคลิกไอคอน "+"
    5. เลือก /LDAPv3/ldap.google.com จากรายการ Directory Domains แล้วคลิกเพิ่ม
    6. คลิกปุ่ม Apply และป้อนรหัสผ่านของผู้ดูแลระบบหากมีข้อความแจ้ง
  10. เรียกใช้คำสั่ง 4 รายการต่อไปนี้เพื่อปิดใช้กลไกการตรวจสอบสิทธิ์ DIGEST-MD5, CRAM-MD5, NTLM และ GSSAPI SASL macOS จะใช้ Simple Bind เพื่อตรวจสอบสิทธิ์โดยใช้บริการ Google Secure LDAP

    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 admin user name ให้ป้อนชื่อผู้ใช้ของผู้ดูแลระบบแล้วป้อนรหัสผ่านในข้อความแจ้งถัดไป โดยจะเป็นการเพิ่ม $uid ลงใน FileVault ซึ่งต้องใช้ในกรณีที่มีการเข้ารหัสดิสก์ macOS ไว้

ขั้นตอนที่ 5: (ไม่บังคับ) กำหนดค่าหน้าจอเข้าสู่ระบบ

  1. ไปที่ System preferences > Users & Groups > Login Options ที่ด้านซ้ายล่าง
  2. ปลดล็อกแม่กุญแจโดยระบุข้อมูลเข้าสู่ระบบของผู้ดูแลระบบ
  3. เปลี่ยน Display login window as เป็น Name and password

ขั้นตอนที่ 6: รีบูตและเข้าสู่ระบบอุปกรณ์

  1. ตรวจสอบว่าอุปกรณ์เชื่อมต่อกับอินเทอร์เน็ตแล้ว หากไม่มีการเชื่อมต่ออินเทอร์เน็ต การเข้าสู่ระบบสำหรับผู้ใช้ LDAP ที่ปลอดภัยจะไม่ทำงาน
    หมายเหตุ: ต้องเชื่อมต่อกับอินเทอร์เน็ตเมื่อเข้าสู่ระบบครั้งแรกเท่านั้น การเข้าสู่ระบบครั้งต่อๆ ไปจะทำได้โดยไม่ต้องมีอินเทอร์เน็ต
  2. ลงชื่อเข้าใช้อุปกรณ์ด้วยบัญชีผู้ใช้ที่กำหนดค่าให้ใช้ LDAP ที่ปลอดภัยสำหรับการตรวจสอบสิทธิ์

ระยะติดตั้งใช้งาน

วิธีการในส่วนนี้จะเน้นการกำหนดค่าอุปกรณ์ให้กับผู้ใช้โดยอัตโนมัติ ทำตามขั้นตอนที่ 1 และ 2 ด้านล่างในอุปกรณ์ macOS เครื่องเดียวกับที่คุณใช้กำหนดค่าด้วยตนเองในระยะเตรียมการ

ขั้นตอนที่ 1: สร้างโปรไฟล์ Mac ด้วยใบรับรองโดยใช้ Apple Configurator 2

  1. ติดตั้ง Apple Configurator 2 ในเครื่องที่คุณกำหนดค่าการตรวจสอบสิทธิ์ macOS ด้วยตนเองด้วย LDAP ที่ปลอดภัย
  2. เปิด Apple Configurator 2 แล้วสร้างโปรไฟล์ใหม่ จากนั้นคลิก Configure และนำเข้าไฟล์ .p12 ที่สร้างขึ้นก่อนหน้านี้

    หมายเหตุ: อย่าลืมตั้งรหัสผ่านให้ไฟล์ .p12 นี้ ป้อนรหัสผ่านนี้ในส่วน Password ของใบรับรอง

  3. บันทึกโปรไฟล์นี้
  4. (สำหรับอุปกรณ์ที่ใช้ตัวประมวลผล M1 หรือ M2 ให้ข้ามขั้นตอนนี้และไปยังขั้นตอนที่ 5 ) เปิดโปรไฟล์นี้ในเครื่องมือแก้ไขข้อความใดก็ได้ แล้วเพิ่มบรรทัดต่อไปนี้ในแท็ก <dict> แรก

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


    ต้องเพิ่มค่านี้เนื่องจาก Apple Configurator ยังไม่รองรับโปรไฟล์สำหรับ macOS
  5. ในแท็ก <dict> ที่ 2 ควบคู่ไปกับข้อมูลใบรับรอง ให้เพิ่มบรรทัดต่อไปนี้

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


    ทำเช่นนี้เพื่อให้แอปพลิเคชันทั้งหมดเข้าถึงใบรับรองนี้ได้

ขั้นตอนที่ 2: แปลงไฟล์การกำหนดค่าไดเรกทอรี (plist) เป็น XML

ในขั้นตอนนี้ คุณจะได้แยกการกำหนดค่าทั้งหมดที่คุณดำเนินการด้วยตนเองในขั้นตอนที่ 3 ของระยะเตรียมการให้เป็นไฟล์ XML คุณสามารถใช้ไฟล์นี้และโปรไฟล์ 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. หากต้องการติดตั้งทรัพยากร Dependency ที่จําเป็นสําหรับสคริปต์ ให้เรียกใช้คําสั่งต่อไปนี้
    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 ต้องแตกต่างจากรหัสผู้ใช้ของโปรไฟล์ผู้ใช้ macOS ไม่เช่นนั้นระบบจะบล็อกการลงชื่อเข้าใช้
  • เมื่อเริ่มลงชื่อเข้าใช้ macOS โดยใช้ข้อมูลเข้าสู่ระบบ Google แล้ว คุณต้องจัดการรหัสผ่านของผู้ใช้ (รีเซ็ตหรือกู้คืน) ในเว็บไซต์ Google (เช่น ที่ myaccount.google.com หรือในคอนโซลผู้ดูแลระบบของ Google) หากคุณเลือกจัดการรหัสผ่านโดยใช้โซลูชันของบุคคลที่สาม โปรดตรวจสอบว่ารหัสผ่านล่าสุดซิงค์กับ Google แล้ว
  • หากผู้ดูแลระบบสร้างผู้ใช้ใหม่หรือรีเซ็ตรหัสผ่านของผู้ใช้เดิมโดยที่เปิดการตั้งค่าขอให้เปลี่ยนรหัสผ่านในการลงชื่อเข้าใช้ครั้งต่อไปไว้ ผู้ใช้จะลงชื่อเข้าใช้ Mac โดยใช้รหัสผ่านชั่วคราวที่ผู้ดูแลระบบตั้งไว้ไม่ได้
    วิธีแก้ปัญหา: ผู้ใช้ต้องลงชื่อเข้าใช้ Google โดยใช้อุปกรณ์อื่น (เช่น อุปกรณ์เคลื่อนที่หรืออุปกรณ์เดสก์ท็อปอื่นๆ) ตั้งรหัสผ่านถาวร แล้วลงชื่อเข้าใช้ macOS โดยใช้รหัสผ่านใหม่
  • อุปกรณ์ Mac ต้องเชื่อมต่อกับอินเทอร์เน็ตที่ใช้งานได้เพื่อให้เข้าถึง ldap.google.com ได้ระหว่างที่ลงชื่อเข้าใช้ครั้งแรกหลังการกำหนดค่าข้างต้น การลงชื่อเข้าใช้ครั้งต่อไปจะไม่ต้องใช้อินเทอร์เน็ตอีก ตราบเท่าที่คุณสร้างบัญชีอุปกรณ์เคลื่อนที่ไว้
  • การผสานรวม LDAP ที่ปลอดภัยของ Google กับ 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. ไปที่ System Preferences > Network > Wi-Fi > Advanced
  2. ในเมนู Advanced ให้ไปที่แท็บ TCP/IP
  3. เปลี่ยนตัวเลือกแบบเลื่อนลงจาก Configure 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 Runtime Environment

  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 เป็นพร็อกซี

สำหรับไคลเอ็นต์ที่ไม่มีวิธีตรวจสอบสิทธิ์กับ LDAP ด้วยใบรับรองไคลเอ็นต์ ให้ใช้ stunnel เป็นพร็อกซี

โดยกำหนดค่า 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 ที่ปลอดภัยแล้ว คุณต้องเปลี่ยนสถานะบริการสำหรับไคลเอ็นต์ LDAP ให้เป็นเปิด

ดูขั้นตอนถัดไปที่ 5. เปลี่ยนสถานะบริการไคลเอ็นต์ LDAP เป็น เปิด

หมายเหตุ: หากจำเป็น คุณสามารถใช้เครื่องมือง่ายๆ เช่น ldapsearch, ADSI หรือ ldp.exe เพื่อแก้ปัญหาเมื่อพบข้อผิดพลาดขณะพยายามเชื่อมต่อ ไคลเอ็นต์ LDAP กับบริการ โปรดดูวิธีการที่หัวข้อการทดสอบและการแก้ปัญหาการเชื่อมต่อ