[PHP] Koppeling met User Domain Control van NT?

Pagina: 1
Acties:

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Ok om het allemaal even moeilijk te maken, ik heb 2 machine's, 1 met een User Domain Control (NT) voor de user-beheer, en 1 machine (linux) die een website host. (php/mysql/samba)

Nu wil ik de inlog gegevens veriferen met de NT-server.

Is dit uberhaupt mogelijk?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Ja... Dat is mogelijk.

Ik doe het hier met LDAP via de EXCHANGE. Maar LDAP moet zich ook kunnen authoriseren via AD (Win2000).

Heb geen van deze componenten dan zou ik het niet weten.

Programmer - an organism that turns coffee into software.


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op woensdag 20 maart 2002 10:21 schreef LuCarD het volgende:
Ja... Dat is mogelijk.

Ik doe het hier met LDAP via de EXCHANGE. Maar LDAP moet zich ook kunnen authoriseren via AD (Win2000).

Heb geen van deze componenten dan zou ik het niet weten.
Heb je hier meer info over? links oid. naar uitleg/voorbeeld hoe LDAP met Exchange te gebruiken?

b.v.d.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PHP:
1
<?function login($username, $userpass){$ldap=new LDAP;if ($ldap->connect($username, $userpass)){// LOGIN SUCCESS}else {// LOGIN FAILED}}?>

class ldap
PHP:
1
<?class ldap{    var $defaultServerHost='<EXCHANGE SERVER>';    var $defaultServerPort='<EXCHANGE SERVER PORT:default = 389>';    var $_dieOnFailure=false;    function ldap($host='',$port='')    {        define("CLASS_LDAP",1);            if ($host=='')             $this->_host=$this->defaultServerHost;        else            $this->_host=$host;        if ($port=='')             $this->_port=$this->defaultServerPort;        else            $this->_port=$port;                    $this->ldap_connection=@ldap_connect($this->_host,$this->_port);        if (!$this->ldap_connection)            $this->_doError(0,"", "Connection to Server");    }        function connect($userName, $passWord, $domain='<DOMAIN>', $country='nl')    {        $this->dn = $this->createDN($userName,  $domain, $country);        if (!isset($this->ldap_connection))            $this->ldap($_host,$_port);        $this->_connect=@ldap_bind($this->ldap_connection,$this->dn,$passWord);            if (!isset($this->_connect) || empty($this->_connect))        {            $this->_doError(ldap_errno($this->ldap_connection),ldap_error($this->ldap_connection), "Login failed for dn= ". $this->dn . "\npass=". $passWord);            return false;        }        else            return true;        }        function search($filter, $baseDN='')    {    if (!isset($this->ldap_connection))        $this->ldap($_host,$_port);    if ($baseDN)        $dn=$baseDN;    else        $dn=$this->baseDN;    $this->rs=@ldap_search($this->ldap_connection,$dn,$filter,$this->_reqAttr,$this->_attrOnly,$this->_sizeLimit, $this->_timeLimit);    if (!isset($this->rs))        $this->_doError(ldap_errno($this->ldap_connection),ldap_error($this->ldap_connection), "Search failed for filter= ". $filter);}function fetch_records($oneRecord=false){    if ($oneRecord)    {    $record=ldap_get_entries($this->ldap_connection, $this->rs);    if (isset($record))        return $record[0];    }    else        return (ldap_get_entries($this->ldap_connection, $this->rs));}        function createDN($userName, $domain, $country)    {    $dn=sprintf("cn= %s, cn=users, dc=%s",$userName,$this->_host);    if ($domain)        $dn.=sprintf(", dc=", $domain);    if ($country)        $dn.=sprintf(", dc=", $country);    return $dn;    }    function _doError($errno, $errString, $when='')    {    if (headers_sent())    {        printf ("<!-- \n\n\n Error Occurred:");        printf ("\nWhen: %s\n ", $when);        printf ("\nErrorno: %d", $errono);        printf ("\nText: %s--> ",$errString);    }         if ($this->_dieOnFailure)            die("ERROR with LDAP!");    }                var $ldap_connection;    var $ldap_result;    var $_connect;    var $dn;    var $_host;    var $_port;    var $_reqAttr=array();    var $_attrOnly=0;    var $_sizeLimit=99;    var $_timeLimit=NULL;    var $rs;} ?>

Programmer - an organism that turns coffee into software.


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
sweet! *D

thanks0r!

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Als ik het goed begrijp zal je dan dus ook een exchange server moeten draaien :?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op woensdag 20 maart 2002 14:46 schreef freak007 het volgende:
Als ik het goed begrijp zal je dan dus ook een exchange server moeten draaien :?
Volgens deze methode wel. Je kan ook bij de AD (Windows 2000 ADV) autheriseren, maar hoe dat werkt weet ik niet exact.

Andere methode's zullen er vast wel zijn, maar ik zou het niet zo even weten... (Misschien via Samba?)

Programmer - an organism that turns coffee into software.


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op woensdag 20 maart 2002 14:48 schreef LuCarD het volgende:

[..]

Volgens deze methode wel. Je kan ook bij de AD (Windows 2000 ADV) autheriseren, maar hoe dat werkt weet ik niet exact.

Andere methode's zullen er vast wel zijn, maar ik zou het niet zo even weten... (Misschien via Samba?)
Via samba zou het ook mogelijk moeten zijn. Maar voor mij gaat het iig om Exchange... nogmaals bedankt trouwens.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op woensdag 20 maart 2002 16:03 schreef Scorpion het volgende:

[..]

Via samba zou het ook mogelijk moeten zijn. Maar voor mij gaat het iig om Exchange... nogmaals bedankt trouwens.
Ik doe het hier ook via Exchange voor de mensen om in te loggen in het intranet. Lekker makkelijk voor de gebruikers dat ze geen verschillende wachtwoorden hebben.

Programmer - an organism that turns coffee into software.


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op woensdag 20 maart 2002 16:05 schreef LuCarD het volgende:

[..]

Ik doe het hier ook via Exchange voor de mensen om in te loggen in het intranet. Lekker makkelijk voor de gebruikers dat ze geen verschillende wachtwoorden hebben.
Inderdaad :) en ook makkelijk in userbeheer...
Pagina: 1