1

Тема: Авторизация именем пользователя

Здравствуйте! У меня проблемы с переменной _SERVER["REMOTE_USER"].
Установлен mod_auth_sspi/1.0.4, но REMOTE_USER в phpinfo вообще не видно, в скрипте выдает пустое значение.

error.log:
PHP Notice:  Undefined index:  REMOTE_USER in ...

Другие супглобальные переменные COMPUTERNAME, SERVER_NAME, SERVER_ADDR передаются нормально.
Клиенты в домене.

Подскажите пожалуста в чем может быть проблема?
Заранее благодарен.

2

Re: Авторизация именем пользователя

kolkol1
Как вы подключили SSPI в конфигурационном файле Apache? В phpinfo() видно сам модуль SSPI?
Документация в архиве библиотеки - doc/INSTALL; тестовый скрипт doc/whoami.php.

3

Re: Авторизация именем пользователя

Hanut сказал:

kolkol1
Как вы подключили SSPI в конфигурационном файле Apache? В phpinfo() видно сам модуль SSPI?
Документация в архиве библиотеки - doc/INSTALL; тестовый скрипт doc/whoami.php.

Из httpd.conf
LoadModule sspi_auth_module modules/mod_auth_sspi.so
....
# Configuration for mod_auth_sspi
<IfModule mod_auth_sspi.c>
    <Location /protected/>
        AuthName "A Protected Place"
        AuthType SSPI
        SSPIAuth On
        SSPIAuthoritative On
        SSPIOfferBasic On
SSPIDomain 10.36.161.101
SSPIOmitDomain On
        # SSPIBasicPreferred
        # SSPIUsernameCase lower
        require valid-user
    </Location>
</IfModule>
# End of mod_auth_sspi.

Из phpinfo()
Apache Version               Apache/2.2.8 (Win32) PHP/5.2.5 mod_auth_sspi/1.0.4
Раздел Additional Modules/Module name - пустой

whoami.php выдает:
You appear to be user
logged into the Windows NT domain (no domain info - perhaps SSPIOmitDomain is On)

4

Re: Авторизация именем пользователя

kolkol1
Модуль у вас загружен.

Я пробовал изначальный вариант, и он прекрасно работает на локальной машине в Firefox и Opera, но не работает в Internet Explorer.
Глобальная переменная $_SERVER["REMOTE_USER"] - видна. Разумеется, видна она только в каталоге protected.

<IfModule mod_auth_sspi.c>
    <Location /protected/>
        AuthName "A Protected Place"
        AuthType SSPI
        SSPIAuth On
        SSPIAuthoritative On
        SSPIOfferBasic On
        # SSPIBasicPreferred
        # SSPIUsernameCase lower
        require valid-user
    </Location>
</IfModule>

5

Re: Авторизация именем пользователя

Подскажите почему не видна переменная  $_SERVER["REMOTE_USER"]  если нету  require valid-user, если есть поле require то все ок. Из phpinfo() вообще нету REMOTE_USER а mod_auth_sspi.so подключен, спасибо.

6

Re: Авторизация именем пользователя

yupa
require valid-user - require является обязательным параметром.
Действие глобальной переменной $_SERVER["REMOTE_USER"] зависит от установки. В примере выше [mono]<Location /protected/>[/mono] означает, что будет защищен каталог protected и $_SERVER["REMOTE_USER"] будет видна только в нем.

7

Re: Авторизация именем пользователя

Подскажите как сделать что бы каталог был свободным для всех (не выпадала авторизационная формочка ни для кого) но при этом можно было использовать значение переменной $_SERVER["REMOTE_USER"]

<Directory "C:/Program Files/Apache2.2/htdocs/test">    
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative off
    SSPIOfferBasic Off
    SSPIBasicPreferred Off
    SSPIDomain mydomain
    SSPIOmitDomain off
    require valid-user
</Directory>

код работает,  для неопознанных юзеров просит ввести валидный  пароль/логин, а этого мне нужно избежать  sad

8

Re: Авторизация именем пользователя

yupa
К сожалению, не знаю как избежать вывода формы и возможно ли это.