Apache で LDAP 認証を使用しています。ここで、PHP でログインしているユーザーを取得する方法を知る必要があります。それは可能ですか?ユーザー名を保存するために PHP で認証を行う必要がありますか?
8456 次
2 に答える
9
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>
次に、PHPコードで、次のようにログインに使用されたユーザーIDを取得できます。
<?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を参照してください。
于 2010-02-10T19:46:02.280 に答える
7
mod_lsapと同じかどうかはわかりませんが、Apacheを使用して認証すると、ユーザー名とパスワードが$_SERVERのスーパーグローバルに保存されます。
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW']
于 2010-02-10T18:51:30.537 に答える