Istnieją dwa sposoby, aby uwierzytelnić użytkownika za pomocą Django auth LDAPDjango uwierzytelniania LDAP - Bezpośrednie Bind użyciu sAMAccountName
- Search/bind i
- bezpośredni oprawę.
Pierwszy polega na łączeniu się z serwerem LDAP anonimowo lub ze stałym kontem i wyszukiwaniem nazwy wyróżniającej użytkownika uwierzytelniającego. Następnie możemy spróbować ponownie połączyć się z hasłem użytkownika.
Druga metoda polega na wyprowadzeniu nazwy DN użytkownika z jego nazwy użytkownika i podjęciu próby powiązania jako użytkownika bezpośrednio.
Chcę móc wykonać bezpośrednie powiązanie przy użyciu identyfikatora użytkownika (sAMAccountName) i hasła użytkownika, który próbuje uzyskać dostęp do aplikacji. Proszę dać mi znać, czy istnieje sposób, aby to osiągnąć? W tej chwili nie mogę wykonać tej pracy z powodu opisanego poniżej problemu.
W moim przypadku, DN użytkowników w LDAP ma następujący format
**'CN=Steven Jones,OU=Users,OU=Central,OU=US,DC=client,DC=corp'**
Zasadniczo przekłada się na „CN = Imię Nazwisko, OU = Users, OU = Centralny, OU = US, DC = klient, DC = corp”
to pozwala mi z użyciem bezpośredniego Bind jako samAccountName użytkownika jest sjones i jest to parametr, który odpowiada nazwie użytkownika (% użytkowników) i nie mogę wymyślić sposób na oprawienie właściwego AUTH_LDAP_USER_DN_TEMPLAT E, aby uzyskać DN nazwy użytkownika za pomocą.
W związku z powyższym wyjaśnił problem, używam Search/bind do teraz, ale to wymaga mnie mieć stałą poświadczeń użytkownik może zostać określona w AUTH_LDAP_BIND_DN i AUTH_LDAP_BIND_PASSWORD.
Oto mój obecny settings.py konfiguracja
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'
Szukasz jakiegoś wskazówek od wspaniałych ludzi tutaj do przodu.
Dzięki @amethystdragon Wygląda, że to rozwiąże mój problem. Wkrótce spróbuję. – Guddu