Назад | Перейти на главную страницу

не могу видеть переменные ldap в windows apache 2.4

Работая над windows apache (2.4), я хочу аутентифицировать пользователей на сервере LDAP.

У меня в httpd.conf следующее

<Directory "C:\Apache24\htdocs">
    LDAPReferrals Off
    AuthBasicProvider ldap
    AuthName "LDAP NAME"
    AuthType Basic
    AllowOverride None
    Options Indexes FollowSymLinks

    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
    Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
</Directory>

и следующее в файле .htaccess в правильной папке

AuthLDAPBindDN "CN=USER,CN=Users,DC=YY,DC=ZZZZZZZ,DC=QQQ"
AuthLDAPBindPassword "PASSWORD"
Require all denied
AuthLDAPUrl ldap://ldapIP:LDAPPORT/CN=XXX,DC=YY,DC=ZZZZZZZ,DC=QQQ?sAMAccountName?sub?(objectClass=*)
Require valid-user
AuthLDAPRemoteUserAttribute sAMAccountName
AuthLDAPRemoteUserIsDN on

Когда я захожу на сайт, я получаю приглашение пользователя, и ввод правильных учетных данных позволяет мне войти на сайт (ввод неправильных данных дает 401 - хорошо)

Моя проблема в том, что мне нужно «проверить», кто является пользователем, который получил доступ к сайту, я понял, что LDAP должен вставить имя пользователя, который получил доступ к сайту, в «REMOTE_USER» в переменных среды, но проверяя «установить» в CMD и проверяя os.envrion (на python - серверная часть написана на python) ничего не показывает ..

РЕДАКТИРОВАТЬ:

текущий файл httpd.conf:

<Directory "C:\Apache24\htdocs">
    LDAPReferrals Off
    AuthBasicProvider ldap
    AuthName "LDAP NAME"
    AuthType Basic
    AllowOverride AuthConfig
    Options Indexes FollowSymLinks

    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
    Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
</Directory>

и текущий файл .htaccess:

AuthLDAPBindDN "CN=USER,CN=Users,DC=YY,DC=ZZZZZZZ,DC=QQQ"
AuthLDAPBindPassword "PASSWORD"
Require all denied
AuthLDAPUrl ldap://ldapIP:LDAPPORT/CN=XXX,DC=YY,DC=ZZZZZZZ,DC=QQQ?sAMAccountName?sub?(objectClass=*)
Require valid-user

Я включил ведение журнала отладки Apache и увидел ниже соответствующий журнал, показывающий, что он ДЕЙСТВИТЕЛЬНО "ПРИНИМАЕТ" мое имя пользователя ... но все еще не может "получить" его из переменных среды ..

Tue Jul 04 14:28:44.088576 2017] [authz_core:debug] [pid PID1:tid TID1] mod_authz_core.c(806): [client IP:PORT1] AH01626: authorization result of Require all denied: denied
Tue Jul 04 14:28:44.089582 2017] [authz_core:debug] [pid PID1:tid TID1] mod_authz_core.c(806): [client IP:PORT1] AH01626: authorization result of Require valid-user : granted
Tue Jul 04 14:28:44.089582 2017] [authz_core:debug] [pid PID1:tid TID1] mod_authz_core.c(806): [client IP:PORT1] AH01626: authorization result of <RequireAny>: granted
Tue Jul 04 14:28:44.558595 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of Require all granted: granted, referer: http://domain
Tue Jul 04 14:28:44.558595 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of <RequireAny>: granted, referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of Require all denied: denied, referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of Require valid-user : denied (no authenticated user yet), referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet), referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authnz_ldap:debug] [pid PID1:tid TID2] mod_authnz_ldap.c(515): [client IP:PORT2] AH01691: auth_ldap authenticate: using URL ldap://ldapIP:LDAPPORT/CN=XXX,DC=YY,DC=ZZZZZZZ,DC=QQQ?sAMAccountName?sub?(objectClass=*), refrer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authnz_ldap:debug] [pid PID1:tid TID2] mod_authnz_ldap.c(612): [client IP:PORT2] AH01697: auth_ldap authenticate: accepting **USERNAME**, referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of Require all denied: denied, referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of Require valid-user : granted, referer: http://domain
Tue Jul 04 14:28:44.559596 2017] [authz_core:debug] [pid PID1:tid TID2] mod_authz_core.c(806): [client IP:PORT2] AH01626: authorization result of <RequireAny>: granted, referer: http://domain

Любые идеи? Спасибо.

Мне удалось решить эту проблему.

Мое приложение, необходимое для получения доступа к переменным среды WSGI, работало с использованием falcon over apache, поэтому доступ к правильным переменным осуществляется через API-класс промежуточного программного обеспечения - falcon добавляет эти переменные в dict 'env' внутри класса Request.

class AuthMiddleware(object):
    def process_request(self, req, resp):
         #auth validation here

http://falcon.readthedocs.io/en/stable/user/quickstart.html