Mam pewne problemy ze zrozumieniem LDAP. Gdy używam serwera Active Directory, mogę powiązać się z nazwą użytkownika @ domena i hasłem.
Kiedy używam ApacheDS, muszę nadać mu pełną nazwę DN użytkownika i hasło.
Mam następujące pytania:
- Jak mogę znaleźć pełny dn użytkownika na serwerze ApacheDS z anonimowe przywileje i tylko znajomość nazwy użytkownika, domeny (i hasło)?
- Czy to jest niedopuszczalne? Czy serwer ApacheDS został stworzony jako
- alternatywa dla Active Directory?
Odpowiedzi:
1 dla odpowiedzi № 1Zasadniczo uwierzytelnianie LDAP odbywa się w dwóch etapach:
- Mapuj dany unikalny identyfikator użytkownika (uid) na jego nazwę wyróżniającą, używając operacji wyszukiwania z takim filtrem
(&(objectClass=user)(uid=%s))
- Użyj operacji wiązania z tym dn, aby uwierzytelnić się na serwerze LDAP.
Usługa Active Directory jest wyposażona w wygodną funkcję: możesz powiązać za pomocą kilku obsługiwanych identyfikatorów, a AD wykona wewnętrznie odwzorowanie.
ApacheDS nie jest zastępcą plug-and-play dla AD, ale jest rozszerzalny. Programista Java może z łatwością zapisać przechwytywacz uwierzytelniający, który zapewnia to samo mapowanie wewnętrzne co AD.
1 dla odpowiedzi nr 2
Marabu powiedział, że możesz symulować uwierzytelnianie za pomocą wyszukiwania w katalogu przed wykonaniem wiązania.
Możesz także wyszukać uwierzytelnianie SASL, które zapewnia inne sposoby uwierzytelniania.
Oto lista mechanizmu SASL obsługiwanego przez ApacheDS: http://directory.apache.org/apacheds/advanced-ug/4.1.2-sasl-authn.html