RE: [PHP] Windows user authentication thru PHP and Apache
| From: | David Kevey | Date: | Thu, 02 Sep 2004 22:30:22 +0000 |
| Subject: | RE: [PHP] Windows user authentication thru PHP and Apache | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-195661@lists.php.net to get a copy of this message | ||
This has worked for me in the past - it requires LDAP to be enabled in
PHP to authenticate against the domain controller.
<?php
$Username='';
$Password='';
$Group=''; //Group the user must be in
$Domain=''; //your domain
$base_dn = "DC=avsec, DC=govt, DC=nz"; // Ex: "DC=dhcmc, DC=com"
$ldap_server = "ldap://YOUR_DC"; //DC to authenticate against
$filter="(samaccountname=$Username)";
$connect=ldap_connect($ldap_server);
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
ldap_bind($connect, $Domain.'\\'.$Username, $Password) or DIE("Wrong
Credentials");
$search=ldap_search($connect, $base_dn, $filter);
ldap_sort($connect,$search,"sn");
$number_returned = ldap_count_entries($connect,$search);
$info = ldap_get_entries($connect, $search);
$InGroup=false;
/*
echo '<pre>';
echo print_r($info[0]['memberof']);
echo '</pre>';
*/
foreach($info[0]['memberof'] as $v)
{
if (strpos($v, 'CN='.$Group.',')!==false)
{
$InGroup=true;
break;
}
}
if ($InGroup===true)
{
echo $Username.' is a member of '.$Group;
}else
{
echo $Username.' is not a member of '.$Group;
}
ldap_close($connect);
?>
Rgds: Dave
> -----Original Message-----
> From: Merritt, David [mailto:MerrittD@dhcmc.com]
> Sent: Friday, 3 September 2004 4:48 a.m.
> To: PHP General List (E-mail)
> Subject: [PHP] Windows user authentication thru PHP and Apache
>
> All,
>
> Wanting to build a login page which uses the same user information as
the
> user's Windows account. Is there a way to validate a user's login
> information against the primary Windows domain controller using PHP
and
> Apache? Searching the archives all I'm finding is how to do this with
PHP
> & IIS (which appears to be by using the functionality of IIS).
>
> Thanks,
>
> Dave Merritt
> merrittd@dhcmc.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php