ใช้ LDAP สำหรับการรับรองความถูกต้องของ MySQL?


15

เราใช้เซิร์ฟเวอร์ MySQL ที่แตกต่างกันสองสามโหลสำหรับผู้ใช้ของเรา สิ่งเหล่านี้ใช้ MySQL รุ่นฟรี / โอเพนซอร์ซไม่ใช่เวอร์ชันเชิงพาณิชย์ การจัดการรหัสผ่านของบัญชีบนเซิร์ฟเวอร์เหล่านี้เป็นสิ่งที่เจ็บปวด

มีปลั๊กอินใดบ้างที่จะอนุญาตให้เราใช้ LDAP เพื่อช่วยจัดการสิทธิพิเศษของ MySQL? อย่างน้อยที่สุดเราต้องการได้รับชื่อผู้ใช้และรหัสผ่านบางส่วนจากเซิร์ฟเวอร์ LDAP

เราใช้ MySQL 5.1 และ 5.5 เราอาจเต็มใจอัพเกรดเป็น MySQL 5.6 หากจำเป็นเพื่อให้บรรลุการทำงานนี้

เราต้องการให้เครื่องมือใด ๆ เป็นพื้นฐานของ CLI และไม่ต้องการ GUI หรือเว็บอินเตอร์เฟส

คำตอบ:


14

Enterprise MySQL (เวอร์ชันที่คุณชำระเงินให้กับ Oracle เพื่อให้สิทธิ์ใช้งาน) มีโมดูล PAM ที่อนุญาตให้ใช้การตรวจสอบสิทธิ์ LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

MariaDB (รุ่นที่รองรับไบนารีของ MySQL ที่พัฒนาโดย Monty) มีโมดูล PAM แบบโอเพนซอร์สที่ใช้ได้สำหรับมัน: http://kb.askmonty.org/en/pam-authentication-plugin/

ฉันไม่ได้มีประสบการณ์กับทั้งสอง - ฉันนำเสนอพวกเขาเป็นคุณสมบัติที่ฉันเคยได้ยิน แต่ไม่ได้ทดสอบหรือใช้ตัวเอง


8

คุณสามารถใช้auth_ldapปลั๊กอินที่จัดทำโดย Infoscope Hellas LP ภายใต้ GPL

ก็สามารถดาวน์โหลดได้จาก SourceForge ที่นี่

( โฮมเพจ )

ปลั๊กอินยังคงเป็นรุ่นเบต้าและใช้งานได้กับการติดตั้ง UNIX เท่านั้น



5

MySQL มีปลั๊กอินการรับรองความถูกต้อง PAMที่จะช่วยให้คุณใช้โมดูล PAM ที่มีอยู่เพื่อให้บริการการตรวจสอบความถูกต้อง มีpam_ldapโมดูลที่ค่อนข้างง่ายต่อการกำหนดค่าที่ควรอนุญาตให้คุณทำในสิ่งที่คุณต้องการ

เอกสารปลั๊กอินรวมถึงตัวอย่างการใช้ LDAP


คุณรู้หรือไม่ว่าสิ่งนี้จะรองรับการพิสูจน์ตัวตนจาก Kerberos หรือไม่?
Saqib Ali

ฉันไม่รู้. ฉันเชื่อว่าปลั๊กอิน GSSAPI มีอยู่อย่างน้อยสำหรับ mariadb แต่ฉันไม่มีประสบการณ์ส่วนตัวด้วยตัวเอง
larsks


2

คุณสามารถโอนย้าย instalations ของคุณไปยังเซิร์ฟเวอร์ Percona และใช้หนึ่งในสองวิธีนี้เพื่อเชื่อมต่อ MySQL กับ LDAP โดย PAM:

  • ปลั๊กอิน PAM แบบเต็มเรียกว่า auth_pam ปลั๊กอินนี้ใช้ dialog.so รองรับโปรโตคอล PAM อย่างเต็มที่พร้อมการสื่อสารระหว่างไคลเอ็นต์และเซิร์ฟเวอร์โดยพลการ

  • PAM ที่เข้ากันได้กับ Oracle เรียกว่า auth_pam_compat ปลั๊กอินนี้ใช้ mysql_clear_password ซึ่งเป็นส่วนหนึ่งของไคลเอนต์ Oracle MySQL นอกจากนี้ยังมีข้อ จำกัด บางประการเช่นสนับสนุนรหัสผ่านเดียวเท่านั้น คุณต้องใช้ตัวเลือก“ -p” เพื่อส่งรหัสผ่านไปที่ auth_pam_compat

http://www.percona.com/doc/percona-pam-for-mysql/intro.html

เรากำลังใช้งานอยู่auth_pam_compatแต่คุณต้องจำไว้ว่าไคลเอนต์นั้นต้องรองรับปลั๊กอินการพิสูจน์ตัวตนฝั่งไคลเอ็นต์ของ Cleartext


1

ตอนนี้ภายในสิ้นปี 2560 ฉันสามารถแนะนำสิ่งนี้:

https://www.percona.com/doc/percona-server/LATEST/management/pam_plugin.html

Percona PAM Authentication Plugin เป็นปลั๊กอินฟรีสำหรับการพิสูจน์ตัวตนของ MySQL ปลั๊กอินนี้ทำหน้าที่เป็นสื่อกลางระหว่างเซิร์ฟเวอร์ MySQL ไคลเอนต์ MySQL และสแต็ก PAM ปลั๊กอินเซิร์ฟเวอร์ขอการรับรองความถูกต้องจากสแต็ค PAM ส่งต่อการร้องขอและข้อความใด ๆ จากสแต็ค PAM ผ่านสายไปยังไคลเอนต์ (ใน cleartext) และอ่านกลับคำตอบใด ๆ สำหรับสแต็ค PAM

มันไม่ได้ทำการทดสอบและฉันไม่เคยทำงานกับมันเลยฉันอยากจะแนะนำเพราะมันอาจจะดี


"เป็นข้อความธรรมดา" - โปรดอย่าใช้สิ่งนี้
h0tw1r3

@ h0tw1r3 ทำไม ِ จริงๆแล้วฉันเห็นว่ามันไม่เหมาะที่จะใช้ แต่ฉันสนใจที่จะรับฟังความคิดเห็นของคุณ มีทางเลือกโอเพนซอร์สสำหรับปลั๊กอิน PAM เชิงพาณิชย์หรือไม่
Mohammed Noureldin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.