Jestem zainteresowany najlepszymi praktykami korzystania z uwierzytelniania LDAP w aplikacjach internetowych opartych na języku Java. W mojej aplikacji nie chcę przechowywać nazwy użytkownika \ hasła, tylko niektóre identyfikatory. Ale chcę pobrać informacje dodatkowe (nazwisko, nazwisko), jeśli takie istnieją w katalogu LDAP.Najlepsze praktyki LDAP
Odpowiedz
Mój zespół używa LDAP jako standardowego sposobu uwierzytelniania. Zasadniczo traktujemy LDAP jak każdą inną bazę danych.
Aby dodać użytkownika do aplikacji, należy wybrać jedną z LDAP lub utworzyć ją w LDAP; po usunięciu użytkownika z aplikacji pozostaje on w LDAP, ale nie ma dostępu do aplikacji.
Zasadniczo musisz przechowywać lokalnie nazwę użytkownika LDAP. Możesz albo odczytać dane LDAP (e-mail, dział itp.) Z LDAP za każdym razem, albo pobrać je w jakiś sposób, ale czytanie z LDAP jest prawdopodobnie prostsze i mądrzejsze, ponieważ dane LDAP mogą się zmieniać. Oczywiście, jeśli potrzebujesz obszernie raportować lub wykorzystywać dane LDAP, możesz je pobrać z LDAP (ręcznie lub za pomocą zadania wsadowego).
Fajne jest to, że po wyłączeniu użytkownika w LDAP, jest on wyłączony we wszystkich aplikacjach jednocześnie; również użytkownik ma takie same poświadczenia we wszystkich aplikacjach. W środowisku korporacyjnym, z wieloma wewnętrznymi aplikacjami, jest to duży plus. Nie używaj protokołu LDAP dla użytkowników tylko dla jednej aplikacji; żadnych rzeczywistych korzyści w tym scenariuszu.
Jeśli masz więcej niż jedną aplikację sieciową i chcesz korzystać z uwierzytelniania LDAP, rozwiązanie z pojedynczym podpisem może być lepsze niż tworzenie własnego uwierzytelniania LDAP. CAS obsługuje uwierzytelnianie LDAP i może pobrać dane potrzebne do aplikacji.
W mojej uczelni faktycznie wdrożyliśmy CAS jako pojedyncze logowanie na naszym serwerze Active Directory. Używamy również CAS do uwierzytelniania naszych aplikacji J2EE i pracujemy nad wykorzystaniem CAS do uwierzytelniania naszych aplikacji PHP.
Używamy AD do przechowywania użytkowników dla domeny. Istnieją pewne OU na podstawie rodzaju użytkownika. Każdy użytkownik ma unikatowy identyfikator, który jest jego identyfikatorem ucznia/pracownika, dzięki czemu aplikacje mogą wykorzystywać to jako klucz podstawowy w swoich bazach danych. Posiadamy metodę autoryzacji opartą na bazie danych dla naszych aplikacji PHP. Autoryzacja aplikacji J2EE pochodzi z wartości w LDAP.
Powodzenia w aplikacji.
Czy chcesz, aby użytkownik wprowadzał tylko identyfikator, a następnie pobierał resztę informacji z LDAP? To całkiem proste.
- Tworzenie LdapInitial kontekst i połączyć się z LDAP
- Do wyszukiwania dla identyfikatora (powinien być przechowywany jako pewną wartość atrybutu) - przykład (& (userid = Jan) (objectClass = user)) - co oznacza "userid = Jan I objectClass = user"
- wynik wyszukiwania obiektów będzie zawierać wszystkie atrybuty (lub te Pytałeś)
Some LDAP implementacje (znaczące MS ActiveDirectory LDAP) nie pozwalają na łączenie się z anonimowym użytkownikiem. Aby móc się połączyć, musisz mieć techniczny identyfikator użytkownika/hasło.
Jak wspomniano powyżej, LDAP ma zwykle sens, gdy masz wiele aplikacji.
P.S. Aby poczuć, czym jest LDAP, spróbuj Apache Directory Studio.
Ogólne ogólne wskazówki na temat korzystania z protokołu LDAP można znaleźć na stronie "LDAP: Programming practices".
Link jest martwy, ale podsumowanie można znaleźć na stronie https://ff1959.wordpress.com/2011/10/27/ldap-programming-best-practices/ –
- 1. Najlepsze praktyki modelowania LDAP
- 2. CXF Wsdl2Java Najlepsze praktyki
- 3. DTO: najlepsze praktyki
- 4. Najlepsze praktyki ASP.NET Security
- 5. Transakcje NHibernate Najlepsze praktyki
- 6. Najlepsze praktyki ActionListener
- 7. Najlepsze praktyki asynchronicznego Webrequestu
- 8. Najlepsze praktyki scalania SVN
- 9. CSS Outline najlepsze praktyki
- 10. Najlepsze praktyki testowania integracji
- 11. IBOutlet najlepsze praktyki
- 12. Shared NSDateFormatter - najlepsze praktyki?
- 13. C#: Najlepsze praktyki Debug.Print
- 14. Swagger Najlepsze praktyki
- 15. Najlepsze praktyki fragmentów
- 16. Najlepsze praktyki wtrysku zależnego
- 17. Najlepsze praktyki LinqToSql
- 18. Najlepsze praktyki HttpRuntime.Cache
- 19. Android strings.xml Najlepsze praktyki?
- 20. Najlepsze praktyki CoreData
- 21. Najlepsze praktyki anulowania zadań:
- 22. OpenGL vào najlepsze praktyki
- 23. Najlepsze praktyki dotyczące debugowania
- 24. Gulpfile.js oglądać najlepsze praktyki
- 25. Standardy jQuery i najlepsze praktyki
- 26. Konwencje i najlepsze praktyki Jira
- 27. Rozszerzenia przeglądarki Firefox - najlepsze praktyki
- 28. Najlepsze praktyki dla wstrzykiwania zależności
- 29. Zarządzanie migracjami Rails - najlepsze praktyki?
- 30. Najlepsze praktyki przesyłania strumieniowego audio
Niezupełnie tak! W mojej bazie danych aplikacji chcę tylko identyfikator sklepu i powiązane DN z LDAP. A jeśli potrzebuję dodatkowych informacji o użytkowniku, mogę pobrać go z katalogu za pomocą DN –
Aż do ciebie, chociaż jest to duplikacja. Ale o co właściwie chodzi? –