From OpenSCADAWiki
< Modules
Revision as of 16:11, 25 June 2022 by FuzzyBot (Talk | contribs) (Updating to match new version of source page)

Jump to: navigation, search
Other languages:
English • ‎mRussian • ‎Українська
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор
LDAP Директория по LDAP 0.6 GPL2 bd_LDAP.so en,uk,ru,de x86,x86_64,ARM DB Roman Savochenko
Description
BD module. Provides support of directories by LDAP.
  • Total complexity: 1.9 HD[!]
  • Sponsored by, for initial implementation on 1.7 HD[!]: Alexander Kolesov, BIOCAD, 2017
  • To Do:
- expand the authentication mechanism by the storage functions (the DB object), that is virtual functions to TBD:
  • auth() — direct checking the user authentication, through "bind" or ldap_whoami();
  • passHash() — obtaining the password hash, to comparing, if auth() is missed, and changing the password by the function ldap_passwd() or see to the utility slappasswd.
- expand the "OSCADA-user" scheme:
  • set the password field "PASS" as a synonym of "userPassword";
  • make the own scheme dependent from "simpleSecurityObject";
  • check of working with the field-type "userPassword".

Модуль предоставляет в OpenSCADA поддержку директорий с помощью протокола лёгкого доступа к директориям (LDAP). Модуль основан на OpenLDAP библиотеке на языке программирования "C". Из-за концептуального отличия сервиса директорий от баз данных (БД) этот модуль позволяет осуществлять в основном чтение и модификацию записей, представленных как табличные записи в концепции БД.

Служба каталогов или служба имён отражает названия сетевых ресурсов на соответствующие сетевые адреса. Это общая информационная инфраструктура для размещения, управления, администрирования и организации повседневных элементов и сетевых ресурсов, которые могут включать тома, каталоги, файлы, принтеры, пользователей, группы, устройства, телефонные номера и другие объекты. Распространённым использованием LDAP является предоставление центрального места хранения имён пользователей и паролей. Это позволяет многим различным приложениям и службам подключаться к LDAP серверу с целью проверки пользователей. Протокол предоставляет интерфейс с директориями, который соответствует редакции 1993 модели X.500:

  • Элемент содержит набор атрибутов.
  • Атрибут имеет имя (тип или описание атрибута) и одно или множество значений. Атрибуты определяются в схеме.
  • Каждый элемент имеет уникальный идентификатор — его Отличительное Имя (DN). Которое содержит его Относительное Отличительное Имя (RDN), что конструируется с некоторого атрибута(ов), парами {название}={значение} разделённые знаком '+', в этом элементе, после DN родительского элемента, через знак ','. Считайте DN полным путём и RDN относительным именем этого файла в родительском каталоге.

1 Операции над БД

Модулем предоставляется только операция открытия базы данных (представляя в такой способ базовый элемент). В терминах подсистемы "БД" OpenSCADA, открытием БД является её регистрация для последующего использования программой. Также, поддерживается операция запроса перечня таблиц в БД.

LDAP база данных (подключение) адресуется следующим образом "ldap[s]://{host}[:{port}];bdn[;{adn};{pass}[;{tm}]]", где:

  • host — адрес хоста со службой директорий;
  • port — порт, по умолчанию 389;
  • bdn — базовый DN, элемент под-элементы которого считаются как таблицы базы данных, при наличии RDN атрибута "ou", т.е. — "organizationalUnit";
  • adn — Отличительное Имя пользователя для подключения, игнорирование определением пользователя и следующего пароля приведёт к анонимному подключению;
  • pass — пароль Отличительного Имени пользователя для подключения;
  • tm — сетевой и общий таймаут, вещественным числом в секундах.

2 Операции над таблицей

Поддерживаются только операции открытия и закрытия таблицы (представляя в такой способ елемент в базовом элементе). Таблицей считаются элементы с присутствующим атрибутом "ou" (обычно это класс объекта "organizationalUnit"), которые включены в базовый элемент.

3 Операции над содержимым таблицы

  • сканирование записей таблицы;
  • запрос значений указанных записей;
  • установка значений указанных записей.

API подсистемы "БД" предполагает доступ к содержимому таблицы по значению ключевого(ых) полей. Так, операция запроса записи подразумевает предварительную установку ключевых колонок объекта TConfig, по которым будет выполнен запрос. Создание новой записи(строки) производится операцией установки значений записи, которая отсутствует.

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

Модуль на данное время не различает типов атрибутов элементов и считает всех их строками.

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

Узел OpenSCADA Значение Organizational Unit "ou" (имя таблицы) Структура Схема, в основном вспомогательные
Пользователь ou=Security_user NAME, DESCR, LONGDESCR, PASS, LANG, PICTURE OSCADA-user
Группа пользователей ou=Security_grp NAME, DESCR, LONGDESCR, USERS OSCADA-grp

Поддерево LDAP элементов типовых таблиц пользователей и их групп имеет следующий вид:

  • dc=oscada,dc=org — базовый DN (bdn) указанный в адресе объекта БД
    • ou=Security_user — RDN таблицы "Security_user" пользователей OpenSCADA, в структурном классе "organizationalUnit"
      • name=user1 — RDN записи таблицы "Security_user" для пользователя "user1", в структурном классе "account" и дополняющем классе "OSCADA-user"
      • name=user2 — RDN записи таблицы "Security_user" для пользователя "user2", в структурном классе "account" и дополняющем классе "OSCADA-user"
    • ou=Security_grp — RDN таблицы "Security_grp" пользователей OpenSCADA, в структурном классе "organizationalUnit"
      • name=grp1 — RDN записи таблицы "Security_grp" для группы пользователей "grp1", в структурном классе "account" и дополняющем классе "OSCADA-grp"
      • name=grp2 — RDN записи таблицы "Security_grp" для группы пользователей "grp2", в структурном классе "account" и дополняющем классе "OSCADA-grp"

4 Права доступа

Права доступа к базе данных определяются правами пользователя подключения.