ติดตั้ง ldap และ ldaps server ใช้เป็น user account
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 3-09-2564
ดูแลโดย WIBOON
- ทดสอบกับ ubuntu 12.04 server
- ทดสอบกับ ubuntu 14.04 server
- ทดสอบกับ ubuntu 16.04 server
- ทดสอบกับ ubuntu 18.04 server slapd 2.4.42
- ทดสอบกับ ubuntu 20.04 server slapd 2.4.49
- ตัวอย่างนี้ติดตั้ง ldap ใน server ที่มี FQDN คือ ldap.example.com
- ตัวอย่างนี้สร้าง ldap dc=example,dc=com และมีข้อมูลดังนี้
dn: dc=example,dc=com dn: cn=admin,dc=example,dc=com dn: ou=groups,dc=example,dc=com dn: ou=execs,ou=groups,dc=example,dc=com dn: cn=nana,ou=execs,ou=groups,dc=example,dc=com dn: ou=staffs,ou=groups,dc=example,dc=com dn: cn=koko,ou=staffs,ou=groups,dc=example,dc=com dn: cn=momo,ou=staffs,ou=groups,dc=example,dc=com dn: ou=people,dc=example,dc=com dn: cn=lala,ou=people,dc=example,dc=com dn: cn=lulu,ou=people,dc=example,dc=com dn: ou=students,ou=groups,dc=example,dc=com dn: cn=5310110293,ou=students,ou=groups,dc=example,dc=com dn: cn=5410110308,ou=students,ou=groups,dc=example,dc=com dn: cn=5410210081,ou=students,ou=groups,dc=example,dc=com dn: cn=5510210058,ou=students,ou=groups,dc=example,dc=com dn: cn=5210310095,ou=students,ou=groups,dc=example,dc=com dn: cn=5710310067,ou=students,ou=groups,dc=example,dc=com dn: cn=5511210020,ou=students,ou=groups,dc=example,dc=com dn: cn=5611210004,ou=students,ou=groups,dc=example,dc=com dn: cn=juju,ou=people,dc=example,dc=com dn: cn=jaja,ou=people,dc=example,dc=com
ติดตั้งโปรแกรม slapd เพื่อใช้เป็น OpenLDAP database
[ช่วงแรก ติดตั้ง LDAP server]
1. ติดตั้งโปรแกรม
mama@rd:~$ sudo apt-get install slapd ldap-utils Administrator password: 123456 Confirm password: 123456
ผลลัพธ์ output ที่ได้
Setting up libltdl7:amd64 (2.4.6-0.1) ... Setting up libodbc1:amd64 (2.3.1-4.1) ... Setting up libslp1:amd64 (1.2.1-11) ... Setting up slapd (2.4.42+dfsg-2ubuntu3.1) ... Creating new user openldap... done. Creating initial configuration... done. Creating LDAP directory... done. Setting up ldap-utils (2.4.42+dfsg-2ubuntu3.1) ... Processing triggers for libc-bin (2.23-0ubuntu3) ... Processing triggers for systemd (229-4ubuntu7) ... Processing triggers for ureadahead (0.100.0-19) ... Processing triggers for ufw (0.35-0ubuntu2) ...
2.ตั้งค่าเริ่มต้น ให้ตอบคำถามตามข้อมูลตัวอย่าง สำหรับ ubuntu 20.04 จะไม่ม่คำถาม Allow LDAPv2 protocol?
mama@rd:~$ sudo dpkg-reconfigure slapd [sudo] password for mama: Omit OpenLDAP server configuration? ตอบ No DNS domain name ตอบ example.com Organization name ตอบ RD Administrator password ตอบ 123456 Confirm password ตอบ 123456 Database backend to use ตอบ MDB Do you want the database to be removed when slapd is purged? ตอบ Yes Move old database? ตอบ Yes Allow LDAPv2 protocol? ตอบ No
ผลลัพธ์ output ที่ได้
Moving old database directory to /var/backups: - directory unknown... done. Creating initial configuration... done. Creating LDAP directory... done.
3.ทดสอบดูการดึงข้อมูลด้วย command line
mama@ubuntu:~$ ldapsearch -x -b dc=example,dc=com # extended LDIF # # LDAPv3 # base <dc=example,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # example.com dn: dc=example,dc=com objectClass: top objectClass: dcObject objectClass: organization o: rd dc: example # admin, example.com dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
จะพบว่าในตอนแรกไม่มีข้อมูลอื่นนอกจาก cn=admin
4.สร้าง domain example.com พร้อมกับ users จำนวนหนึ่ง
ต้องสร้างข้อมูลด้วยวิธีสร้างไฟล์ ldif (ตัวอย่างนี้ใช้เอดิเตอร์ชื่อ vi ท่านอาจเลือกใช้ nano ก็ได้) ใส่ข้อมูลตัวอย่าง ดังนี้
mama@ubuntu:~$ vi create-example.com.ldif # Starter kit for create user in domain dc=example,dc=com # Create 1st tree OU=groups dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: groups # Create sub tree OU=execs,OU=groups dn: ou=execs,ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: execs # Create 1 user in tree OU=execs,OU=groups dn: cn=nana,ou=execs,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: nana sn: Na givenName: Na cn: nana displayName: Na Na userPassword: 123456 mail: nana@example.com # Create sub tree OU=staffs,OU=groups dn: ou=staffs,ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: staffs # Create 2 users in tree OU=staffs,OU=groups dn: cn=koko,ou=staffs,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: koko sn: Ko givenName: Ko cn: koko displayName: Ko Ko userPassword: 123456 mail: koko@example.com dn: cn=momo,ou=staffs,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: momo sn: Mo givenName: Mo cn: momo displayName: Mo Mo userPassword: 123456 mail: momo@example.com # Create 2nd tree OU=people dn: ou=people,dc=example,dc=com objectClass: organizationalUnit ou: people # Create 2 users in tree OU=people dn: cn=lala,ou=people,dc=example,dc=com objectClass: inetOrgPerson uid: lala sn: La givenName: La cn: lala displayName: La La userPassword: 123456 mail: lala@example.com dn: cn=lulu,ou=people,dc=example,dc=com objectClass: inetOrgPerson uid: lulu sn: Lu givenName: Lu cn: lulu displayName: Lu Lu userPassword: 123456 mail: lulu@example.com
5.เพิ่ม object ลงใน LDAP server จากไฟล์ ldif ที่สร้างไว้
mama@ubuntu:~$ sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f create-example.com.ldif Enter LDAP Password:
ผลลัพธ์ output ที่ได้
adding new entry "ou=groups,dc=example,dc=com" adding new entry "ou=execs,ou=groups,dc=example,dc=com" adding new entry "cn=nana,ou=execs,ou=groups,dc=example,dc=com" adding new entry "ou=staffs,ou=groups,dc=example,dc=com" adding new entry "cn=koko,ou=staffs,ou=groups,dc=example,dc=com" adding new entry "cn=momo,ou=staffs,ou=groups,dc=example,dc=com" adding new entry "ou=people,dc=example,dc=com" adding new entry "cn=lala,ou=people,dc=example,dc=com" adding new entry "cn=lulu,ou=people,dc=example,dc=com"
ทดสอบ
mama@ubuntu:~$ ldapsearch -xLLL -b "dc=example,dc=com" uid=lulu dn: cn=lulu,ou=people,dc=example,dc=com objectClass: inetOrgPerson uid: lulu sn: Lu givenName: Lu cn: lulu displayName: Lu Lu mail: lulu@example.com
คำสั่งที่ใช้ตรวจสอบข้อมูลแบบอื่น ๆ
mama@ubuntu:~$ sudo slapcat | grep ^uid uid: nana uid: koko uid: momo uid: lala uid: lulu mama@ubuntu:~$ sudo slapcat | grep ^dn dn: dc=example,dc=com dn: cn=admin,dc=example,dc=com dn: ou=groups,dc=example,dc=com dn: ou=execs,ou=groups,dc=example,dc=com dn: cn=nana,ou=execs,ou=groups,dc=example,dc=com dn: ou=staffs,ou=groups,dc=example,dc=com dn: cn=koko,ou=staffs,ou=groups,dc=example,dc=com dn: cn=momo,ou=staffs,ou=groups,dc=example,dc=com dn: ou=people,dc=example,dc=com dn: cn=lala,ou=people,dc=example,dc=com dn: cn=lulu,ou=people,dc=example,dc=com mama@ubuntu:~$ ldapsearch -H "ldap://127.0.0.1" -D "cn=lulu,ou=people,dc=example,dc=com" -W -x -b "dc=example,dc=com" uid=lulu Enter LDAP Password: # extended LDIF # # LDAPv3 # base <dc=example,dc=com> with scope subtree # filter: uid=lulu # requesting: ALL # # lulu, people, example.com dn: cn=lulu,ou=people,dc=example,dc=com objectClass: inetOrgPerson uid: lulu sn: Lu givenName: Lu cn: lulu displayName: Lu Lu userPassword:: MTIzNDU2 mail: lulu@example.com # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
[ช่วงที่สอง ติดตั้ง LDAPS server]
6.เพื่อความสะดวก ให้เข้าเป็น root และตรวจสอบว่าได้ติดตั้ง ssl-cert แล้ว แล้วจึงติดตั้งโปรแกรม gnutls-bin
mama@ubuntu:~$ sudo su - root@ubuntu:~# apt-get install ssl-cert root@ubuntu:~# apt-get install gnutls-bin
ผลลัพธ์ output ที่ได้
Setting up libopts25:amd64 (1:5.18.7-3) ... Setting up gnutls-bin (3.4.10-4ubuntu1.1) ...
7.ทำคำสั่งดังนี้
root@ubuntu:~# certtool --generate-privkey --outfile /etc/ssl/private/ldap-ca-key.pem Generating a 3072 bit RSA private key... root@ubuntu:~# certtool --generate-self-signed --load-privkey /etc/ssl/private/ldap-ca-key.pem --outfile /etc/ssl/certs/ldap-ca-cert.pem Generating a self signed certificate... Please enter the details of the certificate's distinguished name. Just press enter to ignore a field. Common name: RDCCPSU UID: Organizational unit name: COMCEN Organization name: PSU Locality name: HATYAI State or province name: SONGKHLA Country name (2 chars): TH Enter the subject's domain component (DC): This field should not be used in new certificates. E-mail: mama@example.com Enter the certificate's serial number in decimal (default: 6320370347434695588): Activation/Expiration time. The certificate will expire in (days): 3650 Extensions. Does the certificate belong to an authority? (y/N): N Is this a TLS web client certificate? (y/N): N Will the certificate be used for IPsec IKE operations? (y/N): N Is this a TLS web server certificate? (y/N): N Enter a dnsName of the subject of the certificate: Enter a URI of the subject of the certificate: Enter the IP address of the subject of the certificate: Enter the e-mail of the subject of the certificate: mama@example.com Will the certificate be used for signing (required for TLS)? (Y/n): N Will the certificate be used for encryption (not required for TLS)? (Y/n): N (Ubuntu 20.04) Will the certificate be used for ... ? (Y/n): N (Ubuntu 20.04) Will the certificate be used for ... ? (Y/n): N (Ubuntu 20.04) Will the certificate be used for ... ? (Y/n): N Enter the URI of the CRL distribution point:
ตรงนี้จะแสดงข้อมูล X.509 Certificate Information:
Is the above information ok? (y/N): Y Signing certificate...
8.ทำคำสั่งต่อไป
root@ubuntu:~# adduser openldap ssl-cert Adding user `openldap' to group `ssl-cert' ... Adding user openldap to group ssl-cert Done. root@ubuntu:~# chgrp ssl-cert /etc/ssl/private/ldap-ca-key.pem root@ubuntu:~# chmod g+r /etc/ssl/private/ldap-ca-key.pem
9.ตรวจสอบ directory permission และ owner ของ /etc/ssl/ ต้องได้ drwx--x--- และ root ssl-cert
root@ubuntu:~# ls -l /etc/ssl/ total 36 drwxr-xr-x 2 root root 20480 Aug 19 10:02 certs -rw-r--r-- 1 root root 10835 Apr 15 12:28 openssl.cnf drwx--x--- 2 root ssl-cert 4096 Aug 19 10:00 private root@ubuntu:~# ls -l /etc/ssl/certs/ldap-ca-cert.pem -rw-r--r-- 1 root root 1736 Aug 19 10:11 /etc/ssl/certs/ldap-ca-cert.pem
10.ตรวจสอบ file permission และ owner ของ ldap-ca-key.pem ต้องได้ -rw-r----- และ root ssl-cert
root@ubuntu:~# ls -l /etc/ssl/private/ldap-ca-key.pem -rw-r----- 1 root ssl-cert 8282 Aug 19 10:00 /etc/ssl/private/ldap-ca-key.pem
11.สร้างไฟล์เพื่อเพิ่มค่าที่เกี่ยวกับ TLS เข้าไปใน cn=config เพิ่มข้อมูลตามนี้
root@ubuntu:~# vi ssl.ldif dn: cn=config changetype: modify add: olcTLSCipherSuite olcTLSCipherSuite: NORMAL - add: olcTLSCRLCheck olcTLSCRLCheck: none - add: olcTLSVerifyClient olcTLSVerifyClient: never - add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certs/ldap-ca-cert.pem - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/private/ldap-ca-key.pem
12.สั่งรีสตาร์ท OpenLDAP
root@ubuntu:~# systemctl restart slapd.service root@ubuntu:~# systemctl status slapd.service - slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol) Loaded: loaded (/etc/init.d/slapd; bad; vendor preset: enabled) Active: active (running) since Fri 2016-08-19 10:20:53 ICT; 6s ago
13.เพิ่มค่าที่เกี่ยวกับ TLS เข้าไปใน cn=config
root@ubuntu:~# ldapmodify -Y EXTERNAL -H ldapi:/// -f ssl.ldif -v ldap_initialize( ldapi:///??base ) SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 add olcTLSCipherSuite: NORMAL add olcTLSCRLCheck: none add olcTLSVerifyClient: never add olcTLSCertificateFile: /etc/ssl/certs/ldap-ca-cert.pem add olcTLSCertificateKeyFile: /etc/ssl/private/ldap-ca-key.pem modifying entry "cn=config" modify complete
14.แก้ไขไฟล์ slapd เพื่อเพิ่มคำว่า ldaps:/// (ประมาณบรรทัดที่ 24) จะได้ใช้ได้ทุกแบบ
root@ubuntu:~# vi /etc/default/slapd SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
15.แก้ไขไฟล์ ldap.conf
root@rd:~# vi /etc/ldap/ldap.conf TLS_REQCERT never
16.สั่งรีสตาร์ท OpenLDAP
root@ubuntu:~# systemctl restart slapd.service root@ubuntu:~# systemctl status slapd.service - slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol) Loaded: loaded (/etc/init.d/slapd; bad; vendor preset: enabled) Active: active (running) since Fri 2016-08-19 10:27:06 ICT; 2s ago
17.ออกจาก mode root
root@ubuntu:~# exit logout
[วิธีเพิ่ม group ใหม่ชื่อ students (ou=students,ou=groups,dc=example,dc=com)]
18.สร้างข้อมูลด้วยวิธีสร้างไฟล์ ldif (ตัวอย่างนี้ใช้เอดิเตอร์ชื่อ vi ท่านอาจเลือกใช้ nano ก็ได้) ใส่ข้อมูลดังนี้
mama@ubuntu:~$ vi create-students.ldif # Create sub tree OU=students,OU=groups dn: ou=students,ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: students # Create 8 students in tree OU=students,OU=groups dn: cn=5310110293,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5310110293 sn: 5310110293 givenName: somsak cn: 5310110293 displayName: somsak somsaknaja userPassword: 123456 mail: 5310110293@example.com dn: cn=5410110308,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5410110308 sn: 5410110308 givenName: somsri cn: 5410110308 displayName: somsri somsrisiya userPassword: 123456 mail: 5410110308@example.com dn: cn=5410210081,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5410210081 sn: 5410210081 givenName: sompong cn: 5410210081 displayName: sompong sompongnaya userPassword: 123456 mail: 5410210081@example.com dn: cn=5510210058,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5510210058 sn: 5510210058 givenName: somchai cn: 5510210058 displayName: somchai somchaisiya userPassword: 123456 mail: 5510210058@example.com dn: cn=5210310095,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5210310095 sn: 5210310095 givenName: somchoke cn: 5210310095 displayName: somchoke somchokenaja userPassword: 123456 mail: 5210310095@example.com dn: cn=5710310067,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5710310067 sn: 5710310067 givenName: somjit cn: 5710310067 displayName: somjit somjitssiya userPassword: 123456 mail: 5710310067@example.com dn: cn=5511210020,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5511210020 sn: 5511210020 givenName: somjai cn: 5511210020 displayName: somjai somjainaya userPassword: 123456 mail: 5511210020@example.com dn: cn=5611210004,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5611210004 sn: 5611210004 givenName: somwang cn: 5611210004 displayName: somwang somwangsija userPassword: 123456 mail: 5611210004@example.com
19.เพิ่มข้อมูลเข้า LDAP จากไฟล์
mama@ubuntu:~$ sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f create-students.ldif [sudo] password for mama: Enter LDAP Password: adding new entry "ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5310110293,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5410110308,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5410210081,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5510210058,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5210310095,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5710310067,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5511210020,ou=students,ou=groups,dc=example,dc=com" adding new entry "cn=5611210004,ou=students,ou=groups,dc=example,dc=com"
20.ทดสอบ ldapsearch หา uid=5611210004
mama@ubuntu:~$ ldapsearch -xLLL -b "dc=example,dc=com" uid=5611210004 output: dn: cn=5611210004,ou=students,ou=groups,dc=example,dc=com objectClass: inetOrgPerson uid: 5611210004 sn: 5611210004 givenName: somwang cn: 5611210004 displayName: somwang somwangsija mail: 5611210004@example.com
[ถ้าต้องการสร้าง user เพิ่มอีกชื่อ juju ด้วยวิธี command line]
21.สร้างไฟล์ชื่อ juju.ldif และใส่ข้อมูลตามตัวอย่าง
mama@ubuntu:~$ vi juju.ldif dn: cn=juju,ou=people,dc=example,dc=com objectClass: inetOrgPerson uid: juju sn: Ju givenName: Ju cn: juju displayName: Ju Ju userPassword: 123456 mail: juju@example.com
22.จากนั้นเพิ่มข้อมูลจากไฟล์ juju.ldif
mama@ubuntu:~$ sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f juju.ldif Enter LDAP Password: adding new entry "cn=juju,ou=people,dc=example,dc=com"
ติดตั้งโปรแกรม phpldapadmin เพื่อใช้จัดการทางหน้าเว็บ
23.ติดตั้งโปรแกรม
mama@ubuntu:~$ sudo apt-get install php-ldap The following NEW packages will be installed: php-common php-ldap php7.0-common php7.0-ldap Setting up php-ldap (1:7.0+35ubuntu6) ... mama@ubuntu:~$ sudo apt-get install phpldapadmin Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php libapache2-mod-php7.0 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 libxslt1.1 php-xml php7.0-cli php7.0-json php7.0-opcache php7.0-readline php7.0-xml Setting up phpldapadmin (1.2.2-5.2ubuntu2) ...
24.สร้าง user จากหน้าเว็บ phpldapadmin ทำดังนี้
เปิดเข้าไปที่ http://ldap.example.com/phpldapadmin/
เมื่อ Login แล้วจะเห็นข้อมูลที่เพิ่มเข้าไปก่อนหน้านี้แล้ว
คลิกเลือก Create new entry here ใต้ OU= ที่เลือก เช่นตัวอย่างนี้ให้คลิกที่ ou=people
ถาม Select a template for the creation process เลือก ( )default
ถาม Step 1 of 2: Container and ObjectClass(es) เลือก inetOrgPerson แล้วคลิก Proceed
ถาม Step 2 of 2: Specify attributes and values ใส่ฟิลด์ที่ Required
ตัวเลือก RDN ให้เลือก cn
cn: jaja
sn: Ja
displayName: Ja Ja
Email: jaja@example.com
givenName: Ja
Password: 123456 และเลือกการเข้ารหัสแบบ md5 (หรือ clear สำหรับตัวอย่างที่เพิ่มทาง command line)
User Name: jaja
แล้วคลิก Create Object
ถาม Do you want to create this entry? คลิก Commit
[การ debug เมื่อ server เปิด port LDAP และ LDAPS]
ให้ใช้ tcpdump ที่ network interface เช่น eth0
25.คำสั่งสำหรับ debug port LDAP ดังนี้
mama@ubuntu:~$ sudo tcpdump -n -i eth0 port 389 -X
จะเห็นข้อมูลอ่านได้และรหัสผ่าน
26.คำสั่งสำหรับ debug port LDAPS ดังนี้
mama@ubuntu:~$ sudo tcpdump -n -i eth0 port 636 -X
จะไม่เห็นรหัสผ่านเพราะข้อมูลอ่านไม่รู้เรื่อง
ตัวอย่างการนำไปใช้งานกับ joomla
[ตัวอย่างการตั้งค่า joomla ใช้ user จาก LDAP server]
1.เข้าหน้าเว็บ administrator
ตัวอย่าง http://iserver.example.com/testjoomla/administrator/
2.เมนู Extensions > Plug-in Manager > Authentication - LDAP
3.ตั้งค่า Basic Options
เมื่อ server ที่ใช้นั้นเป็น OpenLDAP
Host: ldap.example.com
Port: 389
LDAP V3 [ ] No [/] Yes
Negotiate TLS: [/] No [] Yes
Follow Referrals: [/] No [] Yes
Authorisation Method: Bind and Search
Base DN: DC=example,DC=com
หรือแบบเจาะจงกลุ่มย่อย
แบบที่ 1 Base DN: OU=people,DC=example,DC=com
แบบที่ 2 Base DN: OU=groups,DC=example,DC=com
แบบที่ 3 Base DN: OU=execs,OU=groups,DC=example,DC=com
แบบที่ 4 Base DN: OU=staffs,OU=groups,DC=example,DC=com
Search String: uid=[search]
User's DN: ปล่อยว่าง
Connect Username: ปล่อยว่าง
Connect Password: ปล่อยว่าง
Map: Full Name: displayName
Map: email: mail
Map: User ID: uid
[ตัวอย่างการตั้งค่า joomla ใช้ user จาก LDAPS server]
1.เข้าหน้าเว็บ administrator
ตัวอย่าง http://iserver.example.com/testjoomla/administrator/
2.เมนู Extensions > Plug-in Manager > Authentication - LDAP
3.ตั้งค่า Basic Options
เมื่อ server ที่ใช้นั้นเป็น OpenLDAP
Host: ldaps://ldap.example.com
Port: 636
LDAP V3 [ ] No [/] Yes
Negotiate TLS: [/] No [] Yes
Follow Referrals: [/] No [] Yes
Authorisation Method: Bind and Search
Base DN: DC=example,DC=com
หรือแบบเจาะจงกลุ่มย่อย
แบบที่ 1 Base DN: OU=people,DC=example,DC=com
แบบที่ 2 Base DN: OU=groups,DC=example,DC=com
แบบที่ 3 Base DN: OU=execs,OU=groups,DC=example,DC=com
แบบที่ 4 Base DN: OU=staffs,OU=groups,DC=example,DC=com
Search String: uid=[search]
User's DN: ปล่อยว่าง
Connect Username: ปล่อยว่าง
Connect Password: ปล่อยว่าง
Map: Full Name: displayName
Map: email: mail
Map: User ID: uid
[References:]
LDAP
(1)http://www.unixmen.com/openldap-installation-configuration-ubuntu-12-1013-0413-10-debian-67-2/
(2)https://www.digitalocean.com/community/articles/how-to-install-and-configure-a-basic-ldap-server-on-an-ubuntu-12-04-vps
LDAPS
(1)http://rogermoffatt.com/2011/08/24/ubuntu-openldap-with-ssltls/
(2)https://www.google.co.th/?gws_rd=cr&ei=5Y1HU-3rO8iF8gW6zYCYAw#q=slapd.d+configuration
(3)http://www.zytrax.com/books/ldap/ch6/#tls-overview
[หากพบ Bug ของ phpLdapAdmin ใน php 5.5]
กรณีที่พบ bug อันเนื่องมาจากการอัปเดต php จากเดิมใน ubuntu 12.04 ไปเป็น php 5.5 ใน ubuntu 14.04
เมื่อสร้าง user ผ่านหน้าเว็บ phpLdapAdmin, คุณอาจพบข้อความ error แบบนี้ใกล้ ๆ กับฟิลด์ password
"Error trying to get a non-existant value (appearance,password_hash)"
แก้ไขตามคำแนะนำจากเว็บนี้
https://lamlos.com/2014/08/24/phpldapadmin-password-error-with-php-5/
ที่บรรทัด 2469 ของไฟล์ /usr/share/phpldapadmin/lib/TemplateRender.php เปลี่ยนจาก
$default = $this->getServer()->getValue('appearance','password_hash');
เป็น
$default = $this->getServer()->getValue('appearance','password_hash_custom');
ได้รับการแก้ไขใน phpLdapAdmin เวอร์ชั่นล่าสุดแล้ว
[หากพบ Bug ของ phpLdapAdmin ใน php 7.2]
กรณีที่พบ bug อันเนื่องมาจากการอัปเดต php จากเดิมใน ubuntu 16.04 ไปเป็น php 7.2 ใน ubuntu 18.04
หน้าเว็บ phpLdapAdmin จะมีข้อความ
Deprecated: __autoload() is deprecated, use spl_autoload_register() instead in /usr/share/phpldapadmin/lib/functions.php on line 54 Deprecated: Function create_function() is deprecated in /usr/share/phpldapadmin/lib/functions.php on line 1083
แก้ไขตามคำแนะนำจากเว็บนี้
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890127