Перейти к контенту

Apache 2.x module mod_auth_ipb


Рекомендуемые сообщения

Вот собственно, по совету Sannis`а создаю тему тут :D

Недавно встала задача: совместить учётки форума с учетками svn репозитория.

Вот себственно и результат.

Модуль для Apache 2.x, стандартной Basic авторизации,

с использованием в качестве базы учеток - базу форума IPB.

Данный модуль базируется на mod_auth_mysql ( _http://modauthmysql.sourceforge.net/ )

 

Возможно кому пригодится.

 

Установка:

Опишу процесс установки на *nix платформе...

Как под форточной - понятия не имею ;)

 

1. Скачиваем исходный код модуля отсюда:

2. Сохраняем в любое удобное место.

3. логинимся под рутом, или юзаем судо.

4.1. Если сидим под рутом, то выполняем следующее:
$ apxs -c -Lmysql_path -lmysqlclient -lm -lz mod_auth_ipb.c
$ apxs -i mod_auth_ipb.la

mysql_path
заменить на путь до библиотек mysql (ex.
/usr/local/lib/mysql
)

 

4.2. Если работаете под sudo:

К обеим командам добавить sudo
$ sudo apxs -c -Lmysql_path -lmysqlclient -lm -lz mod_auth_ipb.c
$ sudo apxs -i mod_auth_ipb.la

mysql_path
заменить на путь до библиотек mysql (ex.
/usr/local/lib/mysql
)

 

5. В httpd.conf добавляем строку:
LoadModule ipb_auth_module libexec/apache22/mod_auth_ipb.so

6. Перезагружаем индейца.

 

Конфигурация:

Для того, чтобы модуль начал работать - необходимо его включить в настройках хоста.

Сделать это можно либо в параметрах вашего хоста (httpd.conf --> <Directory>)

Либо в файле .htaccess в корне сервера.

 

Итак, доступные опции конфигурации:

ipbEnable on						# включат в работу модуль. (default: off)
ipbAuthoritative on				 # включает данный метод авторизации. (default: off)
ipbMySQLHost localhost			  # хост или ip mysql сервера (default: localhost)
ipbMySQLPort 3306				   # порт mysql сервера (default: read from mysql_config)
ipbMySQLSocket /tmp/mysql.sock	  # unix сокет для подключения к mysql серверу.
								# используется только для localhost (default: null)
ipbMySQLUser user_name			  # пользователь для подключения к базе данных. (default: null)
ipbMySQLPassword passwd			 # пароль для пользователя. (default: null)
ipbDB test						  # база данных форума. (default: test)
ipbUserTable ibf_members			# таблица с логинами (default: ibf_members)
ipbPassTable ibf_members_converge   # таблица с паролями пользователей (default: ibf_members_converge)
ipbGroupTable ibf_groups			# таблица с группами. (default: ibf_groups)
ipbPIDField converge_id			 # колонка с id пользователя в PassTable (default: converge_id)
ipbUIDField id					  # колонка с id пользователя в UserTable (default: id)
ipbGIDField g_id					# колонка с id группы в GroupTable (default: g_id)
ipbGUIDField mgroup				 # колонка с id группы в UserTable (default: mgroup)
ipbNameField name				   # колонка с именами пользователей в UserTable (default: name)
ipbGroupField g_title			   # колонка с именами групп в GroupTable (default: g_title)
ipbPasswordField converge_pass_hash # колонка с хешем паролей пользователей в PassTable (default: converge_pass_hash)
ipbSaltField converge_pass_salt	 # колонка с salt пароля пользователя в PassTable (default: converge_pass_salt)
ipbNoPasswd on					  # отключает режим проверки паролей. Будет проверяться только наличие пользователя (default: off)
ipbCharacterSet UTF8				# В какой кодировке работать с базой. (default: null)

 

Так же, чтобы данный модуль нормально заработал,

необходимо добавить строки:

AuthBasicAuthoritative Off
AuthUserFile /dev/null

иначе будет мат в логах.

 

Пример конфигурации виртуального хоста

Для одного из svn репозиториев.

<VirtualHost *:80>
	ServerName svn.domain.com
	ErrorLog "/usr/local/www/httpdoc/domain.com/svn-error.log"
	CustomLog "/usr/local/www/httpdoc/domain.com/svn-access.log" common
	<Location />
			DAV svn
			SVNParentPath /usr/local/www/domain.com/svn/
			SVNListParentPath on
	</Location>
	<Location /public/>
			AuthType Basic
			AuthBasicAuthoritative Off
			ipbAuthoritative On
			AuthUserFile /dev/null
			ipbEnable On
			ipbMySQLSocket /tmp/mysql.sock
			ipbDB board_db
			ipbMySQLUser board_user
			ipbMySQLPassword mypass

			### Write Access (groups Administrator and Developer)
			<Limit MKACTIVITY PROPPATCH PUT CHECKOUT MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE>
					Require group Administrator Developer
			</Limit>

			### Read Access (All existent users)
			<Limit GET PROPFIND OPTIONS REPORT>
					Require valid-user
			</Limit>
	</Location>
</VirtualHost>

 

Известные проблемы:

1. Не проверялось на использование имен пользователей и групп состоящих более чем из одного слова.
  Так же, не проверялось на возможность использования русских символов в именах групп и пользователей.

 

Вроде ничего не забыл :)))

Ссылка на комментарий
Поделиться на других сайтах

Подправил заголовок для удобства.

 

1. Нельзя использовать имена пользователей и групп состоящих более чем из одного слова.

Так же, не проверялось на возможность использования русских символов в именах групп и пользователей.

Из-за

Require group Administrator Developer

? странно, что там в кавычках нельзя строки писать...

Ссылка на комментарий
Поделиться на других сайтах

1. Нельзя использовать имена пользователей и групп состоящих более чем из одного слова.

Так же, не проверялось на возможность использования русских символов в именах групп и пользователей.

Из-за

Require group Administrator Developer

? странно, что там в кавычках нельзя строки писать...

Вообще, по-идеи, можно ;)

Но у меня не работало :)

Да и надобности тогда разбираться не было :)

Как будет свободное время - поковыряю, мб поправлю :)

 

Поправил в известных проблемах на "не тестировалось"

Ибо у друга вроде завелось нормально :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.