<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <html class="client-nojs" dir="ltr" lang="en"> <head> <meta charset="UTF-8" /> <title>Модули/LDAP - OpenSCADAWiki</title> <meta content="MediaWiki 1.26.4" name="generator" /> <link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" /> <link href="../../en/files/doc.css" rel="stylesheet" /></head> <body><div class="floatright"><a href="../index.html"><img alt="OpenSCADA" src="../../en/files/index.png" /></a></div><div id="mw_header"> <div class="mw-indicators"> </div> <h1 id="firstHeading" lang="ru">Модули/LDAP</h1> </div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="ru"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&group=page-Modules%2FLDAP&action=page&filter=&language=ru" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Modules/LDAP" title="Modules/LDAP">Modules/LDAP</a> and the translation is 100% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../../en/Modules/LDAP.html" title="Modules/LDAP (100% translated)">English</a> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">mRussian</span> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../uk/Modules/LDAP.html" title="Модулі/LDAP (100% translated)">УкраїнÑька</a></div></div> <table class="wikitable"> <tr> <th> Модуль </th> <th> Ð˜Ð¼Ñ </th> <th> ВерÑÐ¸Ñ </th> <th> Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ </th> <th> ИÑточник </th> <th> Языки </th> <th> Платформы </th> <th> Тип </th> <th> Ðвтор </th></tr> <tr> <td> <a href="../Modules/LDAP.html" title="Special:MyLanguage/Modules/LDAP">LDAP</a> </td> <td> Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ð¾ LDAP <ul><li> <b><a href="../Program_manual.html#DBFeat" title="Special:MyLanguage/Documents/Program manual">СвойÑтва</a>:</b> LIST, GET, SEEK, SET</li></ul> </td> <td> 0.6 </td> <td> GPL2 </td> <td> bd_LDAP.so </td> <td> en,uk,ru,de </td> <td> x86,x86_64,ARM </td> <td> БД </td> <td> Роман Савоченко </td></tr> <tr> <th colspan="9"> ОпиÑание </th></tr> <tr> <td colspan="9"> Модуль БД. ПредоÑтавлÑет поддержку директорий поÑредÑтвом LDAP. <ul><li> <b>ÐžÐ±Ñ‰Ð°Ñ Ñ‚Ñ€ÑƒÐ´Ð¾Ñ‘Ð¼ÐºÐ¾ÑÑ‚ÑŒ:</b> 1.9 <span title="человеко-дней, 1ЧД — 10 чаÑов">ЧД<sup style="color: blue">[!]</sup></span></li> <li> <b>СпонÑировано, начальной имплементации на 1.7 <span title="человеко-дней, 1ЧД — 10 чаÑов">ЧД<sup style="color: blue">[!]</sup></span>:</b> ÐлекÑандр КолеÑов, <a class="external text" href="http://www.biocad.ru" rel="nofollow noreferrer noopener" target="_blank">BIOCAD</a>, 2017</li> <li> <b><a href="../../en/To_do.html" title="Special:MyLanguage/Works/To do">Задачи (To Do)</a>:</b></li></ul> <dl><dd> - раÑширить механизм аутентификации функциÑми хранилища (объекта БД), а именно виртуальными функциÑми к TBD: <dl><dd><ul><li> <i>auth()</i> — прÑÐ¼Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° аутентификации пользователÑ, через "bind" или <i>ldap_whoami()</i>;</li> <li> <i>passHash()</i> — получение хеша паролÑ, Ð´Ð»Ñ ÑравнениÑ, еÑли <i>auth()</i> отÑутÑтвует, и Ñмена Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции <i>ldap_passwd()</i> или поÑмотреть на утилиту <b>slappasswd</b>.</li></ul></dd></dl></dd> <dd> - раÑширить "OSCADA-user" Ñхему: <dl><dd><ul><li> поле Ð¿Ð°Ñ€Ð¾Ð»Ñ "PASS" уÑтановить Ñинонимом на "userPassword";</li> <li> Ñвою Ñхему Ñделать завиÑимой от "simpleSecurityObject";</li> <li> проверить работу Ñ Ð¿Ð¾Ð»ÐµÐ¼-типом "userPassword".</li></ul></dd></dl></dd></dl> </td></tr></table> <p>Модуль предоÑтавлÑет в OpenSCADA поддержку директорий Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ протокола лёгкого доÑтупа к директориÑм (<a class="extiw" href="https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol" title="wikipedia:Lightweight Directory Access Protocol">LDAP</a>). Модуль оÑнован на <a class="external text" href="https://www.openldap.org/" rel="nofollow noreferrer noopener" target="_blank">OpenLDAP</a> библиотеке на Ñзыке Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ "C". Из-за концептуального Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ ÑервиÑа директорий от баз данных (БД) Ñтот модуль позволÑет оÑущеÑтвлÑÑ‚ÑŒ в оÑновном чтение и модификацию запиÑей, предÑтавленных как табличные запиÑи в концепции БД. </p><p>Служба каталогов или Ñлужба имён отражает Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñетевых реÑурÑов на ÑоответÑтвующие Ñетевые адреÑа. Ðто Ð¾Ð±Ñ‰Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð¸Ð½Ñ„Ñ€Ð°Ñтруктура Ð´Ð»Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ, управлениÑ, админиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ организации повÑедневных Ñлементов и Ñетевых реÑурÑов, которые могут включать тома, каталоги, файлы, принтеры, пользователей, группы, уÑтройÑтва, телефонные номера и другие объекты. РаÑпроÑтранённым иÑпользованием LDAP ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´Ð¾Ñтавление центрального меÑта Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñ‘Ð½ пользователей и паролей. Ðто позволÑет многим различным приложениÑм и Ñлужбам подключатьÑÑ Ðº LDAP Ñерверу Ñ Ñ†ÐµÐ»ÑŒÑŽ проверки пользователей. Протокол предоÑтавлÑет Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñми, который ÑоответÑтвует редакции 1993 модели X.500: </p> <ul><li> Ðлемент Ñодержит набор атрибутов.</li> <li> Ðтрибут имеет Ð¸Ð¼Ñ (тип или опиÑание атрибута) и одно или множеÑтво значений. Ðтрибуты определÑÑŽÑ‚ÑÑ Ð² Ñхеме.</li> <li> Каждый Ñлемент имеет уникальный идентификатор — его Отличительное Ð˜Ð¼Ñ (DN). Которое Ñодержит его ОтноÑительное Отличительное Ð˜Ð¼Ñ (RDN), что конÑтруируетÑÑ Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ атрибута(ов), парами <i>{название}={значение}</i> разделённые знаком '+', в Ñтом Ñлементе, поÑле DN родительÑкого Ñлемента, через знак ','. Считайте DN полным путём и RDN отноÑительным именем Ñтого файла в родительÑком каталоге.</li></ul> <div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0.B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D0.91.D0.94"><span class="tocnumber">1</span> <span class="toctext">Операции над БД</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0.B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B5.D0.B9"><span class="tocnumber">2</span> <span class="toctext">Операции над таблицей</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0.B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D1.81.D0.BE.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.BC.D1.8B.D0.BC_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D1.8B"><span class="tocnumber">3</span> <span class="toctext">Операции над Ñодержимым таблицы</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#.D0.9F.D1.80.D0.B0.D0.B2.D0.B0_.D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF.D0.B0"><span class="tocnumber">4</span> <span class="toctext">Права доÑтупа</span></a></li> </ul> </div> <h2><span class="mw-headline" id=".D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0.B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D0.91.D0.94"><span class="mw-headline-number">1</span> Операции над БД</span></h2> <p>Модулем предоÑтавлÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных (предÑтавлÑÑ Ð² такой ÑпоÑоб базовый Ñлемент). Ð’ терминах подÑиÑтемы "БД" OpenSCADA, открытием БД ÑвлÑетÑÑ ÐµÑ‘ региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ñледующего иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¾Ð¹. Также, поддерживаетÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа Ð¿ÐµÑ€ÐµÑ‡Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ† в БД. </p><p>LDAP база данных (подключение) адреÑуетÑÑ Ñледующим образом "<b>ldap[s]://{host}[:{port}];bdn[;{adn};{pass}[;{tm}]]</b>", где: </p> <ul><li> <i>host</i> — Ð°Ð´Ñ€ÐµÑ Ñ…Ð¾Ñта Ñо Ñлужбой директорий;</li> <li> <i>port</i> — порт, по умолчанию 389;</li> <li> <i>bdn</i> — базовый DN, Ñлемент под-Ñлементы которого ÑчитаютÑÑ ÐºÐ°Ðº таблицы базы данных, при наличии RDN атрибута "ou", Ñ‚.е. — "organizationalUnit";</li> <li> <i>adn</i> — Отличительное Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ, игнорирование определением Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ Ñледующего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´Ñ‘Ñ‚ к анонимному подключению;</li> <li> <i>pass</i> — пароль Отличительного Имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ;</li> <li> <i>tm</i> — Ñетевой и общий таймаут, вещеÑтвенным чиÑлом в Ñекундах.</li></ul> <h2><span class="mw-headline" id=".D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0.B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B5.D0.B9"><span class="mw-headline-number">2</span> Операции над таблицей</span></h2> <p>ПоддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ операции Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¸ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ (предÑтавлÑÑ Ð² такой ÑпоÑоб елемент в базовом Ñлементе). Таблицей ÑчитаютÑÑ Ñлементы Ñ Ð¿Ñ€Ð¸ÑутÑтвующим атрибутом "ou" (обычно Ñто клаÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° "organizationalUnit"), которые включены в базовый Ñлемент. </p> <h2><span class="mw-headline" id=".D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D0.B8.D0.B8_.D0.BD.D0.B0.D0.B4_.D1.81.D0.BE.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.BC.D1.8B.D0.BC_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D1.8B"><span class="mw-headline-number">3</span> Операции над Ñодержимым таблицы</span></h2> <ul><li> Ñканирование запиÑей таблицы;</li> <li> Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ указанных запиÑей;</li> <li> уÑтановка значений указанных запиÑей.</li></ul> <p>API подÑиÑтемы "БД" предполагает доÑтуп к Ñодержимому таблицы по значению ключевого(Ñ‹Ñ…) полей. Так, Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа запиÑи подразумевает предварительную уÑтановку ключевых колонок объекта TConfig, по которым будет выполнен запроÑ. Создание новой запиÑи(Ñтроки) производитÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸ÐµÐ¹ уÑтановки значений запиÑи, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚ÑутÑтвует. </p><p>Перед уÑтановкой любого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ загружает текущее значение, Ñравнивает их и уже потом отправлÑет только изменённое значение. </p><p>Модуль на данное Ð²Ñ€ÐµÐ¼Ñ Ð½Ðµ различает типов атрибутов Ñлементов и Ñчитает вÑех их Ñтроками. </p><p>Ð”Ð»Ñ Ð¾ÑущеÑÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñех Ñтих операций вокруг узлов OpenSCADA Ð’Ñ‹ должны Ñоздать, загрузить и иÑпользовать ÑпецифичеÑкие Ñхемы Ñтих узлов в Ñервере директорий. Ð’Ñе извеÑтные Ñхемы узлов OpenSCADA приведены в Ñледующей таблице: </p> <table class="wikitable"> <tr> <th> Узел OpenSCADA </th> <th> Значение Organizational Unit "ou" (Ð¸Ð¼Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹) </th> <th> Структура </th> <th> Схема, в оÑновном вÑпомогательные </th></tr> <tr> <td> <a class="external text" href="http://wiki.oscada.org/HomePageEn/Doc/ProgrammManual#h932-3" rel="nofollow noreferrer noopener" target="_blank">Пользователь</a> </td> <td> ou=Security_user </td> <td> <u>NAME</u>, DESCR, LONGDESCR, PASS, LANG, PICTURE </td> <td> <a class="external" href="http://oscada.org/wiki/File:LDAP-oscada-user.schema" title="File:LDAP-oscada-user.schema">OSCADA-user</a> </td></tr> <tr> <td> <a class="external text" href="http://wiki.oscada.org/HomePageEn/Doc/ProgrammManual#h932-3" rel="nofollow noreferrer noopener" target="_blank">Группа пользователей</a> </td> <td> ou=Security_grp </td> <td> <u>NAME</u>, DESCR, LONGDESCR, USERS </td> <td> <a class="external" href="http://oscada.org/wiki/File:LDAP-oscada-grp.schema" title="File:LDAP-oscada-grp.schema">OSCADA-grp</a> </td></tr></table> <p>Поддерево LDAP Ñлементов типовых таблиц пользователей и их групп имеет Ñледующий вид: </p> <ul><li> <i><b>dc=oscada,dc=org</b></i> — базовый DN (bdn) указанный в адреÑе объекта БД <ul><li> <i><b>ou=Security_user</b></i> — RDN таблицы "Security_user" пользователей OpenSCADA, в Ñтруктурном клаÑÑе "organizationalUnit" <ul><li> <i><b>name=user1</b></i> — RDN запиÑи таблицы "Security_user" Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "user1", в Ñтруктурном клаÑÑе "account" и дополнÑющем клаÑÑе "OSCADA-user"</li> <li> <i><b>name=user2</b></i> — RDN запиÑи таблицы "Security_user" Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ "user2", в Ñтруктурном клаÑÑе "account" и дополнÑющем клаÑÑе "OSCADA-user"</li></ul></li> <li> <i><b>ou=Security_grp</b></i> — RDN таблицы "Security_grp" пользователей OpenSCADA, в Ñтруктурном клаÑÑе "organizationalUnit" <ul><li> <i><b>name=grp1</b></i> — RDN запиÑи таблицы "Security_grp" Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ пользователей "grp1", в Ñтруктурном клаÑÑе "account" и дополнÑющем клаÑÑе "OSCADA-grp"</li> <li> <i><b>name=grp2</b></i> — RDN запиÑи таблицы "Security_grp" Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ пользователей "grp2", в Ñтруктурном клаÑÑе "account" и дополнÑющем клаÑÑе "OSCADA-grp"</li></ul></li></ul></li></ul> <h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B0.D0.B2.D0.B0_.D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF.D0.B0"><span class="mw-headline-number">4</span> Права доÑтупа</span></h2> <p>Права доÑтупа к базе данных определÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ. </p> </div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Modules/LDAP/ru">Modules/LDAP/ru</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">April 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3018</td></tr></table></body> </html>