Ne, že by to bylo něco složitého, pro někoho kdo má s LDAP již nějaké zkušenosti, ale myslím, že komplexní návod se hodí.
< ?php // pro PHP 5.3 // use Nette\Object, Nette\Security\IAuthenticator, Nette\Security\AuthenticationException, Nette\Security\Identity; class MyAuthenticator extends Object implements IAuthenticator { public function authenticate(array $credentials) { $username = $credentials[self::USERNAME]; $password = $credentials[self::PASSWORD]; $ldap_conn = ldap_connect ('ldap://overovaci.server.cz'); if ($ldap_conn) { $ldapbind = @ldap_bind ($ldap_conn, $username . '@domena.tld', $password); ldap_unbind ($ldap_conn); if ($ldapbind) { return new Identity('Správce.', 'Administrátor', $ldapbind); } else { throw new AuthenticationException("Špatné jméno nebo heslo.", self::INVALID_CREDENTIAL); } } else { throw new AuthenticationException("Ověřovací server není dostupný.", self::FAILURE); } } } |
Pro jednoduchost se v tomto příkladu neřeší další správa rolí, nezjišťují se podrobnosti o uživateli atd. Možná jindy…
Pingback: Autentizace (přihlášení) v NETTE pomocí LDAP – omezení uživatelů | Jan Kocmánek bloguje !!!