Страница 1 из 1
Регистр логинов
Добавлено: Ср апр 12, 2006 15:13
dm
Здравствуйте! У меня пользователи авторизуются в АД, списки пользователей соотв домееных групп забираются из AD скриптом и хранятся в текстовых файлах, по которым и идёт разделение доступа по allow_id. В этих файлах логины в виде DOMAIN+user. Проблема в том, что разные браузеры передают связку домен+логин по-разному, пример - IE домен в верхнем, а логин в нижнем регистрах, а Opera всё в нижнем регистре. Для сквида без проблем, тк у него в acl можно указать ключ -i, то есть игнорировать регистр. А для режика приходится дублировать логин 2 раза с доменом в верхнем и нижнем регистрах. Нельзя как-то включить регистронезависимость?
#define CASE_INDEPENDENT
в vars.h
ничего не меняет
Добавлено: Ср апр 12, 2006 15:22
Slava
Проблема ясна, для её решения, хорошо бы от Вас получить дополнительный материал.
1. Скачайте и откомпилите
http://www.rejik.ru/download/logger.c
2. Подключите его до режика:
a. Сделайте файлик r.sh следующего содержания:
/usr/local/rejik3/logger | /usr/local/rejik3/redirector
b. Пропишите r.sh в качестве редиректора в сквиде.
После этого, в /usr/local/rejik3/elog будет сыпаться все то, что получает режик от сквида.
Используйте различные браузеры, что бы все варианты отразились в elog.
Если возможно, то с разных ip или логинов.
Либо разграничьте по времени, и распишите, что тогда-то ходили одним браузером, а после другим. Это мне нужно, что бы отследить все возможные варианты, не перебирая каждую строку вручную.
Получившийся elog пришлите мне по почте.
Добавлено: Ср апр 12, 2006 15:23
Slava
И еще желательно конфиг режика, где видно, как вы прописывали логины, если они в дополнительном файле, то этот файл
Добавлено: Чт апр 13, 2006 7:07
dm
Хорошо. Сделал редиректор через /usr/local/rejik3/logger | /usr/local/rejik3/redirector. Также в домене SWITCH был заведен пользователь TestUSER(специально с разным регистром). Для тестирования использовалось: Windows - IE6, Opera 8, Firefox 1.5, FlashGet; Linux: Konqueror 3.5.1, Firefox 1.5, Opera 8. Авторизация пользователя в этих программах в разных регистрах привела следующим результатам: IE, Firefox(в обеих ОС) всегда приводят результат к виду SWITCH+testuser(в не зависимости от того, в каком регистре вводить авторизационную информацию: switch+TESTUSER, SWITCH+TestUSER и тп), а Konqueror, Opera(в обеих ОС) и FlashGet всегда передают switch+testuser(также в не зависимости от регистра ввода). Вот примеры из логов:
Opera:
http://xml.opera.com/update/ 10.37.12.222/- switch+testuser GET
IE:
http://stb.msn.com/i/89/8561D4DA8734DA1 ... EEFFC5.jpg 10.37.12.222/- SWITCH+testuser GET
FlashGet:
http://download.microsoft.com/download/ ... _adsr2.iso 10.37.12.222/- switch+testuser GET
Для других браузеров аналогично.
То есть варианта передачи связки логин\пароль в зависимости от браузера всего 2: DOMAIN+login и domain+user
Пользователи у меня в файлах, формат:
SWITCH+an
SWITCH+dm
...............
Сейчас приходится их дублировать, добавляя:
switch+an
switch+dm
................
Да, и если логин в смешанном регистре, то надо приводить его к нижнему(например, для TestUSER надо делать записи SWITCH+testuser и switch+testuser), только тогда rejik правильно их отрабатывает.
Добавлено: Чт апр 13, 2006 7:54
Slava
Ясно что делать, правда немного странно видеть "+" между доменом и логином.
в elog именно "+"?, а не "/" и не юникоде символ?
Да, нужна в принципе информация о домене или только логин, что бы понять, пускать или нет? (данная информация нужна мне для 4-го режика).
В вариантах DOMAIN+login и domain+user:login и user одно и тоже или разное?
Добавлено: Чт апр 13, 2006 8:03
Slava
Хорошо бы получить от Вас файлик elog, что бы я смог потестировать на нем изменения.
Пока же могу предложить отредактировать redirector.c
/***********************
****** Work cycle *****/
// Get input string
while (fgets(str,ML_URL,stdin)!=NULL)
{
// convert input string to input structure->(url,who,ident,method)
if(parse_input(str))
{
// If error in convert
printf ("%s",str);
fflush(stdout);
sprintf(etmp,"Error convert input string to input structure str=%s",str);
err_mes(etmp);
continue;
};
// Это то, что надо добавить
#ifdef CASE_INDEPENDENT
for (z=0;z<strlen(input_ident);z++)
input_ident[z]=tolower(input_ident[z]);
#endif
Добавлено: Чт апр 13, 2006 8:08
dm
Slava писал(а):Ясно что делать, правда немного странно видеть "+" между доменом и логином.
в elog именно "+"?, а не "/" и не юникоде символ?
Именно "+" - это такой разделитель у меня(настраивается в sambe)
Slava писал(а):
Да, нужна в принципе информация о домене или только логин, что бы понять, пускать или нет? (данная информация нужна мне для 4-го режика).
В принципе надо и домен учитывать и логин. В сложной сети на одном прокси могут авторизовываться пользователи из разных доменов, между которыми настроены доверительные отношения. То есть могут авторизовываться два польователя: DOMAIN1+vasya и DOMAIN2+vasya, без учёта домена это один человек, а на деле совершенно разные логины
Slava писал(а):
В вариантах DOMAIN+login и domain+user:login и user одно и тоже или разное?
Да, это одно и тоже. Я приводил пример: пользователь в домене TestUSER, для него будет передаваться пара либо SWITCH+testuser, либо switch+testuser.
Добавлено: Пн ноя 12, 2007 15:58
mrOleg
Вопрос с логинами решен таки ?
А то у мну проблама с регистром пользователей