Доброго времени, уважаемые разработчики! Надеюсь на вашу помощь, мне нужен плагин или компонент для автоматической авторизации пользователей по ip+mac на внутреннем сайте локальной сети. Картина такая: есть локальная сеть с сервером прокси (распознаёт клиентов по ip+mac) и веб-сервером (апач),с сайтом на joomla и доступом к нему с интернет. контролера домена нет и не нужно. Мне нужно сделать автоматическую авторизация пользователей из локальной сети. Интересует такой вариант: определение ip и мас и сравнение их с добавлеными к таблицам пользователей в б.д. в случае совпадения - авторизация конкретного пользователя, несовпадение - ничего (отображается форма ввода логина и пароля) Что посоветуете? где копать.. Прийму комерческие предложения тоже. заранее спасибо Пытался частично реализовать задачу с помощью плагина SSO - IP но он неумеет определять mac, и вобщё чёто не складывается у меня с ним
Привет! Про авторизацию по mac-адресу лучше забыть. MAC известен только самому компу и роутеру, с которым тот непосредственно законтачен. Все. Далее он не передается. Полагаться на JavaScript на стороне клиента, который будет определять его mac и "честно" передавать — дело ненадежное. Можно, наверное, извратиться, и заставлять сервер залезать телнетом на роутеры, чтобы сливать оттуда arp таблицу раз в 5 минут, но я бы от такой оргии отказался. А в остальном, авторизацию можно делать плагином, который будет смотреть ip законнекченного клиента, и если тот "в обойме", пускать его. Если ip у одного клиента каждый раз может быть разный, то тут облом.. И вообще, это ненадежно - однозначно идентифицировать посетителя только по его IP - дождаться, пока оригинальный комп выключат, и законнектиться с его IP - и ты в сети и при правах - слабовато.. К серверу клиенты, выходит, коннектятся через проксю, или напрямую, раз это локалка? Можно было бы на проксе что-то накрутить, чтобы она умно приписывала какой-то хэш ко всем запросам по внутр. сети — передавала по сути эту инфу про ip и mac. В заголовках запроса. Тут есть лучик надежды..
Повторю: сайт работает на компе в месте с прокси сервером который аутентифицирует машини из локальной сети (без роутеров) по статическому ip (типа 192.168.0.X) и ранее зарегистрированому MAC для того чтоб пускать их в интернет и вести по ним статистику. к сайту можно получить доступ по http://192.168.0.1 (или нетбиос имя, или http://внешний.статический.айпи.адрес) а с интернета только http://внешний.статический.айпи.адрес ещё есть такой скрипт: Код (PHP): <?php if (getenv('HTTP_X_FORWARDED_FOR')) { $testip = getenv('HTTP_X_FORWARDED_FOR'); } else { $testip = getenv('REMOTE_ADDR'); } $mac = get_macaddr($testip); if ($mac !== false) { echo "Для IP ".$testip." MAC=".$mac; } else { echo "Для IP ".$testip." MAC ОПРЕДЕЛИТЬ НЕ УДАЛОСЬ "; } function get_macaddr($ip) { $mac = false; exec("arp -a ".$ip, $retvars); for ($i=0; $i< count($retvars);$i++) { if ($i == count($retvars)-1) { list($t_ip, $mac, $t_type) = sscanf(strtoupper($retvars[$i]),"%s %s %s"); } } if (strlen ($mac) !== 17) { $mac = false; } return $mac; } ?> и есть такойже для определения сервером. нужно написать модуль для автоматической аутентификации пользователей из локальной сети на основе аналогичного php плагина и полей с mac и ip в таблице users базы данных.
Посмотрите /plugins/authentication/example.php — это заготовка плагина аутентификации. Внутри plgAuthenticationExample() надо проверить переменные сервера - IP и Mac, если его "видно", сверить с таблицей, где хранится соответствие ip и id пользователей, и авторизовать соотв. пользователя.
sergiks, если б я шарил php, я бы не морочил никому голову на етом форуме если можеш мне помочь с модулем и таблицей - скажи, яже сказал- с коммерческими условиями согласен!