Authentication through LDAP in PHP should be easier after reading my post. Isn’t it?
Simply you will have to follow below steps:
1 : Enable LDAP extension over Apache.
2: create a Login Page and connect through LDAP on login form and search using user-provided settings.
Below snippet will help you to achieve your objective:
<?php /** * Created by Anoop Sharma of anoopkumarsharma.com */ if(isset($_POST['username']) && isset($_POST['password'])){ $adServer = "ldap://Host.com"; $ldap = ldap_connect($adServer); $username = $_POST['username']; $password = $_POST['password']; $ldaprdn = 'Host' . "\\" . $username; ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); $bind = @ldap_bind($ldap, $ldaprdn, $password); if ($bind) { $filter="(sAMAccountName=$username)"; $result = ldap_search($ldap,"dc=Host,dc=Host",$filter); //LDAP DC Info ldap_sort($ldap,$result,"sn"); $info = ldap_get_entries($ldap, $result); for ($i=0; $i<$info["count"]; $i++) { if($info['count'] > 1) break; echo "<p>You are accessing <strong> ". $info[$i]["sn"][0] .", " . $info[$i]["givenname"][0] ."</strong><br /> (" . $info[$i]["samaccountname"][0] .")</p>\n"; echo '<pre>'; var_dump($info); echo '</pre>'; $userDn = $info[$i]["distinguishedname"][0]; } @ldap_close($ldap); } else { $msg = "Invalid email address / password"; echo $msg; } }else{ ?> <form action="#" method="POST"> <label for="username">Username: </label><input id="username" type="text" name="username" /> <label for="password">Password: </label><input id="password" type="password" name="password" /> <input type="submit" name="submit" value="Submit" /> </form> <?php } ?>
Looking forward for your queries and feedback 🙂
Happy Coding!
0 Comments.