sco*_*ttm 2 php authentication mod-ldap
我有使用Apache的LDAP身份验证.现在我需要知道如何通过PHP登录用户.它甚至可能吗?我是否必须在PHP中进行身份验证才能存储用户名?
如果激活mod_authnz_ldap模块并按如下方式配置您的部分:
<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>
Run Code Online (Sandbox Code Playgroud)
然后在PHP代码中,您可以获取用于登录的用户标识,如下所示:
<?php
$userId = $_SERVER['AUTHENTICATE_SAMACCOUNTNAME'];
echo "User ID: " . $userId;
<?
Run Code Online (Sandbox Code Playgroud)
您可以通过这种方式获取在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.
我不确定它是否与mod_lsap相同,但是当您使用Apache进行身份验证时,用户名和密码将存储在$ _SERVER的超全局中.
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW']
Run Code Online (Sandbox Code Playgroud)
http://ca.php.net/manual/en/reserved.variables.server.php
| 归档时间: |
|
| 查看次数: |
7482 次 |
| 最近记录: |