OT: Novell a overeni v (PHP)
Jirka Kosek
jirka na kosek.cz
Pátek Srpen 24 15:38:17 CEST 2001
Tomas Stehlik wrote:
> chtel bych vedet co potrebuji k overeni na webovem serveru konkretniho
> uzivatele v prostredi Novell. V prostredi M$ je moznost pouzit IIS a to
> preda PHP promennou serveru o konkretnim uzivateli. Jde tohle mozne
> nejak udelat treba na linuxu s apachem? Novell taky prece musi nejak
> bonzovat uzivatele...
Nejjednodušší je asi na Novellu spustit LDAP modul a z PHP to ověřovat
přes LDAP. Už dva roky to takhle provozujeme na VŠE a až na občasné
problémy s některými verzemi LDAP modulu to pracuje bez problémů.
Pokud pro autentifikaci používáte knihovnu PHPLIB, je to asi 6 řádek
kódu, které se připojí k LDAP serveru a pokusí se s daným heslem
přihlásit. Našel jsem to dokonce v archivu e-mailů:
----------
Do local.inc je potřeba přidat novou třídu pro autentifikaci
class ExampleLDAP_Auth extends Auth {
var $classname = "ExampleLDAP_Auth";
var $lifetime = 15;
function auth_loginform() {
global $sess;
global $_PHPLIB;
include($_PHPLIB["libdir"] . "loginform.ihtml");
}
function auth_validatelogin() {
global $username, $password;
if(isset($username)) {
$this->auth["uname"]=$username; ## This provides access for
"loginform.ihtml"
}
$uid = false;
$ds = ldap_connect("localhost"); // připojení k localhost, kde
běží stunnel
if (!$ds || $password=="") return false;
if ($r=@ldap_bind($ds, "cn=$username,ou=oddeleni,o=firma",
$password)) {
// ^^^ řetězec budete muset upravit podle
struktury vaší NDS
$uid = MD5(UniqID($username));
}
ldap_unbind($ds);
return $uid;
}
}
Nejnovější verze PHP 4.0.4 má podporu pro OpenSSL, snad jde rovnou
použít
ldap_connect("ldaps://server.nekde.cz") pro spojení přes SSL (nezkoušel
jsem).
Stunnel lze získat na adrese: www.stunnel.org
Pro potřeby přemostění LDAPS se startuje s následujícími parametry:
stunnel.exe -c -d 389 -r adresa.pocitace.s.ldaps.serverem:636
-----------------------------------------------------------------
Jirka Kosek
e-mail: jirka na kosek.cz
http://www.kosek.cz
Další informace o konferenci Linux