Có hai cách để xác thực người dùng sử dụng Django Auth LDAPDjango Auth LDAP - Bind trực tiếp sử dụng sAMAccountName
- Tìm kiếm/Bind và
- Direct Bind.
Điều đầu tiên liên quan đến việc kết nối với máy chủ LDAP ẩn danh hoặc với tài khoản cố định và tìm kiếm tên phân biệt của người dùng xác thực. Sau đó, chúng tôi có thể cố gắng liên kết lại với mật khẩu của người dùng.
Phương pháp thứ hai là lấy DN của người dùng từ tên người dùng của anh ấy và cố gắng ràng buộc trực tiếp với người dùng.
Tôi muốn có thể thực hiện liên kết trực tiếp bằng userid (sAMAccountName) và mật khẩu của người dùng đang cố truy cập vào ứng dụng. Xin vui lòng cho tôi biết nếu có một cách để đạt được điều này? Hiện tại, tôi dường như không thể thực hiện công việc này do vấn đề được giải thích bên dưới.
Trong trường hợp của tôi, các DN của người dùng trong LDAP là định dạng sau
**'CN=Steven Jones,OU=Users,OU=Central,OU=US,DC=client,DC=corp'**
này về cơ bản dịch để 'CN = FirstName LastName, OU = Users, OU = Trung ương, OU = US, DC = khách hàng, DC = corp'
Đây là ngăn chặn tôi từ việc sử dụng trực tiếp Bind như sAMAccountName của người sử dụng được sjones và đây là thông số tương ứng với tên người dùng (% người dùng) và tôi không thể tìm ra cách để tạo khung thích hợp AUTH_LDAP_USER_DN_TEMPLAT E để lấy DN của người dùng sử dụng.
Do vấn đề giải thích ở trên, tôi đang sử dụng Tìm kiếm/Bind cho bây giờ nhưng điều này đòi hỏi tôi phải có một chứng chỉ người dùng cố định được quy định tại AUTH_LDAP_BIND_DN và AUTH_LDAP_BIND_PASSWORD.
Đây là hiện tại của tôi settings.py cấu hình
AUTH_LDAP_SERVER_URI = "ldap://10.5.120.161:389"
AUTH_LDAP_BIND_DN='CN=Steven Jones,OU=Users,OU=Central,OU=US,DC=client,DC=corp'
AUTH_LDAP_BIND_PASSWORD='fga.1234'
#AUTH_LDAP_USER_DN_TEMPLATE = 'CN=%(user)s,OU=Appl Groups,OU=Central,OU=US,DC=client,DC=corp'
AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
LDAPSearch("OU=Users, OU=Central,OU=US,DC=client,DC=corp",ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"),
LDAPSearch("OU=Users,OU=Regional,OU=Locales,OU=US,DC=client,DC=corp",ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"),
)
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn","email":"mail"}
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("CN=GG_BusinessApp_US,OU=Appl Groups,OU=Central,OU=US,DC=client,DC=corp",ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_REQUIRE_GROUP = 'CN=GG_BusinessApp_US,OU=Appl Groups,OU=Central,OU=US,DC=client,DC=corp'
Mong cho một số hướng dẫn từ các folks tuyệt vời tại đây.
Cảm ơn @amethystdragon Có vẻ như điều này sẽ giải quyết được vấn đề của tôi. Tôi sẽ thử ngay thôi. – Guddu