В очередном продолжении рассказов про построения web-сервисов, хочу рассмотреть вопросы безопасности и аутентификации общения soap-клиента и soap-сервера.
Пусть условия таковы:
- сервер и клиент общаются друг с другом через публичный интернет, который наполнен снифферами;
- сервер имеет статический ip-адрес, а клиент находится за nat-ом;
- вместе с клиентом за тем же nat-ом находятся опасные соседи, которые могут и хотят получить к чему-нибудь не авторизованный доступ;
- и пусть клиента за этим nat-ом два: у них разное по функциональности ПО, с разными возможностями по построению soap-клиентов;
- ну а мы, естественно, обмениваемся супер секретными данными. :)
И так, как было рассмотрено в предыдущих постах, собираем soap-сервер на apache2:
Building a Web Services in Python
Поднимаем XML веб-сервис на Пайтоне
1. Python:
В системе должен быть установлен python, версии не ниже 2.3
2. Устанавливаем apache ( httpd-2.2.8 ):
$ ./configure --prefix=/usr/local/apache2-soap \ --with-mpm=prefork \ --enable-so \ --enable-mods-shared="actions alias asis auth rewrite ssl" \ --disable-userdir \ --disable-cgi \ --disable-include \ --disable-autoindex $ make $ make installЗдесь, в общем-то, обычная установка apache. И если у вас уже есть apache, можно использовать его. Здесь я попытался собрать «лёгкий» апач, с минимумом модулей. Использовать можно как apache 1.3, так и apache 2.0 или 2.2
3. Устанавливаем mod_python ( mod_python-3.3.1 )
Russian Apache
Без особого шума Русский Апач смигрировал на Apache 1.3.41 – Russian Apache 1.3.41 PL30.24
.htaccess to httpd.conf
Есть большой проект с кучей разнородных директорий и поддиректорий, в каждой нужны какие-то особые правила: сюда пущать, сюда не пущать, здесь можно показывать список файлов в директории, а тут низя.
Писать огромный конфиг с большим количеством директив <Directory></Directory> было лень, да и потестить хотелось оперативно. Потому разрешил «AllowOverride All», разложил по нужным дирам/поддирам .htaccess файлы. Отладил, проверил — работает как надо. Встал вопрос перенести это в httpd.conf







