The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Распределенная авторизация или не только авторизация"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Распределенная авторизация или не только авторизация" +/
Сообщение от XMan (?), 30-Июл-03, 21:42 
Короче. Делается всё элементарно - ищется модуль для системной библиотеки с названием, типа nss-mysql (для постгреса такой есть), ставится в систему, строится на предмет сервера и таблиц и вообще забывается про то, как кто где авторизуется.

Серьезный минус только один - нужно заставить PAM при создании пользователя шифровать пароль и засылать его на SQL-сервер. Ручной метод "втупую" - "adduser xxx; passwd xxx", заглядываем в /etc/shadow, берем оттуда пароль, сами запросом втыкаем его в нужную таблицу, "userdel xxx; rm -rf /home/xxx".

Плюсы:

a) в /etc/passwd, /etc/group и /etc/shadow никаких ссылок на пользователей нет - всё лежит в базе;

б) пароли от запрашивающей программы никуда не передаются - от сервера поступает пароль в зашифрованном виде в соответствии с системой, в которой его шифровали (в линухе в последнее время обычно MD5). То есть открытые пароли по сети вообще не бегают;

в) данные по соответствию uid/gid символьным именам пользователей и групп доступны любой программе. Если не использовать nss, то половина серверных программ вообще работать не будет. Например, почтовые сервисы;

г) имеется масса потенциальных возможностей, которых нет в стандартных средствах *nix.

Я пол-года назад почти дописал сетевую авторизации со своим протоколом (дабы отвязать клиента от конкретной SQL-базы вообще - к ней привязана только серверная часть) с использованием механизма NSS и базы PostgreSQL. Отлично работал. За основу клинетской части был взят тот самый nss-pgsql и капитально переписан.
Сейчас потихоньку переделываю всё это хозяйство - сервер перевел на потоки с порционным созданием в зависимости от нагрузки (аля NetWare), наворотил конфигурацию (в принципе, можно создавать группы в группах, чего нельзя делать стандартными средствами *nix), имеется возможность раздавать свои данные разным сервисам (например, зачем команде "ls -l" посылать пароль, если ей нужно только имя пользователя и группы узнать) на разных машинах, имеется возможность кеширования на стороне клиента и на стороне сервера (на случай частых запросов одного и того же; например, "ls -l ~/"). Есть некоторые мысли по поводу защиты от DoS-атак. Еще некоторые улучшения будут. Планирую в ближашие пару месяцев таки добить это дело и пустить в работу на офисе, если времени будет достаточно. А то совсем загрузили фигней всякой :)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Распределенная авторизация или не только авторизация, ziben, 29-Июл-03, 20:40  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру