Xác thực LDAP/Active Directory
Tích hợp Odoo với hệ thống quản lý người dùng tập trung LDAP/Active Directory
Tổng quan
Module auth_ldap cho phép người dùng đăng nhập Odoo bằng tài khoản LDAP/Active Directory thay vì mật khẩu Odoo riêng, giúp quản lý tập trung và đồng bộ mật khẩu.
Hỗ trợ đầy đủ Active Directory (Windows Server), OpenLDAP, FreeIPA và các LDAP server khác với kết nối TLS/STARTTLS bảo mật.
Tính năng chính
Điểm chính
• Xác thực qua LDAP/Active Directory - Đăng nhập bằng tài khoản domain thay vì mật khẩu Odoo
• Tự động tạo user - User Odoo được tạo tự động khi đăng nhập lần đầu
• Nhiều LDAP server - Hỗ trợ cấu hình nhiều LDAP server cho mỗi công ty
• Đổi mật khẩu trên LDAP - Cho phép user đổi mật khẩu trực tiếp trên LDAP server
• Kết nối TLS/STARTTLS - Mã hóa kết nối để bảo vệ thông tin đăng nhập
• Template user - Copy quyền từ user mẫu cho user mới
• LDAP filter linh hoạt - Tùy chỉnh bộ lọc tìm user theo nhu cầu
Yêu cầu hệ thống
Module cần thư viện python-ldap để kết nối LDAP server.
Các bước thực hiện
1. Cài đặt thư viện: sudo apt-get install python3-ldap (Ubuntu/Debian) hoặc pip install python-ldap
2. Kích hoạt module: Vào Apps, tìm "Authentication via LDAP", nhấn Install
3. Khởi động lại Odoo sau khi cài đặt module
Cấu hình LDAP server
Các bước thực hiện
1. Vào Settings → General Settings, cuộn xuống phần LDAP Authentication
2. Nhấn Add a line để thêm cấu hình LDAP mới
3. Điền thông tin LDAP server: Server address (ldap.company.com), Port (389 cho LDAP, 636 cho LDAPS)
4. Bật Use TLS để mã hóa kết nối (khuyến nghị)
5. Cấu hình LDAP Bind DN (tài khoản để truy vấn LDAP): cn=admin,dc=company,dc=com hoặc để trống nếu cho phép anonymous bind
6. Nhập LDAP Password cho Bind DN
7. Cấu hình LDAP Base (DN gốc để tìm user): ou=Users,dc=company,dc=com
8. Thiết lập LDAP Filter để tìm user, dùng %s cho login. Ví dụ AD: (&(objectCategory=person)(objectClass=user)(sAMAccountName=%s))
9. Chọn Template User để copy quyền cho user mới
10. Bật Create User để tự động tạo user khi đăng nhập lần đầu
11. Nhấn Test Connection để kiểm tra kết nối
12. Nhấn Save để lưu cấu hình
Ví dụ cấu hình Active Directory
| Fields | Trường dữ liệu | Description |
|---|---|---|
| LDAP Server | ad.company.com | Địa chỉ Active Directory server |
| LDAP Port | 389 | Port LDAP (389) hoặc LDAPS (636) |
| Use TLS | Yes | Bật STARTTLS để mã hóa |
| LDAP Bind DN | cn=odoo_service,ou=Service Accounts,dc=company,dc=com | Tài khoản service để truy vấn AD |
| LDAP Base | ou=Employees,dc=company,dc=com | DN gốc chứa user |
| LDAP Filter | (&(objectCategory=person)(objectClass=user)(sAMAccountName=%s)) | Bộ lọc tìm user AD |
| Template User | Admin | User mẫu để copy quyền |
| Create User | Yes | Tự động tạo user mới |
Ví dụ cấu hình OpenLDAP
| Fields | Trường dữ liệu | Description |
|---|---|---|
| LDAP Server | ldap.company.com | Địa chỉ OpenLDAP server |
| LDAP Port | 389 | Port LDAP |
| Use TLS | Yes | Bật STARTTLS |
| LDAP Bind DN | cn=admin,dc=company,dc=com | Admin DN |
| LDAP Base | ou=people,dc=company,dc=com | DN chứa user |
| LDAP Filter | (uid=%s) | Tìm theo uid |
| Template User | Admin | User mẫu |
| Create User | Yes | Tự động tạo |
Quy trình đăng nhập LDAP
Các bước thực hiện
1. User nhập username và password vào form đăng nhập Odoo
2. Odoo thử xác thực với LDAP server theo thứ tự Sequence
3. LDAP server kiểm tra username/password có hợp lệ không
4. Nếu hợp lệ và Create User bật: Odoo tự động tạo user mới từ thông tin LDAP
5. User được đăng nhập vào Odoo với quyền từ Template User
6. Lần đăng nhập sau: Odoo xác thực lại với LDAP, không cần tạo user mới
Khắc phục sự cố
Các lỗi thường gặp
| Lỗi | Nguyên nhân | Giải pháp |
|---|---|---|
| Connection Test Failed | Sai địa chỉ LDAP server, firewall chặn port | Kiểm tra địa chỉ server, mở port 389/636, test telnet |
| Invalid credentials | Sai LDAP Bind DN hoặc password | Kiểm tra lại Bind DN và password, test bằng ldapsearch |
| User not found | Sai LDAP Base hoặc LDAP Filter | Kiểm tra Base DN có chứa user không, test filter bằng ldapsearch |
| TLS error | Certificate không hợp lệ, server không hỗ trợ STARTTLS | Kiểm tra certificate, thử tắt TLS để test, cài đặt CA cert |
| User created but no access | Template User không có quyền phù hợp | Kiểm tra quyền của Template User, cấp quyền cần thiết |
| Multiple LDAP servers conflict | Sequence không đúng, user tồn tại trên nhiều server | Điều chỉnh Sequence, đảm bảo user chỉ trên 1 server |
Best practices
Điểm chính
• Luôn bật TLS/STARTTLS để mã hóa kết nối, bảo vệ mật khẩu
• Tạo tài khoản service riêng cho Odoo, không dùng admin account
• Giới hạn quyền của Bind DN chỉ đọc user, không cho phép ghi
• Cấu hình LDAP Filter chính xác để tránh tìm nhầm user
• Test kỹ trước khi áp dụng cho toàn bộ công ty
• Backup cấu hình LDAP trước khi thay đổi
• Theo dõi log Odoo để phát hiện lỗi xác thực
• Cấu hình Template User với quyền tối thiểu cần thiết