Toon posts:

[PHP] koppeling met NT users database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Situatie: Apache + PHP draaiend op een Linux server. Voor een urenregistratie moet een systeempje worden gebouwd waar de medewerkers op in kunnen loggen. Natuurlijk simpel te doen met een user tabelletje. Maar het liefst koppel ik dit aan een NT machine zodat er unified logins zijn en gebruikers niet twee verschillende passwords hoeven te onthouden.
Is dit uberhaupt mogelijk en zo ja hoe realiseer ik die koppeling?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Als je een exchange server hebt of een Active Directory dan kan je LDAP gebruiken.

www.php.net/ldap

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
*omhoogschop*

Dat was een goede tip, heb je stukje code van die pagina gebruikt en kan nu inderdaad gebruikers uitlezen. Alleen nu loop ik tegen de wachtwoorden aan. Ik kan niet vinden of ik deze nu al userpassword, of als password moet benaderen en of dit op dezelfde manier als bijvoorbeeld givenname.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Die kan je niet benaderen....

sorry...

Maar wat je wel kan doen is de exchange server gebruiken als login server.
code:
1
2
3
4
5
6
user logt in en geeft username en password
server maakt verbinding met exchange
server logt in exchange met behulp van gegeven username en password.
server ingelogd?
   ja: username en password correct zijn ben je ingelogd
   nee: username en password fout, user mag opnieuw proberen..

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
ok, dat is jammer.

Op het gevaar af dat dit ontspoort in een "en dan?" topic, hoe geef je dan explicieet aan dat ie een exchange server moet gebruiken? Want wat ik doe is
code:
1
$ds = ldap_connect("192.168.1.1");

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PHP:
1
<?function connect($userName, $passWord, $domain='', $country='nl')    {        $this->dn = $this->createDN($userName,  $domain, $country);        if (!isset($this->ldap_connection))            $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 createDN($userName, $country)    {          $dn=sprintf("cn= %s, cn=users, dc=%s",$userName,$this->_host);          return $dn;    }?>

Dit is een deel uit een class die ik heb gemaakt, maar je zult hem moeten aanpassen voor jouw eigen doeleinden....

Programmer - an organism that turns coffee into software.


  • tazitiz
  • Registratie: Augustus 1999
  • Laatst online: 09-06 22:25

tazitiz

dbprutser

Niet vergeten dat er dan geen @tjes en andere leestekens in het ww mogen zitten !!(8>

Verwijderd

Topicstarter
Ben nog wat verder aan het browsen geweest en heb geprobeerd om de code van http://www.php.net/manual/en/function.ldap-compare.php te gebruiken, maar dat resulteert in de volgende error, line 15 bevat dus ldap_compare()

Warning: LDAP: Compare operation could not be completed: Protocol error in /var/www/ldap2.php on line 15
Error: Protocol error

  • tomato
  • Registratie: November 1999
  • Niet online
LuCarD: Dit is een deel uit een class die ik heb gemaakt, maar je zult hem moeten aanpassen voor jouw eigen doeleinden....
PHP:
1
<?$this->createDN($userName, $domain, $country);/*   Even verderop vinden we deze functie:*/function createDN($userName, $country) {?>

:?

Of heb je ergens verderop nog een functie createDN staan die wel voldoet aan bovenste signature en kent PHP ineens wel overloading op argument_count :?

[edit]
Ik probeerde het even en zag dat PHP dit gewoon pikt :o :z

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Tomato:
Oops foutje... Ik heb ff snel lopen editten, aangezien een aantal specifiek waren voor mijn script. En kennelijk ben ik dat daar vergeten... sorry...

Btw "overloading" bestaat al een tijdje hoor...
kijk maar eens hier http://www.php.net/manual/en/function.func-get-args.php

Programmer - an organism that turns coffee into software.

Pagina: 1