LDAPUserFolder
Pierwszą, a zarazem najważniejszą rzeczą, jest zainstalowanie rozszerzeń do naszego Pythona aby w ogóle LDAPUserFolder zadziałał. W przypadku windy jest jeszcze jeden problem, na który możemy napotkać - otóż przy instalacji Zope'a Python niekoniecznie dodaje informacje o sobie do rejestru, co jest wymagane przy uruchamianiu jakichkolwiek rozszerzeń. Rozwiązaniem problemu jest następujący skrypt :
import sys
from _winreg import *
# tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "%s;%sLib\\;%sDLLs\\" % (
installpath, installpath, installpath
)
def RegisterPy():
try:
reg = OpenKey(HKEY_LOCAL_MACHINE, regpath)
except EnvironmentError:
try:
reg = CreateKey(HKEY_LOCAL_MACHINE, regpath)
SetValue(reg, installkey, REG_SZ, installpath)
SetValue(reg, pythonkey, REG_SZ, pythonpath)
CloseKey(reg)
except:
print "*** Unable to register!"
return
print "--- Python", version, "is now registered!"
return
if (QueryValue(reg, installkey) == installpath and
QueryValue(reg, pythonkey) == pythonpath):
CloseKey(reg)
print "=== Python", version, "is already registered!"
return
CloseKey(reg)
print "*** Unable to register!"
print "*** You probably have another Python installation!"
if __name__ == "__main__":
RegisterPy()
Zapisać to sobie jako np. register.py i odpalić - wykona się ładniście i mamy już Pythona zarejestrowanego.
OK, zakładam że mamy już zainstalowane rozszerzenia do Pythona oraz ściągniętą najnowszą, stabilną wersję LDAPUserFolder. Instalujemy nasz produkt w wiadomym miejscu (np. Zope-Instance\Products) i restart Zope'a.
Mamy już zainstalowanego, działającego LDAPUserFolder, a więc połowa drogi za nami - teraz przechodzimy do ZMI i acl_users w naszym portalu. Następnie zakładka Sources i dodajemy nowe źródełko jak LDAPUserFolder właśnie :)
Teraz odrobinę czarnej magii :)
Najpierw przejdźmy w zakładkę LDAP Schema - tam dodamy nowy schemat -
LDAP Atribute Name : sAMAccountName
Friendly Name : login_win
Następnie z powrotem do zakładki Configure i teraz zajmujemy się pełną konfiguracją.
Jest tu 13 możliwych pól do konfiguracji:
1 - tytuł inaczej mówiąc nazwa wyświetlana naszego źródełka
2 - wybieramy sAMAccounName
3 - wybieramy cn (Cannonical Name)
4 - jak p.3
5 - tu ustwiamy gdzie znajdują się nasi użytkownicy - ogólna zasada jest następująca : od najbardziej zagnieżdżonego źródła aż do nazwy domeny czyli jeżeli nasi userzy są w organizacji 'Firma', która jest w kolejnej organizacji 'Firma_1' w domenie mojadomena.pl to adres który się tu pojawi będzie następujący :
ou=Firma,ou=Firma_1,dc=mojadomena,dc=pl
jako SCOPE wybieramy SUBTREE
6 - tu decydujemy czy grupy mają być pociągnięte z LDAP czy też nie (ja preferuje to drugie rozwiązanie)
7 - tu decydujemy o mapowaniu grup LDAP do grup Zope (ja mam ustawione automatyczne)
8 - tu ustwiamy gdzie znajdują się nasze grupy (zazwyczaj ten sam adres co w p.5)
9 - tu wpisujemy scieżkę dostępu do konta administratora AD - tak na prawdę to nie jest wcale a wcale potrzebny user z prawami administracyjnymi a jedynie taki, który może przeszukiwać AD by znaleźć userów czyli de facto normalny user - najlepiej stworzyć sobie takowego np. LDAPauth. Ścieżka w takim przypadku może wyglądać następująco : cn=LDAPauth, cn=users, dc=mojadomena, dc=pl
password = tu chyba nie trzeba wyjaśnień :)
10 - tu ustawiamy na always
11 - top,person
12 - SHA
13 - zmiana na Authenticated
i Apply Changes - już prawie w domu:)
Ostatnią rzeczą jest dodanie naszego serwera LDAP - czyli wpisujemy IP bądź nazwę hosta, klikamy Add i voila!!
Nasz LDAPUserFolder hula jak ta lala. I wszystko jest prawie OK - dlaczego prawie ktoś zapyta - ano spróbujcie szukać userów, którzy w imieniu bądź nazwisku mają polskie litery :) Ale rozwiązanie tego problemu umieściłem już wcześniej na forum - poszukać sobie !! :P
Mam nadzieję, że było pomocne.

