Login met LDAP Authenticatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

R R

R R

15/09/2010 13:36:33
Quote Anchor link
Hallo iedereen!

Sinds kort ben ik bezig met het ontwikkelen van een PHP-based 'Indienst'-formulier. Nu heb ik dit al af, nu wil ik er nog een Login aanvast maken.

Ik moet van mijn opdrachtgever dit oplossen door middel van PHP en een LDAP authenticatie. Op die manier hoeven gebruikers geen diverse wachtwoorden te onthouden.

Nu heb ik uren en uren gezocht, maar ik kan helemaal niks vinden dat voor mij van toepassing is.

Dit is dus de opzet:


Login (AD-account) -> redirect naar 'form.php'


Heeft iemand een idee?

Met vriendelijke groet,

Rinse Ringma
 
PHP hulp

PHP hulp

23/04/2024 16:30:19
 
Jeroen Jansen

Jeroen Jansen

15/09/2010 14:30:24
Quote Anchor link
Rinse,

hiermee moet het volgens mij wel lukken. Zit nog geen beveiliging bij voor SQL-injection, maar dat moet wel lukken lijkt me

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    if ( $_POST['gebruikersnaam'] != '' && $_POST['wachtwoord'] != '' ){
        /* aanmelden via LDAP */
        $ds=ldap_connect("127.0.0.1"); // een geldige LDAP server!
        if(!$ds){
            $succes = FALSE;
            $foutmelding = 'Geen verbinding met Active Directory';
        }
        
        if($succes === TRUE){
            ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
            $r=ldap_bind($ds, $_POST['gebruikersnaam'], $_POST['wachtwoord']);
            if($r){
                echo 'Aanmelden via LDAP gelukt'
      }else{
          $succes = FALSE;
          $foutmelding = 'Inloggen is niet gelukt door ongeldige combinatie gebruikersnaam/wachtwoord.<br/>
                         '.$_POST['gebruikersnaam'].'<br/>
                         '.$_POST['wachtwoord'].'<br/>';
      }
      ldap_close($ds);
    }
  }
 
R R

R R

15/09/2010 14:37:18
Quote Anchor link
Hoi Jeroen!

Bedankt voor je reply, maar ik ben een compleet newbie met PHP. Heb je misschien een complete pagina incl. form?
 
Jeroen Jansen

Jeroen Jansen

15/09/2010 14:56:10
Quote Anchor link
Zoiets misschien
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
session_start();
$succes = TRUE;

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if ( isset($_POST['gebruikersnaam']) && isset($_POST['wachtwoord']))
    {

        /* aanmelden via LDAP */
        $ds=ldap_connect("127.0.0.1"); // geef hier het ip-adres in van een geldige LDAP server!
        if(!$ds)
        {

            $succes = FALSE;
            $foutmelding = 'Geen verbinding met Active Directory';
        }

        
        if($succes === TRUE)
        {

            ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
            $r=ldap_bind($ds, $_POST['gebruikersnaam'], $_POST['wachtwoord']);
            if($r)
            {

           $_SESSION['gebruiker_id'] = $row['GEBRUIKERID'];
           $_SESSION['aangemeld'] = TRUE;
           header("Location: index.php");
            }

            else
            {
          $succes = FALSE;
          $foutmelding = 'Inloggen is niet gelukt door ongeldige combinatie gebruikersnaam/wachtwoord.<br/>';
      }

      ldap_close($ds);
    }
  }

  else
  {
    $error = 'Vul zowel gebruikersnaam als wachtwoord in om in te loggen.';
  }
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
 [ <!ATTLIST a target CDATA #IMPLIED>
   <!ATTLIST td sorttable_customkey CDATA TEXT>
 ]>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <link rel="stylesheet" type="text/css" href="layout.css" />
  <link rel="stylesheet" type="text/css" href="menu.css" />
  <link rel="stylesheet" type="text/css" href="formulier.css" />
  <!--[if lt IE 7.]>
  <script defer type="text/javascript" src="pngfix.js"></script>
  <![endif]-->
</head>
<body>
<?php
  if(isset($foutmelding)){ echo '<p class="error">' . $foutmelding . '</p>' . "\n";}
  if(isset($error)){ echo '<p class="error">' . $error . '</p>' . "\n";}
  if(isset($msg)){ echo '<p class="msg">' . $msg . '</p>' . "\n";}
?>


<strong>Aanmelden via LDAP</strong>
      <form class="form" action="aanmeldscherm.php" method="post">
          <fieldset>
              <legend>Aanmeldgegevens</legend>
              <input type="hidden" name="_submit_check" value="1"/>
              <label for="gebruikersnaam" class="align_text">Gebruikersnaam:</label>
              <input type="text" name="gebruikersnaam" class="my_textfield" id="gebruikersnaam"/>
              <br />
              <label for="wachtwoord" class="align_text">Wachtwoord:</label>
              <input type="password" name="wachtwoord" class="my_textfield" id="wachtwoord" size="25" maxlength="32" />
        </fieldset>
        <fieldset>
          <input type="submit" name="Login" value="Inloggen" alt="Inloggen" title="Inloggen" />
        </fieldset>
      </form>
</body>
</html>
 
R R

R R

15/09/2010 15:07:31
Quote Anchor link
Harstikke bedankt!

Ik krijg alleen de volgende foutmelding:

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid credentials in C:\wamp\www\IDP\test.php on line 20
Inloggen is niet gelukt door ongeldige combinatie gebruikersnaam/wachtwoord.

Hierbij log ik in met mijn eigen account, ik ben geen Admin van het AD.
 
Jeroen Jansen

Jeroen Jansen

15/09/2010 15:22:33
Quote Anchor link
Rinse,

zet na

session_start();

de volgende regels:
ini_set('display_errors', 'On');
error_reporting(E_ALL);

voor wat extra debug-informatie.

Je hebt als het goed is in ieder geval al wel verbinding met de LDAP-server. Zou je anders even je eigen code hier neer kunnen zetten?
 
Niek s

niek s

15/09/2010 15:41:30
Quote Anchor link
R R op 15/09/2010 14:37:18:
Hoi Jeroen!

Bedankt voor je reply, maar ik ben een compleet newbie met PHP. Heb je misschien een complete pagina incl. form?


Typisch voorbeeld van "Ik ben kut en lui, dus doen jullie maar het werk voor mij".
Ik verwijs je dus bij deze door naar de FAQ, waar precies staat waaraan een vacature aan moet voldoen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.