www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

 Читать далее...

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

 Читать далее...

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

 Читать далее...

Книжная полка  

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

 Читать далее...

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

 Читать далее...

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

 Читать далее...

Книжная полка  

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

Накануне лета издательство «БХВ» выпустило книжные новинки, от которых любителям чтения будет

 Читать далее...

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

 Читать далее...

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

 Читать далее...

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

 Читать далее...

Книжная полка  

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

 Читать далее...

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9559
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 9754
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 7176
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 4472
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 5273
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 5273
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 7951
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 4635
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 4886
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 8912
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 12341
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 13899
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 15674
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 10536
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 8563
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 6784
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 5932
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 4804
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 4503
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 4723
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Создаем адресную книгу на базе OpenLDAP

Архив номеров / 2006 / Выпуск №10 (47) / Создаем адресную книгу на базе OpenLDAP

Рубрика: Администрирование /  Продукты и решения   | Дополнительные материалы

СЕРГЕЙ АПАЕВ

Создаем адресную книгу на базе OpenLDAP

Надоела пустая трата времени на ведение адресных книг в текстовом формате? Возможно, использование сервера каталогов будет лучшим решением проблемы.

Почему OpenLDAP?

OpenLDAP – бесплатный сервер каталогов, который содержится в большинстве дистрибутивов Linux и FreeBSD. Он обладает достаточной функциональностью и полностью совместим с Outlook Express, Mozilla и Mozilla Thunderbird.

Почему PostgreSQL?

PostgreSQL – достаточно известный сервер баз данных. Обладает хорошим быстродействием, надёжностью и многофункционален. В отличие от MySQL он поддерживает спецификацию ANSI SQL 92, что без особых усилий позволяет перенести базы данных, написанные на PostgreSQL, в такие коммерческие продукты, как Oracle и MSSQL, а также обладает широким набором дополнительных возможностей (правила, триггеры, встроенные языки). Продукт 1С Бухгалтерия v. 8.1 был полностью реализован на PostgreSQL. Использование PostgreSQL в данном примере ярко иллюстрирует часть его возможностей.

Остальные подробности

Для управления содержимым сущностей будет использоваться веб-интерфейс PHPLdapAdmin. Это мощный веб-интерфейс для работы с OpenLDAP. Он содержит большое количество встроенных шаблонов, что упрощает работу с каталогами.

Структура адресной книги

Наименование поля

Имя

Фамилия

ФИО (полностью)

Электронная почта

Домашний телефон

Рабочий телефон

Мобильный телефон

Должность

Название отдела

Название организации (частная компания)

Факс

Пейджер (ICQ, Yahoo и т. д.)

Домашний адрес

Рабочий адрес

Почтовый индекс

OpenLDAP осуществляет взаимодействие с PostgreSQL через источники данных UnixODBC, что позволяет использовать другие серверы баз данных (MySQL, MSSQL, Oracle и т. д.). Все поля из таблицы будут отображаться в таких почтовых клиентах, как Outlook Express, Mozilla Thunderbird и просто Mozilla. Итак, приступим.

Установка и настройка OpenLDAP

Для успешной сборки OpenLDAP установим unixODBC-2.2.11.

Собираем из портов:

# cd /usr/ports/databases/unixODBC

# make && make install

Приступаем к установке самого пакета OpenLDAP:

# cd /usr/ports/databases/openldap23-client

# make && make install

# cd ../openldap23-server

# make WITH_ODBC=YES WITH_ODBC_TYPE=unixodbc

# make install

Приступаем к настройке сервера.

Убедитесь, что после установки на главный конфигурационный файл стоят права владельца на пользователя ldap. В противном случае задайте права на главный конфигурационный файл:

# chown ldap:ldap /usr/local/etc/openldap/slapd.conf

Правим главный конфигурационный файл:

# mcedit /usr/local/etc/openldap/slapd.conf

# Подключаем необходимые схемы

include          /usr/local/etc/openldap/schema/core.schema

include          /usr/local/etc/openldap/schema/cosine.schema

include          /usr/local/etc/openldap/schema/inetorgperson.schema

# Указываем путь для файлов pid и args

pidfile          /var/run/openldap/slapd.pid

argsfile         /var/run/openldap/slapd.args

# Определяем порядок доступа к сущностям

# Разрешаем доступ к службе каталогов LDAP только авторизированным пользователям

access to *

    by users read

    by self read

    by anonymous auth

# Путь к модулю sql

modulepath       /usr/local/libexec/openldap

moduleload       back_sql.so

#########################################################

# sql database definitions

#########################################################

# Определяем настройки для соединения с PostgreSQL-сервером

database         sql

suffix           "o=myorg"

rootdn           "cn=root,o=myorg"

rootpw           {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==

# Имя источника данных

dbname           PostgreSQL

# Имя пользователя для соединения с PostgreSQL

dbuser           ldap

# Пароль для данного пользователя

dbpasswd         {MD5}4QrcOUm6Wau+VuBX8g+IPg==

insentry_stmt    "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select nextval('ldap_entries_id_seq')),?,?,?,?)"

upper_func        "upper"

strcast_func     "text"

concat_pattern   "?||?"

has_ldapinfo_dn_ru      no

# При использовании модуля sql-индексы указывать не нужно

# Поиск автоматически можно вести по всем атрибутам, используемым в LDAP-дереве

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

  • для администратора ldap-каталогов:

# slappasswd –h {MD5} –s secret

  • Для доступа к PostgreSQL:

# slappasswd –h {MD5} –s 123456

Для того чтобы не переписывать длинный кодированный пароль, в конце данных команд можно поставить перенаправление вывода на конфиг в конец файла (>>/usr/local/openldap/etc/slapd.conf), а потом отредактировать.

Для запуска, остановки, перезапуска, проверки статуса используем команду:

# /usr/local/etc/rc.d/slapd.sh start stop restart status

Запускаем сервер после установки PostreSQL.

Для автоматического запуска OpenLDAP при загрузке правим rc.conf:

# mcedit /etc/rc.conf

slapd_enable="YES"

slapd_flags="-u ldap –g ldap –h ldap://192.168.7.1"

Базовая настройка сервера каталогов закончена.

Установка и настройка PostgreSQL

PostgreSQL – мощный сервер баз данных, предназначенный для бесплатного использования в рамках лицензии BSD. Он входит в состав большинства дистрибутивов Linux и FreeBSD.

Собираем PostgreSQL из портов:

# cd /usr/ports/databases/postgresql80-client

# make && make install

# cd /usr/ports/databases/postgresql80-server

# make && make install

Создадим каталог для размещения баз данных с правами на pgsql:

# cd /var/db

# mkdir pgsql

# chmod 700 pgsql && chown pgsql:pgsql pgsql

# /usr/local/bin/sudo –u pgsql /usr/local/bin/initdb –-username=pgsql –-pgdata=/var/db/pgsql

Возможно, вам придётся установить утилиту sudo в разделе security общего дерева портов. После установки не забудьте разрешить root запускать команды для пользователя pgsql. Для этого необходимо отредактировать sudoers:

# mcedit /usr/local/etc/sudoers

root             ALL=(pgsql) ALL

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

Для автоматического запуска сервера при загрузке системы правим rc.conf:

# mcedit /etc/rc.conf

postgresql_enable="YES"

postgresql_user="pgsql"

postgresql_data="/var/db/pgsql"

Далее правим главный конфигурационный файл, где указываем IP, на котором будет работать сервер:

# mcedit /var/db/pgsql/postgresql.conf

listen_addresses='localhost'

Для версии 7.x необходимо указать:

tcpip_socket = true

virtual_host = '127.0.0.1'

Для запуска PostgreSQL выполните команду:

# /usr/local/etc/rc.d/010.pgsql.sh start

Настройка UnixODBC

Для настройки UnixODBC необходимо создать два файла следующего содержания:

# mcedit /usr/local/etc/odbcinst.ini

[PostgreSQL]

Description         = PostgreSQL driver for Linux & Win32

Driver              = /usr/local/lib/libodbcpsql.so

Setup               = /usr/local/lib/libodbcpsqlS.so

FileUsage           = 1

В данном файле мы указываем путь к библиотеке, которая отвечает за работу с PostgreSQL-сервером.

# mcedit /usr/local/etc/odbc.ini

[PostgreSQL]

Description         = Test to Postgres

Driver              = PostgreSQL

Trace               = Yes

TraceFile           = sql.log

Database            = ldap

Servername          = 127.0.0.1

UserName            =

Password            =

Port                = 5432

Protocol            = 6.4

ReadOnly            = No

RowVersioning       = No

ShowSystemTables    = No

ShowOidColumn       = No

FakeOidIndex        = No

ConnSettings        =

Здесь содержится информация, используемая для доступа к PosgreSQL. Имя пользователя и пароль мы указали в главном конфигурационном файле slapd.conf, поэтому здесь эти данные можно не указывать

Создание базы данных PostgreSQL хранения сущностей LDAP

Прежде всего необходимо определиться со структурой LDAP-дерева. В корне каталогов будет находиться контейнер o=myorg, в котором будут содержаться два контейнера. В первом ou=users,o=myorg будет храниться информация о пользователях, которые будут иметь доступ к серверу каталогов(например, cn=ivan ivanov,ou=users,o=myorg). Во втором ou=myaddressbook,o=myorg будут храниться записи о сотрудниках.

Приступаем к созданию баз данных:

# psql –h 127.0.0.1 -d template1 -U pgsql

Далее создаём пользователя ldap:

template1=# CREATE USER ldap WITH SYSID 100 PASSWORD '123456'

  NOCREATEDB NOCREATEUSER;

Теперь создадим базу данных для данной адресной книги:

template1=# CREATE DATABASE ldap WITH OWNER = ldap ENCODING = 'UNICODE';

В данном случае очень важно использовать кодировку UNICODE, т.к. OpenLDAP будет добавлять данные, содержащие русские символы в юникодной кодировке, а не SQL-ASCII. Использование данной кодировки в базе данных позволит корректно отображать символы на русском при непосредственном доступе к таблицам PostgreSQL. Отсоединяемся и создаем таблицы под новым пользователем ldap к вновь созданной базе ldap:

# psql –h 127.0.0.1 –d ldap –U ldap –p 5432 –W < /usr/local/scripts/main.sql

Данный SQL-скрипт автоматически создаст таблицы для хранения сущностей.

Перезапускаем систему. После авторизации выполняем:

# sockstat -4

На что он должен выдать список всех сервисов, которые слушают на IPv.4, среди которых должны быть PostgreSQL и slapd, что свидетельствует об успешно выполненных настройках.

Установка и настройка PHPLdapAdmin

Доступ к нему осуществляется через сервер Apache. Для нормальной работы phpldapadmin никаких особых настроек PHP не требуется, нужна только поддержка OpenLDAP, поэтому если уже имеется настроенный PHP, то просто добавьте модуль ldap, и этого будет достаточно. Собираем PHPLdapAdmin из портов:

# cd /usr/ports/net/phpldapadmin

# make && make install

Для запуска Apache выполняем:

# apachectl start

Переходим к настройке PHPLdapAdmin:

# cd /usr/local/www/phpldapadmin/config

# mv config.php.example config.php

Для подключения к LDAP-серверу имя пользователя и пароль мы будем вводить в самом интерфейсе. Хост необходимо указать в данном файле.

# mcedit config.php

$ldapservers->SetValue($i,'server','host','192.168.7.1');

В браузере заходим на http://192.168.7.1/phpldapadmin/.

Создание адресной книги

Приступаем к созданию адресной книги. Для авторизации нажимаем «ВХОД». В качестве логина вводим cn=root,o=myorg, в качестве пароля – secret. Для создания главного контейнера выбираем «IMPORT», и далее в текстовом поле «Paste your LDIF here» введите следующее:

dn: o=myorg

objectclass: organization

o: myorg

Переходим к созданию контейнера, содержащего информацию о пользователях, которым разрешено пользоваться сервером каталогов. Выделите контейнер o=myorg и кликните «Создать потомка». В качестве шаблона выберите «Organisational Unit» и введите название контейнера -users. Создадим учётную запись для доступа к серверу каталогов. В контейнере ou=users,o=myorg кликните «Создать потомка» и в качестве шаблона укажите «User Account», и заполните данные. В качестве uid можно вводить порядковый номер пользователя (рис. 1).

Рисунок 1. Пример добавления пользователя

Рисунок 1. Пример добавления пользователя

Создадим контейнер для хранения записей о сотрудниках. Для этого в контейнере o=myorg создайте контейнер ou=address_book по тому же принципу, что и ou=users. Для добавления записей о сотрудниках создайте в контейнере ou=addressbook,o=myorg потомка, указав в качестве шаблона Address Book Entry (mozillaOrgPerson). И далее заполняйте данные на русском (рис. 2). После чего нажмите «proceed» для создания объекта. Вот таким образом добавляются данные. OpenLDAP автоматически размещает их в SQL-таблицах. С помощью интерактивного клиента pgadmin вы можете посмотреть данные в таблицах.

Рисунок 2. Пример добавления данных о сотруднике

Рисунок 2. Пример добавления данных о сотруднике

Настройка Outlook Express на использование адресной книги

Переходим к настройке Outlook Express. Для добавления сервера каталогов в меню «Сервис –> Учётные записи» выбираем «Добавить –> Служба каталогов». В качестве имени укажите 192.168.7.1.

Потом зайдите в свойства и на вкладке «Общие» в поле «Учётная запись» введите «Моя адресная книга». Установите галку «Требуется вход на сервер» в состояние включено.

В качестве учётной записи введите cn=ivan ivanov,ou=users,o=myorg и укажите пароль, который вы вводили при создании данного пользователя.

Переходим на вкладку «Дополнительно» и в поле «Основа поиска» укажите ou=myaddressbook,o=myorg.

Теперь можно выполнять поиск в адресной книге по любым критериям. Кликните кнопку «Адреса», далее «Поиск людей» и введите критерии поиска.

Пример поиска показан на рис. 3.

Рисунок 3. Пример поиска контактной информации сотрудника в адресной книге

Рисунок 3. Пример поиска контактной информации сотрудника в адресной книге

Вот и всё в принципе.

Удачи!


Комментарии
 
  21.03.2008 - 02:59 |  илья

а скажите пожалуйста, а к кому обращаться за файлом /usr/local/scripts/main.sql ?
или хотя бы его краткое содержание... в смысле, что там лежит!

  09.04.2008 - 01:34 |  anonymous

http://www.samag.ru/source/files10-31.zip

  18.06.2008 - 12:34 |  Alex

Сделал все точно по статье.
OU users создался нормально, а при создании пользователя пишет:

LDAP said: Object class violation
Error number: 0x41 (LDAP_OBJECT_CLASS_VIOLATION)
Описание: You tried to perform an operation that would cause an undefined attribute to exist or that would remove a required attribute, given the current list of ObjectClasses. This can also occur if you do not specify a structural objectClass when creating an entry, or if you specify more than one structural objectClass.

В LDAP я особо не силен, подскажите, пожалуйста, как избавиться от этой ошибки.

  18.06.2008 - 01:05 |  Alex

Сделал все точно по статье.
OU users создался нормально, а при создании пользователя пишет:

LDAP said: Object class violation
Error number: 0x41 (LDAP_OBJECT_CLASS_VIOLATION)
Описание: You tried to perform an operation that would cause an undefined attribute to exist or that would remove a required attribute, given the current list of ObjectClasses. This can also occur if you do not specify a structural objectClass when creating an entry, or if you specify more than one structural objectClass.

В LDAP я особо не силен, подскажите, пожалуйста, как избавиться от этой ошибки.

  10.10.2008 - 09:01 |  dorz

Такая же проблема
LDAP said: Object class violation
Error number: 0x41 (LDAP_OBJECT_CLASS_VIOLATION)

  05.11.2008 - 05:24 |  Bumaga

Собрал все с горем пополам. Но не фига не удается подключиться к серверу LDAP через phpldapadmin

Такое ощущение, что не воспринимается имя пользователя и пароль.

В чем может быть причина? Логи все перепроверены сто раз.

  11.11.2008 - 01:14 |  бумаге

а ты имя указываешь в виде cn=user,dc=domain,dc=ru ?

  17.11.2008 - 11:02 |  hidden251

Сделал всё как указано, но не хочет соединяться с указанным именем и паролем через phpldapadmin
имя пользователя:cn=root,o=myorg
пароль: secret
и никуда....

  18.11.2008 - 02:24 |  Hidden251

Сменил версия phpldapadmin теперь заработало..
Но при попытке создания пользователя требуется GID, там выпадающее меню и оно пустое....А без GID запись не создаётся

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru