代码之家  ›  专栏  ›  技术社区  ›  scottm

如何检索使用Apache的mod_ldap进行身份验证的用户的用户信息?

  •  2
  • scottm  · 技术社区  · 16 年前

    我使用Apache进行LDAP身份验证。现在,我需要知道如何获取使用PHP登录的用户。有可能吗?我必须在PHP中进行身份验证才能存储用户名吗?

    2 回复  |  直到 16 年前
        1
  •  7
  •   josephdotca    16 年前

    我不确定mod_lsap是否与此相同,但当您使用Apache进行身份验证时,用户名和密码存储在$服务器的superglobals中。

    $_SERVER['PHP_AUTH_USER']
    $_SERVER['PHP_AUTH_PW']
    

    http://ca.php.net/manual/en/reserved.variables.server.php

        2
  •  9
  •   Brian Showalter    16 年前

    <Directory /var/www/yoursite/>
        AuthName "LDAP Secured"
        AuthType Basic
        AuthLDAPUrl "ldap://your.ldap.server:389/dc=example,dc=com?sAMAccountName"
        AuthLDAPBindDN "ADUser@ADDomain.local"
        AuthLDAPBindPassword "secret"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative off
        Require valid-user
    </Directory>
    

    <?php
        $userId = $_SERVER['AUTHENTICATE_SAMACCOUNTNAME'];
        echo "User ID: " . $userId;
    <?
    

    您在AuthLDAPUrl指令中指定的任何LDAP属性都可以通过这种方式获得(在其前面加上AUTHENTICATE\前缀,然后将属性名称全部大写)。您可以通过用逗号分隔属性来添加更多属性,但只有第一个属性将用于身份验证。看见 http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#exposed 和 http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#authldapurl

    推荐文章