Начните работу с системой учетных записей openldap за три минуты

Linux

В системе учетных записей компании обычно используется openldap.По сравнению с хранением учетных записей в реляционных базах данных, таких как mysql, openldap требует меньших затрат на разработку и обслуживание.Поэтому openldap стал наиболее подходящим выбором для системы учетных записей компании.

Вы можете быстро начать работу с этой системой учетных записей openldap с помощью следующего содержимого

понятие существительное

В этом ldap используется множество псевдонимов. Наиболее часто используемые псевдонимы перечислены ниже.

dn: различающееся имя, аналогичное идентификатору первичного ключа mysql.

cn: обычное имя, аналогичное нику пользователя (полное имя)

sn: фамилия пользователя

giveName: имя пользователя (исключая фамилию)

dc: принадлежит доменному имени, аналогично пространству имен, пользователь может существовать в нескольких dc

uid: имя, используемое для входа в систему

c: Страна, к которой вы принадлежите, например, CN означает Китай

ты: принадлежность

LDIF: формат описания данных openldap, аналогичный файловому формату /etc/passwd в linux, использует фиксированный формат для описания содержащихся данных.

dn:uid=1,ou=firstunit,o=myorganization,dc=example,dc=org
objectclass:top
objectclass:person
objectclass:uidObject
objectclass:simpleSecurityObject
userPassword:123456
cn:第一个用户
sn:su
uid:1
telephoneNumber:13288888888

Примечание. Многие объектные классы будут предоставлять дополнительные поля, такие как приведенное выше поле phoneNumber, предоставленное пользователем объектного класса.

Ссылка на список объектных классов:Уууу. Этот день делает ashin.com/books/LDAP/…Новый объектный класс можно создать, определив схему:woohoo.open LDAP.org/doc/admin24…

Собрать сервер openldap

Вы можете использовать этот докер для запуска сервера openldap одним щелчком мыши, см.:GitHub.com/OSI/док…Напишите docker-compose.yml следующим образом

version: '3'

services:
    ldap:
      image: osixia/openldap:1.2.4
      environment:
        - TZ=PRC
      ports:
        - 389:389
        - 636:636
    admin:
      image: osixia/phpldapadmin:0.8.0
      volumes:
        - ./data/admin/config:/container/service/phpldapadmin/assets/config
      ports:
        - 6443:443
      links:
        - ldap

затем начните

docker-compose up -d

использовать командуdocker-compose psВы можете просмотреть эффект запуска

Вы можете видеть, что сервер ldap уже прослушивает порт 389.

Учетная запись администратора, созданная этим докером: cn=admin,dc=example,dc=org Пароль: admin Имя домена по умолчанию: dc=example,dc=org

Организация

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

  1. Организационная структура именования в Интернете: корневой узел — это страна, страна — это доменное имя, доменное имя — это организация/организационная единица, а затем пользователь находится ниже
  2. Организационная структура именования предприятия: корневой узел — доменное имя, доменное имя — отдел, а отдел — пользователь.

Ниже приведен пример архитектуры компонентов с корпоративным наименованием.

работа с командной строкой

Создать данные

Создайте файлы ldif, такие как myo.ldif

dn:o=myorganization,dc=example,dc=org
objectclass:top
objectclass:organization
o:myorganization
description:我的组织

dn:ou=firstunit,o=myorganization,dc=example,dc=org
objectclass:top
objectclass:organizationalUnit
description:组织里的第一个单位

dn:uid=1,ou=firstunit,o=myorganization,dc=example,dc=org
objectclass:top
objectclass:person
objectclass:uidObject
objectclass:simpleSecurityObject
userPassword:123456
cn:第一个用户
sn:su
uid:1

Затем импортируйте его на сервер ldap.

docker-compose exec ldap bash
ldapadd  -x  -D "cn=admin,dc=example,dc=org"  -W  -f myo.ldif

Эффект операции следующий

Вы можете видеть, что данные были успешно импортированы

данные поиска

Вы можете использовать команду ldapsearch для поиска данных, например, для поиска всех данных под этим доменным именем: dc=example,dc=org

ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

Эффект операции следующий

Вы можете видеть, что запрос был выполнен успешно

Резервные данные

использоватьslapcat -v -l mybackup.ldifсделать резервную копию Эффект операции следующий

очистить данные

можно использоватьldapdelete -x -D "cn=admin,dc=example,dc=org" -w admin -r "dc=example,dc=org"Команда для очистки всех данных oepnldap, например, dc=org

Эффект операции следующий:

Обратите внимание, что запись dc=example,dc=org не удаляется.

Восстановление данных

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

  1. creatorsName
  2. modifiersName
  3. modifyTimestamp
  4. createTimestamp
  5. entryUUID
  6. entryCSN
  7. структурныйObjectClass Затем удалите эту запись DN: dc=example,dc=org

использовать командуldapadd -x -D"cn=admin,dc=example,dc=org" -w admin -f mybackup.ldifимпортировать

Эффект операции следующий

Проверьте с помощью команды ldapsearch

Вы можете видеть, что данные были успешно импортированы

клиент

В настоящее время у ldap есть три клиента на выбор.

  1. jxplorer: jxplorer.org/
  2. Apache Directory Studio
  3. phpLDAPadmin

jxplorer имеет китайский интерфейс, он прост и удобен в использовании Apache Directory Studio обладает мощными возможностями рекомендуется сначала использовать jxplorer для начала работы, а затем использовать Apache Directory Studio для работы phpLDAPadmin может понять его сам

Клиент программы

некоторые замечания

Определите пользователя с паролем для использования объектного класса simpleSecurityObject, например

dn: cn=suxiaolin,dc=example,dc=org
objectClass: organizationalRole
objectclass: simpleSecurityObject
cn: suxiaolin
userPassword:123456

Значение этого поля userPassword является паролем пользователя.

использованная литература

  1. объяснить shell.com/explain/1/…
  2. GitHub.com/OSI/док…
  3. GitHub.com/OSI/док…