2013-04-27 67 views
38

Có cách nào dễ dàng để kiểm tra thông tin đăng nhập của người dùng đối với một phiên bản LDAP không? Tôi biết làm thế nào để viết một chương trình Java mà sẽ lấy 'User DN' và mật khẩu, và kiểm tra nó chống lại trường hợp LDAP. Tuy nhiên có cách nào dễ dàng hơn không? Đặc biệt là một phương thức không chỉ xác thực người dùng, mà còn liệt kê tất cả các vai trò của người dùng.Cách dễ dàng để kiểm tra thông tin xác thực của người dùng LDAP

Trả lời

1

Xác thực được thực hiện thông qua lệnh ldap_bind đơn giản nhận DN và mật khẩu người dùng. Người dùng được xác thực khi liên kết thành công. Thông thường bạn sẽ nhận được người dùng DN thông qua một ldap_search dựa trên người dùng uid hoặc địa chỉ email.

Việc nhận vai trò của người dùng khác với vai trò là một ldap_search và phụ thuộc vào vị trí và cách thức vai trò được lưu trữ trong ldap. Nhưng bạn có thể truy xuất các vai trò trong quá trình lap_search được sử dụng để tìm DN của người dùng.

+0

Cảm ơn câu trả lời của bạn. Những gì tôi thực sự tìm kiếm là một công cụ mà tôi có thể gõ DN, và mật khẩu của người dùng, và công cụ sẽ kiểm tra và xem liệu người dùng có thể được xác thực với các thông tin đăng nhập đó hay không. Đây là một công cụ rất dễ phát triển; vì vậy tôi đã hy vọng rằng đã có một công cụ như vậy. – user1888243

+0

Công cụ này được gọi là ldap_bind. – EJP

+0

Unix/Linux cung cấp 'ldapsearch' (chủ yếu từ openLDAP), với các tùy chọn thích hợp bạn không thấy mật khẩu trong 'history' của 'process list' –

11

Sử dụng ldapsearch để xác thực. Phiên bản opends có thể được sử dụng như sau:

ldapsearch --hostname hostname --port port \ 
    --bindDN userdn --bindPassword password \ 
    --baseDN '' --searchScope base 'objectClass=*' 1.1 
+0

Bằng cách này, mật khẩu có thể được xem trong cleartext trong danh sách quy trình? – Kiril

+2

@Kiril Tôi nghĩ rằng thay thế '--bindPasswrd password' bằng' -W' (nhắc nhập mật khẩu) sẽ khắc phục được sự cố. – ibic

8

Bạn nên kiểm tra trình duyệt LDAP Softerra của (phiên bản miễn phí của LDAP Administrator), có thể được tải về tại đây:

http://www.ldapbrowser.com/download.htm

tôi đã sử dụng ứng dụng này rộng rãi cho tất cả các thư mục Active Directory, OpenLDAP và Novell eDirectory của tôi, và nó hoàn toàn vô giá.

Nếu bạn chỉ muốn kiểm tra xem kết hợp tên người dùng \ mật khẩu có hoạt động hay không, tất cả những gì bạn cần làm là tạo "Hồ sơ" cho máy chủ LDAP và sau đó nhập thông tin xác thực trong Bước 3 của quá trình tạo:

enter image description here

Bằng cách nhấp vào "Hoàn tất", bạn sẽ thực hiện liên kết tới máy chủ bằng thông tin xác thực, cơ chế xác thực và mật khẩu bạn đã chỉ định. Bạn sẽ được nhắc nếu ràng buộc không hoạt động.

+1

Điều này không ** không ** làm việc: Điều này sẽ chỉ kiểm tra xem người dùng đã chỉ định có quyền liệt kê thông tin người dùng từ LDAP không, ví dụ như không được cấp cho Active Directory. Trong trường hợp đó, xác thực có thể vẫn không thành công trong khi thông tin đăng nhập của người dùng hợp lệ. – Sebazzz

+0

No.Lệnh này đưa ra một ràng buộc thư mục đầy đủ, giống như một nỗ lực đăng nhập chuẩn. Nếu bạn không có quyền xem thư mục cơ sở, bạn sẽ chỉ thấy một màn hình trống. – X3074861X

+0

Câu trả lời hay! Không biết ứng dụng đó. Cảm ơn bạn rất nhiều! – ClownCoder

42

ldapwhoami -vvv -h <hostname> -p <port> -D <binddn> -x -w <passwd>, nơi binddn là DN của người có chứng chỉ bạn đang chứng thực.

Khi thành công (nghĩa là thông tin xác thực hợp lệ), bạn nhận được Result: Success (0). Khi thất bại, bạn nhận được ldap_bind: Invalid credentials (49).

Các vấn đề liên quan