Active Directory query - AD là gì?

 AD thực ra là DB chứa thông tin của người dùng, nó cũng sử dụng giao thức LDAP để lưu trữ information.


Bài viết này giúp bạn truy vấn thông tin người dùng bằng sử dụng LDAP proto. Từ linux hay bất kỳ APP nào hỗ trợ truy vấn bằng LDAP.

Trước tiên bãn sẽ cần 1 chương trình nhỏ tên là ADexplorer. URL: https://docs.microsoft.com/.../sysin.../downloads/adexplorer
Khi truy cập vào app này, bạn đăng nhập vào hệ thống AD của bạn và bắt đầu truy vấn cấu trúc của nó.
Mình bắt đầu từ 1 user Guest (vui lòng nhìn ở attachment)
Bạn sẽ thấy những thứ như sau.
  • Tên chính thức trên AD (distinguishedName): CN=Guest,CN=Users,DC=<domain>,DC=biz
  • Tên đăng nhập (sAMAccountName): Guest
  • Là member của group (memberOf): CN=Guest,CN=Users,DC=<domain>,DC=biz
Các attribute khác tương tự như vậy.
Cách sử dụng trên LDAP.
Dưới đây là mình dùng với IMAP(dovecot) để cho người dùng truy xuất vào mail local dùng mail từ AD.
uris = ldaps://<ad server>.biz
ldap_version = 3
auth_bind = yes
dn = cn=Ldap Searcher,cn=Users,dc=<domain>,dc=biz
dnpass = <password>
base = dc=<domain>,dc=biz
scope = subtree
user_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl=66050)))
user_attrs = =home=/home/vmail/data/%Ld/%Ln
pass_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl=66050)))
pass_attrs = userPassword=password
Giải thích:
  • uris -> ad server của bạn, mình dùng SSL nên ldap sẽ thành ldaps
  • ldap_version -> version connection của ldap, 3 là ok
  • auth_bind -> truy cập ad bằng user.
  • dn -> user sẽ login vào AD DB
  • dnpass -> pass của user trên
  • base -> vị trí mà bạn muốn bắt đầu tìm kiếm, tốt nhất nên OU để lấy thông tin chính xác hơn, nếu là OU thì sẽ đổi thành ou=<OU>,dc=<domain>,dc=<domain>
  • scope -> cho phép tìm kiếm nhiều tầng sâu hơn
  • user_filter -> tìm user với giá trị tìm kiếm là mail
  • user_attrs -> set vị trí mail folder của user muốn đăng nhập, có nhiều biến để bạn quan tâm
  • pass_filter -> qurey password của mail.
  • pass_attrs -> ldap ko có biến userPassword mà chỉ có password nên cái này dùng để gán password từ LDAP -> AD
Khi hội đủ các yếu tố trên thì user sẽ được xác thực vào access vào IMAP, tương tự cho Postfix và các LDAP service khác.
Cách thức Query.
  • (&(attr1)(attr2)) -> thỏa attribute 1 và 2
  • (|(attr1)(attr2)) -> thỏa 1 trong 2 attribute
  • (!(attr1)) -> giá trị ngược với hiện tại.
VD:
  • &(mail=%u)(objectClass=person) -> mail phải là "giá trị đăng nhập" và người đăng nhập phải là 1 user
  • (!(userAccountControl=66050)) -> user khi đăng nhập ko bị disable.
Theo: Nha Pham

Nhận xét

Bài đăng phổ biến từ blog này

DFS trong Unifi có ý nghĩa là gì?

Thông số Clock Rate là gì và tại sao phải đặt tham số Clock Rate khi kết nối Serial router Cisco