В этой секции вы найдете информацию о Netscape Address Book - LDAP клиенте, который можно использовать для доступа к вашему каталогу. Также представлены детали реализации роуминга используя Netscape Navigator, версии 4.5 или выше и ваш LDAP сервер. Цель описания этих свойств - дать людям понятие о возможностях LDAP протокола. В конце вы увидите некоторую информацию о аутентификации с использованием LDAP, утилитах миграции на LDAP, графических утилитах для LDAP, системе регистрации slapd и безопасном завершении процесса slapd.
Цель роуминга в том, что где бы вы ни находились в сети, вы сможете получить ваши записные книжки, предпочтения, почтовые фильтры, и т.д. используя Netscape Navigator и LDAP сервер. Это очень хорошая функция. Представьте, что вы получили доступ к Web, у вас могут быть свои собственные настройки броузера. Если путешествуете и вам нужен доступ к сайту с котировками в вашей локальной записной книжке, не беспокойтесь. Загрузите записную книжку и прочие конфигурационный файлы на LDAP сервер, позже вы их сможете получить, не зависимо от места вашего нахождения.
Для реализации роуминга вам следует сделать следующие шаги:
Включить новый файл схемы в ваш конфигурационный файл slapd.conf
Установить поле модификации в секции database вашего конфигурационного файла slapd.conf
Изменить ваш Ldif файл, добавив элементы профилей пользователей, которые хотят использовать роуминг
Настроить Netscape Navigator для использования LDAP сервера в качестве Roaming Access Server
Перезапустите LDAP сервер с новыми установками.
- Включение нового файла схемы: Скопируйте ниже приведенную секцию и вставьте ее в файл с расширением .schema Обычно лучше всего сохранить его в каталоге /usr/local/etc/openldap/schema. Если хотите, файл можно загрузить с: http://home.kabelfoon.nl/~hvdkooij/mull.schema. Помните, что ваш slapd.conf файл должен включать определение core.schema файла, используйте строку:
include /usr/local/etc/schema/core.schema |
# Эта схема требует загрузки core schema # Используется для размещения информации Netscape Roaming Profile в OpenLDAP v2. # Помещает фактическое имя профиля в базу данных. attributeType ( 1.3.6.1.4.1.7081.1.1.1 NAME 'nsLIProfileName' DESC 'Store Netscape Roaming Profile name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # Используется для размещения Netscape Roaming Profile информации в OpenLDAP v2. attributeType ( 1.3.6.1.4.1.7081.1.1.2 NAME 'nsLIPrefs' DESC 'Store Netscape Roaming Profile preferences' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) # Используется для размещения Netscape Roaming Profile информации в OpenLDAP v2. attributeType ( 1.3.6.1.4.1.7081.1.1.3 NAME 'nsLIElementType' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # Используется для помещения Netscape Roaming Profile информации в OpenLDAP v2. attributeType ( 1.3.6.1.4.1.7081.1.1.4 NAME 'nsLIData' DESC 'Store the actual data blocks' EQUALITY bitStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # Используется для размещения Netscape Roaming Profile информации в OpenLDAP v2. attributeType ( 1.3.6.1.4.1.7081.1.1.5 NAME 'nsLIVersion' DESC 'Store Netscape Roaming Profile version' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) # Используется для размещения Netscape Roaming Profile информации в OpenLDAP v2. # Это базовый holder of the Roaming Profile и он должен быть создан перед # тем, как вы попытаетесь занести информацию в LDAP базу данных objectClass ( 1.3.6.1.4.1.7081.1.2.1 NAME 'nsLIProfile' DESC 'Base holder of the NetScape Roaming Profile' SUP top MUST ( objectClass $ nsLIProfileName ) MAY ( nsLIPrefs $ uid $ owner ) ) # Используется для размещения Netscape Roaming Profile информации в OpenLDAP v2. # Этот класс объектов будет хранить данные. objectClass ( 1.3.6.1.4.1.7081.1.2.2 NAME 'nsLIProfileElement' DESC 'Contains the actual Roaming Profile data' SUP top MUST ( objectClass $ nsLIElementType ) MAY ( owner $ nsLIData $ nsLIVersion ) ) # Конец файла |
- Установка поля модификации: Чтобы убедиться, что Netscape может сравнивать вашу локальную копию с копией данных профиля на сервере LDAP, вам нужно установить время модификации в базе данных. Будет достаточно добавить простую строку в database секции вашего файла slapd.conf. Просто добавьте:
lastmod on |
- Изменение вашего Ldif файла: Каждому пользователю, который желает использовать роуминг в Netscape, нужен элемент профиля в файле Ldif. Взгляните на пример простого LDIF файла с элементами профилей:
dn: o=myOrg,c=NL o: myOrg objectclass: organization dn: cn=seallers,ou=People,o=myOrg,c=NL cn: seallers userpassword: myPassword objectclass: top objectclass: person dn: nsLIProfileName=seallers,ou=Roaming,o=myOrg,c=NL nsLIProfileName: seallers owner: cn=seallers,ou=People,o=myOrg,c=NL objectclass: top objectclass: nsLIProfile |
Эти элементы можно добавить, используя программу Разд. Утилиты ldapsearch, ldapdelete и ldapmodify>. Возможно в вашем случае вам потребуется только добавить элемент соответствующий перемещаемому профилю (dn: nsLIProfileName=...).
- Настройка Netscape Navigator: Следующий шаг - настроить Netscape на ваш LDAP сервер для активации роуминга. Просто выполните последовательность:
Войдите в меню Edit => Preferences => Roaming User
Теперь вам следует активировать Roaming Access для этого профиля, щелкнув на кнопку соответствующую этой опции.
Заполните поле имени пользователя соответствующим значением, оно должно быть идентично полю nsLIProfileName= из элемента профиля пользователя из LDIF профиля. Пример: seallers
Для просмотра опций роуминга переместитесь стрелкой вниз на опцию Roaming User в левой стороне окна Preferences Window.
Щелкните на Server Information, активируйте LDAP Server и заполните поля следующей информацией:
Address: ldap://myHost/nsLIProfileName=$USERID,ou=Roaming,o=myOrg,c=NL User DN: cn=$USERID,ou=People,o=myOrg,c=NL |
ВНИМАНИЕ: Перед запуском броузера Netscape автоматически заменяет переменную $USERID на имя выбранного профиля. Так если вы выбрали профиль seallers, он изменит $USERID на seallers, если вы выбрали профиль gonzales, он изменит $USERID на gonzales. Если вы не знакомы с профилями, запустите приложение Profile Manager, которое поставляется в наборе Netscape Comunicator. Это приложение разработано для обслуживания нескольких пользователей броузера на одной машине, и каждый из них имеет собственные настройки броузера.
И финальный шаг - перезапуск сервера. Посмотрите секцию Разд. Завершение LDAP сервера> для понимания того, как его безопасно остановить и Разд. Запуск LDAP сервера> как его снова запустить.
Как только вы запустили LDAP сервер, вы можете получить к нему доступ из различных клиентов (например, утилиты командной строки ldapsearch). Очень интересный клиент - Netscape Address Book. Он доступен в 4.x версии Netscape, но для стабильной работы с LDAP сервером вам следует использовать версию 4.5 или выше.
Просто выполните последовательность:
Откройте Netscape Navigator -> Выберите Communicator Menu -> Address Book
Будет запущена Netscape Address Book с некоторыми LDAP каталогами по умолчанию. Вам следует добавить ваш собственный LDAP каталог тоже!
Выберите File Menu -> New Directory
Заполните поля с информацией о сервере. Например:
- Description: TUDelft
- LDAP Server: dutedin.et.tudelft.nl
- Server Root: o=TUDelft, c=NL
По умолчанию LDAP порт - 389. Не изменяйте его, если вы не меняли эту опцию при создании сервера.
Теперь, сделайте несколько простых запросов к вашему серверу, используя поле Show Names Containing, или расширенных запросов используя кнопку Search.
Утилиты миграции LDAP - коллекция Perl скриптов от PADL Software Ltd. Они используются для преобразования конфигурационных файлов в LDIF. Перед их использованием я рекомендую прочесть лицензионное соглашение. Если вы планируете использовать ваш сервер для аутентификации пользователей, то эти утилиты могут быть очень полезны. Используя утилиты миграции для преобразования ваших NIS или файлов паролей в LDIF формат, создаются файлы совместимые с вашим LDAP сервером. Эти Perl скрипты применимы для миграции с ваших users, groups, aliases, hosts, netgroups, networks, protocols, RPC и существующих служб имен (NIS, файлы и NetInfo) в LDIF формат.
Для загрузки утилит миграции LDAP и получения более подробной информации, посетите следующий адрес:
http://www.padl.com/tools.html |
Пакет поставляется с файлом README, а имена файлов скриптов интуитивны. Сначала взгляните на файл README, а затем начните применять скрипты.
Для доступа к службе LDAP, LDAP клиент должен себя аутентифицировать в службе. То есть, он должен сообщить LDAP серверу кто пытается получить доступ к данным, и сервер может решить, что клиенту разрешено видеть и делать. Если клиент успешно проходит аутентификацию на LDAP сервере, то далее при получении запроса от клиента, он проверит, разрешено ли клиенту выполнять запрос. Этот процесс называется контролем доступа.
В LDAP, аутентификация производится в операции "привязки". Ldapv3 поддерживает три типа аутентификации: анонимную, простую и SASL аутентификацию. Клиент, который посылает LDAP запросы без выполнения "привязки", рассматривается как анонимный клиент. Простая аутентификация состоит в отправке LDAP сервер полного отличительного имени клиента (пользователя) и клиентского пароля прямым текстом. Этот механизм имеет проблему безопасности, так как пароль может быть прочитан по сети. Для избежания раскрытия пароля таким способом, вы можете использовать механизм аутентификации по шифрованному каналу (например, SSL), который поддерживается LDAP сервером.
Наконец, SASL - Simple Authentication and Security Layer (RFC 2222). Он определяет протокол вызов-ответ, в котором клиент и сервер обмениваются данными с целью аутентификации и установления уровня безопасности, на котором происходит дальнейшая коммуникация. Используя SASL, LDAP может поддерживать любой тип аутентификации согласованный между LDAP клиентом и сервером. Использование SASL будет представлено в следующей версии этого Howto, так как установка библиотеки Cyrus SASL пока не тривиальна.
И еще о аутентификации пользователей для доступа к информации вашего дерева каталога, ваш LDAP сервер может аутентифицировать пользователей также и из других служб (Sendmail, Login, Ftp, и т.п.). Это достигается перемещением определенной информации о пользователе на ваш LDAP сервер и использованием механизма под названием PAM (Pluggable Authentication Module).
Изначально в UNIX, аутентификация пользователя выполнялась посредством ввода пользователем пароля, система проверяла соответствие пароля зашифрованному официальному, паролю, хранимому в /etc/passwd. Это было сначала. С тех пор, приобрели популярность большое количество методов аутентификации, включая более усложненные замены файла /etc/passwd и аппаратные устройства называемые Smart картами. Проблема в том, что при разработке каждой новой схемы аутентификации, требуется внесения изменений во все необходимые программы (login, ftpd и т.п.). PAM обеспечивает способ разработки программ, которые не зависят от схемы аутентификации. Эти программы для работы требуют подключения к ним "модулей аутентификации" во время работы.
Модуль аутентификации для LDAP доступен в виде tar файла исходного кода по следующему адресу:
http://www.padl.com/pam_ldap.html |
Далее я полагаю, что ваш дистрибутив Linux уже подготовлен к работе с PAM. Если нет - взгляните на этот URL: http://www.kernel.org/pub/linux/libs/pam. Различные поставщики Linux используют различные стандарты настроек имеющих отношение к PAM. Обычно, конфигурационные файлы PAM размещены в каталоге /etc/pam.d/. Тут вы можете найти файл для каждой вашей запущенной службы. Например, если вы хотите использовать LDAP сервер для регистрации пользователей после загрузки Linux, вы должны сделать ваш Linux PAM совместимым (как описано в начале этого параграфа), установить LDAP PAM модуль и отредактировать файл с именем login в конфигурационном каталоге PAM (/etc/pam.d/) следующим содержимым :
#%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_nologin.so auth sufficient /lib/security/pam_ldap.so auth required /lib/security/pam_unix_auth.so try_first_pass account sufficient /lib/security/pam_ldap.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_ldap.so password required /lib/security/pam_pwdb.so use_first_pass session required /lib/security/pam_unix_session.so |
Kldap
Kldap - графический LDAP клиент для KDE. У Kldap хороший интерфейс и он способен показывать все информационное дерево вашего Каталога. Вы взглянуть на несколько экранных снимков приложения на: |
http://www.mountpoint.ch/oliver/kldap |
GQ
GQ - другой графический LDAP клиент с простым интерфейсом. Он написан для GNOME. Он также работает и под KDE, также как Kldap запускается под GNOME. Адрес для загрузки и дополнительной информации: |
http://biot.com/gq/ |
Для генерирования регистрационной информации slapd использует syslog(8). Пользователь по умолчанию в syslog(8) называется LOCAL4, но также допустимы значения от LOCAL0, LOCAL1, до LOCAL7.
Для активации системы регистрации вам следует отредактировать ваш syslog.conf файл, обычно размещенный в каталоге /etc.
Создайте такую строку:
local4.*═════/usr/adm/ldalog
Она приведет к использованию пользователя по умолчанию LOCAL4 в syslog. Если вы не знакомы с синтаксисом этой строки, загляните в man страницу syslog, syslog.conf и syslogd. Если вы хотите изменить пользователя по умолчанию или указать уровень генерируемой регистрационной информации, вам потребуются следующие ключи запуска slapd:
-s уровень-syslog Этот ключ указывает slapd на каком уровне отладки должны регистрироваться выражения в syslog(8). Уровень описывает серьезность сообщения и должен быть одним из следующих ключевых слов из списка (от высшего к низшему): emerg, alert, crit, err, warning, notice, info, and debug. Пример: slapd -f myslapd.conf -s debug
-l локальный-пользователь-syslog Выбирает локального пользователя syslog(8). Возможны значения LOCAL0, LOCAL1, и так далее до LOCAL7. По умолчанию - LOCAL4. Однако, эта опция допускается только на системах, которые поддерживают пользователей в syslog(8).
Теперь просмотрите сгенерированную регистрационную информацию. Она окажет вам огромную помощь при разрешении проблем с запросами, обновлениями, привязкой, и т.п.