如何通过PHP请求当前的LDAP用户名

时间:2015-10-05 22:13:02

标签: php ldap

我是使用LDAP的新手,并且一直在研究如何使用PHP和LDAP。理解它也有点压倒性,虽然我想要做的事情并不复杂,所以我想通过一些指导我可以实现它。我想知道怎么做才能找到当前计算机通过LDAP登录的唯一用户名或密钥。每个用户都有自己的计算机登录。如果我能够回显当前登录计算机用户名的值,我可以找到我需要的其他所有内容。有人可以提供一些指导,创建一个简单的连接来提取用户名。我认为这将是会话价值。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

不确定php是否可以访问当前的计算机数据。公司可以将其目录用作所有访问凭证的集中位置。使用php,您可以:

<?php
function authorizeUserWithLdap($user,$pass){

    $ldaphost = "ldap.yourldaphost.com";
    $ldapport = 389; //default ldap port

    //establish connection to ldap
    $connect = ldap_connect($ldaphost,$ldapport);

    if(!$connect){

        return "Error connecting to LDAP";

    }else{

        //if successfully connected try to bind with the $user, $pass credentials
        if(ldap_bind($connection,$user,$pass){

            //If able to bind with user, start session and return message
            session_start();
            $_SESSION['user'] = $user;
            $_SESSION['status'] = 'logged in';

            return "Successfully Authorized"

        }else{

            return "wrong user or pass" ;

        }
    }
}
echo authorizeUserWithLdap("User","Pass");
?>

这是基础知识。现在,Active Directory上的用户可以使用同一用户登录您的应用程序,并将他们登录到他们的计算机。还有一些行可用于强制执行LDAP版本和安全连接。成功绑定后,您可能希望使用ldap_search()获取一些用户数据,并将其存储在$ _SESSION变量中,例如用户真实姓名,帐户权限等。