• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Web-авторизация

  • Автор темы nvyush
  • Дата начала
R

RAJ

domcfg направляет в базу с формой MappingLoginForm (обычно dclf.nsf)
на форму можно записать поле, кот. заполнится агентом (с правами сервера) при открытии
в это поле внести список юзеров из нужных групп
и не давать сабмит, при совпадении

самое интересное, что на момент заполнения формы мы не знаем с кем имеем дело
пока не пройдёт авторизация :)

и какие имена юзера заносить в этот список? все возможные(ShorName, FullName)? трудоемко однако, как по моему
 
N

nvyush

самое интересное, что на момент заполнения формы мы не знаем с кем имеем дело
пока не пройдёт авторизация :)

Вот мне и нужно после авторизации проверить, есть ли пользователь в нужной группе, и если его там нет, вернуть ошибку авторизации. Только я никак не пойму куда обращается форма $$LoginUserForm. База dclf.nsf на серваке отсутствует :(.
 
R

RAJ

наверное, это зашито в самой задаче "HTTP"
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
245
агенты не работают! :)
но есть другой вариант
поменять у формы сабмит акшн (можно в дизайне, хотя так могет и не работать воще) или через JS (это точно робить и юзер будет авторизован)
на сабмит - направлять на "проверку"
будет ли юзер авторизован - неважно, имя-то берем из поля
второй момент - группа известна заранее и её юзеров можно и получать, а авторизацию тока по полному имени (в веб) сделать - это и секурней будет

база может называться по др. и надо сделать сешн авотризацию (на сервере) или проверить его настройки
смотреть надо domcfg.nsf, SignInFormMappings
в это базе есть и дефолтная форма
$$LoginUserForm (ежели мапинга нет)
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Юзеров много, лазить по всем ящикам и настраивать всем ACL таким образом очень геморрно, к тому же это не решает проблемы доступа к базам приложений.
какую конкретно это проблему не решает?

как варинат вставить в ПЯ форму/фрейм, видимую лишь определенной группе и админу и указать её как начальную при открытии через веб, все кто туда не относятся будут отваливаться по ошибке :)
 
K

Klido

какую конкретно это проблему не решает?

посмотрел, подумал... пожалуй соглашусь - админская задача выделить ПЯки группы и сразу применить макс. интернет доступ НЕт ДОСТУПА... ну а потом админу же и админить если кому запретят/разрешат...
ну уж точно не ковырять стандартные шаблоны и встраивать туда дополнительный бубенчик :)
 
N

nvyush

агенты не работают! :)
но есть другой вариант
поменять у формы сабмит акшн (можно в дизайне, хотя так могет и не работать воще) или через JS (это точно робить и юзер будет авторизован)
на сабмит - направлять на "проверку"
будет ли юзер авторизован - неважно, имя-то берем из поля
второй момент - группа известна заранее и её юзеров можно и получать, а авторизацию тока по полному имени (в веб) сделать - это и секурней будет

база может называться по др. и надо сделать сешн авотризацию (на сервере) или проверить его настройки
смотреть надо domcfg.nsf, SignInFormMappings
в это базе есть и дефолтная форма
$$LoginUserForm (ежели мапинга нет)

В SignInFormMappings - пусто (видимо мапинга нет). До авторизации в names.nsf не достучаться - доступ из интернет закрыт. Пытаюсь разобраться как работает $$LoginUserForm - уже мозги кипят, на ней есть кнопка, которая ничего не делает (клик пустой, закладка хтмл тоже пустая).
 
R

RAJ

какую конкретно это проблему не решает?

как варинат вставить в ПЯ форму/фрейм, видимую лишь определенной группе и админу и указать её как начальную при открытии через веб, все кто туда не относятся будут отваливаться по ошибке :)

ну с ПЯ, допустим сделали,
а остальные базы - тоже перенастраивать подобным образом? :)
 
N

nvyush

какую конкретно это проблему не решает?

Это не решает проблему доступа к непочтовым базам. Если явно прописать адрес в строке браузера, редирект не работает, после авторизации открывается запрошенная база. Таким образом пользователь из интернет может открыть базу с документацией для служебного пользования и слить ее оттуда. На рабочих местах пользователей нет ни FD, ни CD/DVD, USB-порты закрыты, так что на рабочем месте инфу можно копирнуть только с карандашом в зубах :) (кто что печатал тоже сечется - все принтеры сетевые). А тут такая дырень через инет...
 
R

RAJ

можно попробовать заморочиться решением от lmike.
иметь группу разрешенных логинов, которая будет храниться в скрытом поле формы авторизации,
по умолчанию кнопку "Submit" скрыть, а при вводе логина на событии OnKeyPress проверять наличие введенного логина в среди списка и, при его наличии, показать кнопку
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
245
В SignInFormMappings - пусто (видимо мапинга нет). До авторизации в names.nsf не достучаться - доступ из интернет закрыт. Пытаюсь разобраться как работает $$LoginUserForm - уже мозги кипят, на ней есть кнопка, которая ничего не делает (клик пустой, закладка хтмл тоже пустая).
кнопка домины (и не только) всегда вызывает сабмит формы (так-как у неё тип такой - submit), там ничего и недолжно быть :)
еще есть всякие поля - например RedirectTo, ежели форме поставить "генерить ХТМЛ...", то поле можно менять через JS (например)
 
N

nvyush

можно попробовать заморочиться решением от lmike.
иметь группу разрешенных логинов, которая будет храниться в скрытом поле формы авторизации,
по умолчанию кнопку "Submit" скрыть, а при вводе логина на событии OnKeyPress проверять наличие введенного логина в среди списка и, при его наличии, показать кнопку

Можно бы и так, но при этом нужно посылать в инет список разрешенных логинов, хоть и в скрытом поле. Мало того, что при этом форма авторизации будет дольше грузиться, так и скрытые поля продвинутый юзер при желании может посмотреть (в ИЕ - вид / просмотр хтмл-кода).
 
K

Klido

Цитата(ToxaRat @ 23:07:2009, 18:25 ) *
какую конкретно это проблему не решает?


Это не решает проблему доступа к непочтовым базам. Если явно прописать адрес в строке браузера, редирект не работает, после авторизации открывается запрошенная база. Таким образом пользователь из интернет может открыть базу с документацией для служебного пользования и слить ее оттуда. На рабочих местах пользователей нет ни FD, ни CD/DVD, USB-порты закрыты, так что на рабочем месте инфу можно копирнуть только с карандашом в зубах smile.gif (кто что печатал тоже сечется - все принтеры сетевые). А тут такая дырень через инет...

всё запуталось :) тут говорилось, что в каждой базе в ACL на последней вкладке есть специальная фишка - ограничение доступа из инета к именно этой базе. И ежели там поставить "Нет доступа", то никто не сможет открыть базу через инет (с оговоркой на SSL). Доступ ТОЛЬКО из клиента.
Соответственно, вместо того, чтобы городить всё что описано выше на уровне полей, форм и пр. стоит сделать именно так. При этом задача решается в кратчайшие сроки и админом, без привлечения других специалистов.
 
N

nvyush

кнопка домины (и не только) всегда вызывает сабмит формы (так-как у неё тип такой - submit), там ничего и недолжно быть :)
еще есть всякие поля - например RedirectTo, ежели форме поставить "генерить ХТМЛ...", то поле можно менять через JS (например)

Посмотрел форму в хтмл. Обнаружил тэг <FORM name=_DominoForm action=/names.nsf?Login method=post>. У меня такое впечатление, что запрос идет в names.nsf, если авторизация не прошла, возвращается код причины (неверный логин/пароль, истек срок пароля и т.п.), а если прошла, то пользователь "пропускается" куда хотел, а форме управление не возвращается. Где в names.nsf может прятаться обработка запроса ума не приложу, веб-сервисов там нет.

всё запуталось :) тут говорилось, что в каждой базе в ACL на последней вкладке есть специальная фишка - ограничение доступа из инета к именно этой базе. И ежели там поставить "Нет доступа", то никто не сможет открыть базу через инет (с оговоркой на SSL). Доступ ТОЛЬКО из клиента.
Соответственно, вместо того, чтобы городить всё что описано выше на уровне полей, форм и пр. стоит сделать именно так. При этом задача решается в кратчайшие сроки и админом, без привлечения других специалистов.

Так вопрос в том, чтоб закрыть доступ не всем, а почти всем. Нужно оставить возможность доступа ограниченному кругу лиц.
 
K

Klido

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

тема началась с почты :) по пути уже надумали, что надо и на другие базы распространить...
соответственно с почтой - кому надо - тому и зарубили - индивидуально, по списку
со служебной софтиной - хз, думаю это стотыщпятьсот раз сделали с момента выхода 5-ки, надо загуглить и всё будет..
но это некошерно - давать доступ всем, а потом некоторым его вырезать.... проще давать доступ не всем :) в смысле по хттп
 
R

RAJ

Можно бы и так, но при этом нужно посылать в инет список разрешенных логинов, хоть и в скрытом поле. Мало того, что при этом форма авторизации будет дольше грузиться, так и скрытые поля продвинутый юзер при желании может посмотреть (в ИЕ - вид / просмотр хтмл-кода).

хорошо, убираем скрытое поле,
кнопку убрать, и написать её на html с обработчиком OnClick
и при её нажатии через AJAX запросить у сервера по введенному логину информацию по пользователю
и в зависимости от ответа делаем нужное действие - сабмитим или открываем страницу с ошибкой
 
K

Klido

покопал тут ещё.. в частности базовое

относительно где поиск имен при аутентификации идет
It is possible to restrict the allowed user names even further. By adding the NABWebLookupView parameter to the server's Notes.ini file, you can restrict which view is used to identify users. For example, you can create a custom view named ($web) in the Domino Directory that is sorted by full name. You can then set the NABWebLookupView=($web) parameter in Notes.ini and restart the HTTP task. After the task is started, the Web site is only accessible by full name. Similar functionality is possible with an LDAP server by modifying the authentication filter to list only the allowed LDAP field names. The default LDAP authentication filter is (|(cn=%*)(|(&(sn=%a)(givenname=%z))(&(sn=%z)(givenname=%a)))). This filter typically translates to authentication by full name (for example, John Doe).
т.е. во вьюху отобрать тех, кому можно и больше никого не пустит...
но всё равно задача админская :)
 
N

nvyush

хорошо, убираем скрытое поле,
кнопку убрать, и написать её на html с обработчиком OnClick
и при её нажатии через AJAX запросить у сервера по введенному логину информацию по пользователю
и в зависимости от ответа делаем нужное действие - сабмитим или открываем страницу с ошибкой

Для меня это уже высший пилотаж. Можно поподробнее про AJAX? И как на JS открыть нужную базу/представление/документ?
 
R

RAJ

Для меня это уже высший пилотаж. Можно поподробнее про AJAX? И как на JS открыть нужную базу/представление/документ?


делайте как Klido порекомендовал - то что вам нужно без гемороя :)

покопал тут ещё.. в частности базовое

относительно где поиск имен при аутентификации идет
It is possible to restrict the allowed user names even further. By adding the NABWebLookupView parameter to the server's Notes.ini file, you can restrict which view is used to identify users. For example, you can create a custom view named ($web) in the Domino Directory that is sorted by full name. You can then set the NABWebLookupView=($web) parameter in Notes.ini and restart the HTTP task. After the task is started, the Web site is only accessible by full name. Similar functionality is possible with an LDAP server by modifying the authentication filter to list only the allowed LDAP field names. The default LDAP authentication filter is (|(cn=%*)(|(&(sn=%a)(givenname=%z))(&(sn=%z)(givenname=%a)))). This filter typically translates to authentication by full name (for example, John Doe).
т.е. во вьюху отобрать тех, кому можно и больше никого не пустит...
но всё равно задача админская :)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
245
во-первых - список нужен запрещенных юзеров (он меньше возможно :) )
во-вторых - знание этого списка ничем не поможет юзеру аутентифицироваться (у него нет др. аутентификации)

в-остальных (и это упоминалось выше)



но админское решение предпочтительнее!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!