Tôi đang gặp sự cố với mô-đun xác thực LDAP django-auth-ldap. Tôi đang sử dụng cấu hình mẫu từ trang web này: http://packages.python.org/django-auth-ldap/Tạo người dùng trong LDAP bằng cách sử dụng Django
Tôi muốn làm hai việc:
1) Authentificate chống LDAP: Đối với thời điểm này, cơ sở dữ liệu LDAP của tôi là trống rỗng, tôi không thêm bất cứ điều gì với nó, trên thực tế tôi không biết làm thế nào để. Tuy nhiên, tôi vẫn có thể đăng nhập vào trang web dựa trên django của tôi với thông tin đăng nhập/mật khẩu cũ của tôi được lưu trữ trong cơ sở dữ liệu django của tôi. Tại sao vậy? Không nên bỏ qua điều này, thay vào đó, quy trình đăng nhập có xảy ra với người dùng/mật khẩu LDAP không? Nói cách khác, nếu cơ sở dữ liệu LDAP của tôi trống, không phải mỗi lần đăng nhập của tôi không thành công? Tuy nhiên, nó không, tôi có ấn tượng rằng django hoàn toàn bỏ qua các mô-đun django-auth-ldap.
2) Đồng bộ hóa LDAP với django (và không phải theo cách khác) Tôi không muốn sử dụng cơ sở dữ liệu người dùng hiện có để xác thực lại. Tôi muốn để có thể tạo người dùng mới trong Django và tuyên truyền những người dùng này để LDAP để họ có thể được chia sẻ bởi các dịch vụ khác, trong trường hợp của tôi, một máy chủ openfire. Làm thế nào để bạn làm điều đó với django-auth-ldap?
Đây là copy/paste các cấu hình của tôi:
# Baseline configuration.
AUTH_LDAP_SERVER_URI = "127.0.0.1"
AUTH_LDAP_BIND_DN = "cn=admin,dc=nodomain"
AUTH_LDAP_BIND_PASSWORD = "admin"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=nodomain",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
# Set up the basic group parameters.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=django,ou=groups,dc=nodomain",
ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")
# Only users in this group can log in.
AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=nodomain"
# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
"employee_number": "employeeNumber"
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=active,ou=django,ou=groups,dc=nodomain",
"is_staff": "cn=staff,ou=django,ou=groups,dc=nodomain",
"is_superuser": "cn=superuser,ou=django,ou=groups,dc=nodomain"
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_FIND_GROUP_PERMS = True
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
# Keep ModelBackend around for per-user permissions and maybe a local
# superuser.
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
Xin lỗi tôi không biết nhiều về LDAP, tôi chỉ cần cài đặt nó sáng nay vì vậy câu hỏi của tôi nghe có vẻ ngây thơ. Tôi chỉ cần một cơ sở người dùng tập trung mà tôi sẽ có thể cập nhật và chia sẻ giữa một số máy chủ.
Cảm ơn rất nhiều sự giúp đỡ của bạn.