Sử dụng LDAP để xác thực MySQL?


15

Chúng tôi chạy một vài chục máy chủ MySQL khác nhau cho người dùng của chúng tôi. Chúng sử dụng phiên bản MySQL miễn phí / mã nguồn mở, không phải phiên bản thương mại. Quản lý mật khẩu tài khoản trên các máy chủ này là khó khăn.

Có plugin nào cho phép chúng tôi sử dụng LDAP để giúp quản lý các đặc quyền của MySQL không? Ít nhất, chúng tôi muốn có được một số tên người dùng và mật khẩu từ các máy chủ LDAP.

Chúng tôi đang sử dụng MySQL 5.1 và 5.5. Chúng tôi có thể sẵn sàng nâng cấp lên MySQL 5.6 nếu điều đó là bắt buộc để đạt được chức năng này.

Chúng tôi muốn mọi công cụ đều dựa trên CLI và không yêu cầu giao diện GUI hoặc web.

Câu trả lời:


14

Enterprise MySQL (phiên bản bạn trả cho Oracle để cấp phép) có mô-đun PAM cho phép xác thực LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

MariaDB (phiên bản tương thích nhị phân của MySQL do Monty phát triển) có sẵn mô-đun PAM mã nguồn mở cho nó: http://kb.askmonty.org/en/pam-authentication-plugin/

Tôi cũng không có kinh nghiệm - tôi chỉ trình bày chúng như những tính năng tôi đã nghe nói nhưng không được thử nghiệm hoặc sử dụng cho bản thân.




5

MySQL có một plugin xác thực PAM cho phép bạn sử dụng bất kỳ mô-đun PAM có sẵn nào để cung cấp dịch vụ xác thực. Có một pam_ldapmô-đun tương đối dễ cấu hình sẽ cho phép bạn làm những gì bạn muốn.

Tài liệu plugin bao gồm một ví dụ sử dụng LDAP .


Bạn có biết nếu điều này sẽ hỗ trợ Xác thực dựa trên Kerberos?
Saqib Ali

Tôi không có ý kiến. Tôi tin rằng một plugin GSSAPI tồn tại ít nhất cho mariadb, nhưng bản thân tôi không có bất kỳ trải nghiệm cá nhân nào với điều này.
larsks


2

Bạn có thể di chuyển bản in của mình sang Percona Server và sử dụng một trong hai cách này để kết nối MySQL với LDAP bằng PAM:

  • Plugin PAM đầy đủ được gọi là auth_pam. Plugin này sử dụng hộp thoại. Nó hỗ trợ đầy đủ giao thức PAM với giao tiếp tùy ý giữa máy khách và máy chủ.

  • PAM tương thích với Oracle được gọi là auth_pam_compat. Plugin này sử dụng mysql_clear_password, một phần của máy khách Oracle MySQL. Nó cũng có một số hạn chế, chẳng hạn như, nó chỉ hỗ trợ một mật khẩu đầu vào. Bạn phải sử dụng tùy chọn của Wikipedia -pv để truyền mật khẩu cho auth_pam_compat.

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

Chúng tôi đang sử dụng auth_pam_compatnhưng bạn phải nhớ rằng ứng dụng khách phải hỗ trợ Plugin xác thực phía máy khách Cleartext


1

Bây giờ vào cuối năm 2017, tôi có thể đề xuất điều này:

https://www.percona.com/doc/percona-server/LATEST/man Quản lý / pam_plugin.html

Plugin xác thực Percona PAM là một triển khai mã nguồn mở và miễn phí của plugin xác thực của MySQL. Plugin này hoạt động như một trung gian hòa giải giữa máy chủ MySQL, máy khách MySQL và ngăn xếp PAM. Plugin máy chủ yêu cầu xác thực từ ngăn xếp PAM, chuyển tiếp mọi yêu cầu và tin nhắn từ ngăn xếp PAM qua dây đến máy khách (trong văn bản rõ ràng) và đọc lại bất kỳ câu trả lời nào cho ngăn xếp PAM.

Nó KHÔNG được thử nghiệm, và tôi chưa bao giờ làm việc với nó, tôi muốn đề xuất nó vì nó có thể tốt.


"trong Cleartext" - vui lòng không sử dụng cái này.
h0tw1r3

@ h0tw1r3, tại sao? Thật ra tôi thấy nó không phù hợp để sử dụng, nhưng tôi rất thích nghe ý kiến ​​của bạn. Có sự thay thế nguồn mở nào cho plugin PAM thương mại không?
Mohammed Noureldin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.