PDA

Zobacz pełną wersję : Konfiguracja LDAP Joomla 1.5.19



m_z
30-08-2010, 15:57
Witam wszystkich.

Mam do zrealizowania następujące zadanie: autoryzacja użytkowników w CMS-ie przy użyciu LDAP-a. W wersji 1.5.19 jest wbudowany moduł do LDAP-a. Próbowałem go skonfigurować i zalogować się ale niestety zakończyło się to niepowodzeniem.
Użytkownicy utworzeni w Active Directory znajdują się w następującej strukturze:
ou=city
ou=department
ou=Users
dc=country
dc=company_name
dc=group

Przykładowy login do konta: kowalskij@country.company_name.group
Testowałem zwykłe połączenia w php i łączę się z AD ale w joomli nie mogę się połączyć.
W Internecie znalazłem kilka porad ale nie rozwiązały mojego problemu.

Z poziomu administracyjnego aktywowałem moduł "Uwierzytelnienie - LDAP=2"] ("http://localhost/joomla/administrator/index.php?option=com_plugins&view=plugin&client=site&task=edit&cid[)" oraz wyłączyłem moduł "Uwierzytelnianie - Joomla". Próbowałem także zmienić kolejność modułów autoryzacji (1 LDAP, 2 Joomla).

Moja konfiguracja modułu LDAP na chwilę obecną wygląda następująco:

Serwer ldaps://XXX.XXX.XXX.XXX => tu mam adres IP
Port 389
LDAP V3 Tak
Negocjacja TSL Tak
Podążaj za odwołaniami Nie
Metoda autoryzacji Połącz i szukaj
Podstawowa DN ou=Users,ou=department,ou=city,dc=country,dc=compa ny_name,dc=group
Szukaj wyrażenia cn=[search],ou=Users,ou=department,ou=city,dc=country,dc=comp any_name,dc=group
DN użytkownika [username]@country.company_name.group

Użytkownik połączenia puste
Hasło połączenia puste

Mapuj: Pełna nazwa displayName
Mapuj: Adres poczty mail
Mapuj: ID Użytkownika cn


Czy ktoś może mi pomóc uporać się z tym problemem ?

Z góry dziękuję :)
Marcin.

moje
30-08-2010, 16:13
Polecam docs.joomla.org + LDAp jest tam mnóstwo wyników, nawet linki do dodatkowych narzędzi, tutoriali itp.

m_z
03-09-2010, 11:33
Przegrzebałem się przez dokumentację, skonfigurowałem OpenLDAP-a i Joomlę zgodnie z instrukcjami i przy próbie dodania użytkownika pojawia się następujący błąd:
"Failed to create user: Undefined attribute type "
Ktoś wie dlaczego nie dodaje użytkownika poprzez LDAP-a ? W bazie użytkownik jest tworzony.

Mam też pytanie odnośnie zasugerowanej dokumentacji: plugin plgUserLDAP tworzy użytkownika w bazie i w strukturze LDAP => a jeżeli mam użytkowników w strukturze to muszę dodać ich tylko do bazy ? Czy do takiej operacji wystarczy podstawowy plugin zakładania użytkowników ?

Pozdrawiam
Marcin

m_z
30-09-2010, 15:52
Po miesiącu walki udało się skonfigurować Joomlę tak aby autoryzacja odbywała się poprzez LDAP-a. Zanim opiszę jak to zrobiłem, krótki opis jak to funkcjonuje w moim przypadku.
W firmie korzystamy z Active Directory (AD). Założenie było takie aby autoryzacja odbywała się za pomocą kont domenowych bez konieczności tworzenia nowych użytkowników.
Rozwiązanie:

1) Z strony http://www.joomla.pl/index.php/pobierz-joomla.html pobierz polskie wydanie Joomli! (w moim przypadku była to wersja 1.5.19)

2) Zainstaluj Joomlę! zgodnie z instrukcją pomijając wczytywanie domyślnych danych !!!

3) Pobierz następujące pluginy:

a) Library Manager for Joomla! (com_jlibman.tgz) z strony http://extensions.joomla.org/extensions/core-enhancements/installers/3299
b) JAuthTools (pkg_jauthtools_core.tgz) z strony http://joomlacode.org/gf/project/jauthtools/frs/
c) Advanced LDAP Authentication (plgAuthenticationAdvLDAP.tgz) z strony http://joomlacode.org/gf/project/jauthtools/frs/
d) User Source Package (pkg_jauthtools_usersource.tgz) z strony http://joomlacode.org/gf/project/jauthtools/frs/
e) JDiagnostic z strony (jdiagnostic.tgz) http://extensions.joomla.org/extensions/administration/admin-performance/7014

4) Przed rozpoczęciem instalacji należy rozpakować następujące pliki (zawierają w sobie pluginy):

- pkg_jauthtools_core.tgz (po rozpakowaniu powinniśmy zobaczyć pliki: lib_jauthtools_helper.tgz, lib_jauthtools_sso.tgz, lib_jauthtools_usersource.tgz)
- pkg_jauthtools_usersource.tgz (po rozpakowaniu powinniśmy zobaczyć pliki: plgSystemSync.tgz, plgUserSourceLDAP.tgz)

5) Instalujemy pluginy wg podpunktów w punkcie 3. UWAGA !!! - nie włączamy ich jeszcze

6) W panelu administracyjnym wybieramy z menu Komponenty => JDiagnostic. Pojawi się lista dostępnych opcji jak na poniższym rysunku
3092
a) W pierwszej kolejności należy kliknąć ldapconfigurator. Z listy rozwijanej ("Please slect your LDAP directory") wybierz "Microsoft Active Directory" i kliknij Proceed.
b) Na kolejnej stronie wpisz następujące parametry:
Site Name: w moim przypadku było to country.company_name.group !!! W tym polu wprowadza się domenę AD
LDAP Server: XXX.XXX.XXX.XXX !! W tymi miejscu podaje się adres IP serwera na której znajduje się AD lub wpisuje się localhost jeżeli Joomla będzie zainstalowana na tym samym serwerze
LDAP Port: 389
c) Klikamy "Next" i przechodzimy do następnej strony. Pola "Connect Username" oraz "Connect Password" pozostawiamy puste i klikamy "Next"
d) Na kolejnej stronie pozostawiamy pola bez zmian.
Search String: userPrin****lName=[search]@country.company_name.group służy do przeszukiwania AD,
Base DN: DC=country,DC=company_name,DC=group to rozbita domena na poszczególne elementy,
User DN: [username]@country.company_name.group to "wzorze" identyfikujący użytkownika.
e) Klikamy "Next" i kolejny raz "Next". Aby sprawdzić czy poprawnie zostało skonfigurowane połączenie LDAP w panelu administracyjnym z menu ponownie wybieramy Komponenty => JDiagnostic
f) Z listy dostępnych opcji wybieramy ldapsettings a następnie z listy rozwijanej "Please select a diagnostic" wybieramy "Connection and Bind Test" i klikamy przycisk Proceed. Jeżeli otrzymaliśmy komunikat "Successfully bound to LDAP server" oznacza to, że połączenie zostało poprawnie skonfigurowane.
g) Pozostaje tylko sprawdzić czy można logować się na użytkowników zdefiniowanych w AD. W tym celu ponownie wybieramy z menu Komponenty => JDiagnostic i z listy dostępnych opcji klikamy w authtest.
h) W polu Username wprowadzamy login użytkownika z AD (w moim przypadku kowalskij) a w polu Password jego hasło. Klikamy przycisk Test Login. Powinniśmy otrzymać dwa komunikatay:

Plugin plgauthenticationjoomla failed to authenticate the user with error Invalid password. => nie ma takiego użytkownika w Joomla więc nie można go autoryzować
Plugin plgauthenticationldap authenticated user successfully. => Autoryzacja przy użyciu LDAP przebiegła prawidłowo

7) Po prawidłowym skonfigurowaniu LDAP-a przechodzimy do kolejnego etapu. W panelu administracyjnym wybieramy z menu Rozszerzenia => Dodatki.

8) W liście dostępnych dodatków klikamy Authentication - Advanced LDAP i ustawiamy parametry jak pokazano na poniższym rysunku i klikamy przycisk Zapisz

Włączony: TAK
Enable User Source Sync: TAK
Require Joomla! User: NIE
3093

9) W liście dodatków klikamy na System - JAuthTools Synchronization Plugin i ustawiamy parametry jak pokazano na poniższym rysunku i klikamy przycisk Zapisz

Włączony: TAK
Demote Users: TAK
3094

10) W liście dodatków klikamy na User Source - LDAP i ustawiamy parametry jak pokazano na poniższym rysunku i klikamy przycisk Zapisz

Włączony: TAK
Map User Blocekd: loginDisabled
Map User Groups: groupMembership
Map Group Members: member
Group Map: puste
Use reverse group membership: Nie
Authenticate Group Search: Nie
Use recursive group membership: Nie
Use iconv: Nie
Original Encoding (e.g. ISO8859-1): ISO8859-1
Target Encoding (e.g. your database): UTF-8
3095

11) Przedostatnim krokiem jest ustawienie autoryzacji LDAP jako pierwszej. W tym celi w panelu administracyjnym wybieramy z menu Rozszerzenia => Dodatki i w kolumnie "Porządek" dodatek "Authentication - Advanced LDAP" powinien być wyżej niż "Uwierzytelnianie - Joomla". Jeżeli dodatek "Uwierzytelnienie - LDAP" jest włączony należy go wyłączyć.

12) Jeżeli chcemy aby nasz użytkownik z AD miał uprawnienia super administratora czy też redaktora należy dodać nowego użytkownika bez hasła. Wszystkie informacje muszę się zgadzać z wpisami w AD. W moim przypadku dodanie nowego użytkownika wymagało uzupełnienia następujących pól:

Nazwa własna: Jan Kowalski
Użytkownik: kowalskij
Adres email: jan.kowalski@company_name.country
Po uzupełnieniu powyższych pól klikamy Zapisz.



PYTANIA:
[A] Czy muszę dodawać wszystkich użytkowników w Joomla! ?
Tylko tych, którzy będą należeć do grupy innej niż Rejestrowany. Przy pierwszej próbie logowania na stronie głównej, użytkownik jest automatycznie dodawany do bazy Joomli jako użytkownik Rejestrowany. Niezbędne informacje są pobierane z AD
[B] Czy można hurtowo przypisać użytkowników z AD do grup w Joomla! ?
Teoretycznie tak ale mi się nie udało :( Opis jak to zrobić można znaleźć m.in. w tym miejscu: http://sammoffatt.com.au/jauthtools/LDAP_Tools/Group_Mapping
Mapowanie grup jest ustawiane w dodatku User Source - LDAP w polu Group Map
[C] Czy można dodawać użytkownika do Joomla! i AD poprzez Joomlę ?
Z tego co przeczytałem w Internecie to tak ale nie próbowałem. Nie mam też pewności czy moje rozwiązanie umożliwia taką opcję.


Mam nadzieję, że powyższy opis jest w miarę zrozumiały ;)

Pozdrawiam
Marcin