Авторизация клиента с помощью Python Backend - PullRequest
3 голосов
/ 23 августа 2011

Я пишу панель для администрирования nginx (домены, переписывает и т. Д.), Svn и других сервисов. Для этого я пишу бэкэнд, который будет работать с root (для изменения конфигураций nginx, их перезагрузки, изменения паролей пользователей и т. Д.) И клиента (консольный клиент и веб-приложение).

Приложение работает на сокетах Unix, и я сделал для него очень простой протокол:

\0\0\0\0user\0key\0module\0command\0data\0

Ну, это довольно просто. Клиент отправляет команду и данные на сервер, fox ex:

\0\0\0\0morsik\0\0nginx\0add_domain\0www.domain.tld something\0

Проблема в том, как подтвердить, что пользователь действительно morsik? Для веб-интерфейса мне не нужно - у веб-страницы есть собственная авторизация, поэтому я могу послать ключ, который будет работать для каждого пользователя, которого никто не узнает. Проблема в том, если кто-то имеет доступ к SSH. Затем он мог бы написать простой клиент, который будет подделывать имя пользователя, а затем он мог изменить другую конфигурацию пользователя.

Итак, как мне сделать правильную авторизацию для пользователей?

1 Ответ

1 голос
/ 24 августа 2011

Не изобретай велосипед. ;) Мне эта дискуссия показалась поучительной:

...