Autentizace (přihlášení) v NETTE pomocí LDAP

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…

1 komentář u „Autentizace (přihlášení) v NETTE pomocí LDAP

  1. Pingback: Autentizace (přihlášení) v NETTE pomocí LDAP – omezení uživatelů | Jan Kocmánek bloguje !!!

Napsat komentář

Vaše emailová adresa nebude zveřejněna.