Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Web Ирбис и Z-Ирбис :  ИРБИС Irbis
 
Авторизация по нестандартным полям
Пользователь: sio.ui@kemguki.ru (IP-адрес скрыт)
Дата: 26, February, 2016 12:33

Вебирбис авторизует пользователей по связке Фамилия – Иденитификатор. У нас у всех пользователей есть единый логин и пароль от других наших информационных систем, которые мы можем забить в ирбис в базу читателей в любые поля, например 101 и 102. Как настроить проверку именно по этим полям?

Также в идеале хранить в базе ирбиса не сам пароль, чтобы его не смогли прочитать билиотекари, а md5/sha1 хэш. Возможно ли настроить проверку по хэшу?

Дворовенко Вадим Николаевич,
заведующий сектором информационного обеспечения Управления информатизации КемГИК

Re: Авторизация по нестандартным полям
Пользователь: Карауш (IP-адрес скрыт)
Дата: 26, February, 2016 13:56

1. Посмотреть, какие поля не используются в БД RDR и писать туда, что хотите.
2. Поправить файлы RDR.fst и RDR.ifs (если есть) в строке, где формируется префикс поиска ID= (добавить то, что вам нужно).
3. пересоздать словари.

Что касается md5.
Т.е. нужно в поле, скажем 102, записать свертку из какой-то системы.
Затем при создании словаря создать префикс ID= с полями кода и расшифрованного пароля.
Нужно переделывать RDR.fst и rdr.ifs, и придется подключать внешнюю dll для формирования (дешифрации) этого поля. Пароль тогда будет храниться в словарях.

Re: Авторизация по нестандартным полям
Пользователь: sio.ui@kemguki.ru (IP-адрес скрыт)
Дата: 29, February, 2016 04:37

С первым я и там разобрался, не используются поля 101, 102, 103. Мне их хватит для нужных данных.
Индекс я пока не знаю как создать, но с этим разберусь, это документированный процесс и думаю можно будет поле 101 сделать поисковым.
Файл RDR.fst у меня есть в БД читателей, и именно туда и нужно прописывать описание индекса. Но строчки 'ID=' там нет. Файла RDR.ifs у меня нет в принципе.

Но это всё касается Ирбиса и никак не затрагивает Веб-ирбис. А я пытаюсь изменить логику АВТОРИЗАЦИИ веб-ирбиса, поэтому хочу понять как в веб-ирбисе сформировать другой запрос на проверку логина/пароля.
Кроме того, предполагаю, что если по вашему рецепту в базе читателей поле ID станет другим полем, то поломаются какие-то другие процессы, связанные с читателями и опирающимися на идентификатор читателя.

Re: Авторизация по нестандартным полям
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 04, March, 2016 23:55

sio.ui@kemguki.ru написал(а):
-------------------------------------------------------
> Но
> строчки 'ID=' там нет. Файла RDR.ifs у меня нет в
> принципе.

Префикс определяется параметром RdrPrefReader=. Обычно это RI= В данном случае, думаю, Александр Сергеевич привёл данный префикс в качестве примера. Этот же префикс использует книговыдача.

Re: Авторизация по нестандартным полям
Пользователь: sio.ui@kemguki.ru (IP-адрес скрыт)
Дата: 10, March, 2016 07:28

Спасибо, более-менее получилось. Для истории опишу порядок действий.
1. Через АРМ администратора отредактировать рабочий лист читателя в базе RDR, добавив поля для логина (101) и пароля (102), чтобы можно было вводить и смотреть учетные данные читателей.
2. В папке ирбиса /datai/rdr/RDR.fst добавить строчку
101 0 "USERNAME="v101
3. Через АРМ администратора пересоздать словари для БД RDR
4. В папке веб-ирбиса (на веб-сервере) /cgi-bin/irbis_server.ini изменить
[Reader]
RdrPrefReader=RI=

[Request]
RQSTTAGFAMILYREADER=10
на
[Reader]
RdrPrefReader=USERNAME=

[Request]
RQSTTAGFAMILYREADER=102
5. В веб-ирбисе /cgi-bin/frames_r/Default/Not_author_3.frm изменить
<div style="margin:5px;color:white;text-align:left;font-weight:bold;font-size:8pt;">
~~Фамилия~~<br>
<input type="text" name="Z21FAMILY" style="width:130" />
</div>
<div style="margin:5px;color:white;text-align:left;font-weight:bold;font-size:8pt;">
~~Пароль~~<br>
<input type="Password" name="Z21ID" style="width:70" onkeydown="if (event.keyCode==13) LOGIN.submit()">&nbsp;
на
<div style="margin:5px;color:white;text-align:left;font-weight:bold;font-size:8pt;">
Логин<br>
<input type="text" name="Z21ID" style="width:130" />
</div>
<div style="margin:5px;color:white;text-align:left;font-weight:bold;font-size:8pt;">
Пароль<br>
<input type="Password" name="Z21FAMILY" style="width:70" onkeydown="if (event.keyCode==13) LOGIN.submit()">&nbsp;
6. В вебирбисе в форме заказа литературы /cgi-bin/frames_r/Make_order/order_form.frm" заменить
<input type="hidden" name="Z21FLAGID" value="1">
<?if (v10<>'') then '<input type="hidden" name="Z21FAMILY" value="',&uf('+3E',if &uf('IMAIN,GENERATION,')='32' then &uf('+3U',v10) else v10 fi ),'">'?>

<?'<input type=','"','hidden','"',' name=','"','I21DBN','"','value=','"',S(v3331,'_ZAKAZ'),'">'?>
<?'<input type=','"','hidden','"',' name=','"','P21DBN','"','value=','"',v3331,'">'?>
    <tr>
      <td valign="Top" width="50%">
      <div align="Right">~~Идентификатор читателя~~:<br>
      </div>
      </td>
      <td valign="Top"><input name="Z21ID" type="password"  size="40"><br>
      </td>
    </tr>
на
<input type="hidden" name="Z21FLAGID" value="1">
<?'<input type=','"','hidden','"',' name=','"','I21DBN','"','value=','"',S(v3331,'_ZAKAZ'),'">'?>
<?'<input type=','"','hidden','"',' name=','"','P21DBN','"','value=','"',v3331,'">'?>
    <tr>
      <td valign="Top" width="50%">
      <div align="Right">Логин:<br>
      </div>
      </td>
      <td valign="Top"><input name="Z21ID" type="text"  size="40"><br>
      </td>
    </tr>
    <tr>
      <td valign="Top" width="50%">
      <div align="Right">Пароль:<br>
      </div>
      </td>
      <td valign="Top"><input name="Z21FAMILY" type="password"  size="40"><br>
      </td>
    </tr>

Для варианта с проверкой пароля по хэшу придётся в поле поле 102 хранить хэш пароля, а преобразование пароля в хэш делать на javascript перед отправкой формы



Редактировано 2 раз. Последний раз 11.03.2016 08:28 пользователем sio.ui@kemguki.ru.

Re: Авторизация по нестандартным полям
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 02, March, 2021 13:30

В развитие темы - прошу на уровне разработчиков рассмотреть возможность внесения в функционал Web-модулей (в ИРБИС128 это давно есть но без соли) преобразование паролей по MD5 c применением т.н. соли и в интерфейсе при нажатии на кнопку формы авторизации предусмотреть преобразование введенного значения пароля в хеш (при определенном значении в ini файле конфигурации: PWDHASH=1)

Re: Авторизация по нестандартным полям
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 02, March, 2021 15:00

Главное, возможность читателю восстановить и сбросить пароль. А то вариации: пароль фамилия, а логин - номер билета, немного 80-е напоминают.

Re: Авторизация по нестандартным полям
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 02, March, 2021 17:17

Ну, что касается системы восстановления паролей, то это стандартная схема, которую в принципе можно и самим подтянуть (хоть и не просто).

Фому запроса на смену пароля сделать не сложно. А вот дальше работают инструменты ФЛК, автоввод и пакетные задания в АРМ Администратор. Можно организовать отправку писем по электрнонной почте с короткоживущими ссылками на форму изменения пароля.

При этом оригинал пароля не будет доступен пользователям, если использовать промежуточную БД.

возможно по ссылке предлагать не форму ввода нового пароля, а только инициировать смену пароля и отправлять пароль уже на адрес электронной почты конкретного пользователя. Достать его (пароль) для отправки письма можно из предыдущих версий записей при помощи соответствующего юнифора.

В общем, если эта тема не будет развита разработчиками, то к концу апреля будем очередной лайфхак готовить самостоятельно. В рамках подготовки тем для БиблиоПитера можно задаться целью.
Главное, что ИРБИС всё это позволяет сделать и без программистов! Но с ними куда легче, интереснее и качественнее получается!



Редактировано 1 раз. Последний раз 02.03.2021 17:18 пользователем А. Роман.

Re: Авторизация по нестандартным полям
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 02, March, 2021 22:54

Лучше хранить в базе только хеш пароля. Ваш пароль такой-то в письме, признак того что кто-то его знает )

Re: Авторизация по нестандартным полям
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 02, March, 2021 23:16

Ну эт на любителя и по ситуации. При отправке писем из ИРБИС они нигде не задерживаются (хотя в некоторых случаях стоило бы), передаются с применением SSL, а дальше - смотря куда отправляются. но и тут есть плюс - мы пароль передали. а уже хранить его или нет получатель сам пусть решает.

Да, нигде не хранить открытые пароли безопаснее чем хранить их, но ведь не от банковского же аккаунта пароли обсуждаем ;)



Редактировано 1 раз. Последний раз 02.03.2021 23:18 пользователем А. Роман.

Re: Авторизация по нестандартным полям
Пользователь: SokV (IP-адрес скрыт)
Дата: 02, March, 2021 23:36

Добавлю замечание, касающееся той ситуации, в которой пользователь сам может создать пароль... Верно, не от банковского аккаунта. Но того, что некоторые пользователи используют одинаковый или схожим образом построенный пароль от банка и от библиотечного аккаунта мы искоренить не можем. Такие пользователи обязательно найдутся. Зато не сохраняя пароль в открытом виде, мы можем защитить и таких безалаберных пользователей. А сохраняя в открытом виде, не защитим. Но формально, да, они сами будут виноваты.

Re: Авторизация по нестандартным полям
Пользователь: А. Роман (IP-адрес скрыт)
Дата: 03, March, 2021 00:10

Владимир, доброго полуношничания! ;)

Ни в коем случае не призываю изобретать велосипед, от слабых паролей при самостоятельном вводе юзерами можно и нужно защищать проверкой (ФЛК) на соответствие минимальным требованиям (длина не менее 7 символов, не менее одной буквы в вернем регистре и символа из ряда !@#$%^&*().

Я также не призываю в ИРБИС на стороне библиотеки ничего хранить! Режим: Fire and Forget. Не надо только отымать право у пользователя решать самому хранить ему у себя пароль или нет. Достаточно предупредить в письме о потенциальных рисках и дать рекомендацию. А уж он пущай сам решает, что дальше делать. И так уже поотнимали всё что можно и что не можно ;)



Редактировано 3 раз. Последний раз 03.03.2021 00:12 пользователем А. Роман.

Re: Авторизация по нестандартным полям
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 03, March, 2021 12:58

А в результате в системе пока никак :)
Сейчас планирую только настраивать заказ и столкнулся с тем, что введите пароль который будет храниться в открытом виде - дикость какая-то

Re: Авторизация по нестандартным полям
Пользователь: Alio (IP-адрес скрыт)
Дата: 03, March, 2021 13:17

Konstantinus написал(а):
-------------------------------------------------------
> А в результате в системе пока никак :)
> Сейчас планирую только настраивать заказ и
> столкнулся с тем, что введите пароль который будет
> храниться в открытом виде - дикость какая-то
Не говорите чепухи - при заказе никакой пароль не спрашивается

Re: Авторизация по нестандартным полям
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 03, March, 2021 13:38

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

Re: Авторизация по нестандартным полям
Пользователь: SokV (IP-адрес скрыт)
Дата: 03, March, 2021 13:58

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



Редактировано 1 раз. Последний раз 03.03.2021 14:02 пользователем SokV.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.