Nasıl Apache mod_ldap modülü ile doğrulanmış bir kullanıcının kullanıcı bilgilerini almak mı?

2 Cevap php

Ben LDAP kimlik doğrulaması ile Apache çalışma var. Şimdi ben PHP ile oturum ne kullanıcı alabilirsiniz bilmek gerekir. Hatta mümkün mü? Ben kullanıcı adını saklamak için PHP kimlik doğrulaması yapmak zorunda mı?

2 Cevap

Ben mod_lsap ile aynı olup olmadığından emin değilim, ama Apache kullanarak kimlik doğrulaması zaman, kullanıcı adı ve şifre $ _SERVER en superglobals saklanır.

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

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

Eğer mod_authnz_ldap modülünü etkinleştirmek ve bu gibi bölümü yapılandırmak eğer:

<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>

Sonra PHP kodu böyle oturum açmak için kullanılan kullanıcı kimliği edinebilirsiniz:

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

Eğer AuthLDAPUrl yönergesinde belirttiğiniz herhangi bir LDAP özniteliği (AUTHENTICATE_ ile önek ve sonra tüm büyük harf öznitelik adı append) bu şekilde elde edilebilir. Sen virgülle ayırarak daha nitelikler ekleyebilirsiniz, ancak yalnızca ilk bir kimlik doğrulaması için kullanılır. Daha fazla bilgi için http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#exposed ve http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#authldapurl bakınız.