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

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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