В системе учетных записей компании обычно используется 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
Вы можете просмотреть эффект запуска
Учетная запись администратора, созданная этим докером: cn=admin,dc=example,dc=org Пароль: admin Имя домена по умолчанию: dc=example,dc=org
Организация
Пользовательская система обычно отражает организационную структуру компании.Обычно используемые организационные структуры включают следующие две
- Организационная структура именования в Интернете: корневой узел — это страна, страна — это доменное имя, доменное имя — это организация/организационная единица, а затем пользователь находится ниже
- Организационная структура именования предприятия: корневой узел — доменное имя, доменное имя — отдел, а отдел — пользователь.
Ниже приведен пример архитектуры компонентов с корпоративным наименованием.
работа с командной строкой
Создать данные
Создайте файлы 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 не удаляется.
Восстановление данных
Примечание. Перед восстановлением необходимо удалить эти поля в файле резервной копии.
- creatorsName
- modifiersName
- modifyTimestamp
- createTimestamp
- entryUUID
- entryCSN
- структурныйObjectClass Затем удалите эту запись DN: dc=example,dc=org
использовать командуldapadd -x -D"cn=admin,dc=example,dc=org" -w admin -f mybackup.ldif
импортировать
Эффект операции следующий
Проверьте с помощью команды ldapsearch
Вы можете видеть, что данные были успешно импортированыклиент
В настоящее время у ldap есть три клиента на выбор.
- jxplorer: jxplorer.org/
- Apache Directory Studio
- phpLDAPadmin
jxplorer имеет китайский интерфейс, он прост и удобен в использовании Apache Directory Studio обладает мощными возможностями рекомендуется сначала использовать jxplorer для начала работы, а затем использовать Apache Directory Studio для работы phpLDAPadmin может понять его сам
Клиент программы
- ссылка на java:docs.spring.IO/spring-LDAP…
- ссылка на пхп:GitHub.com/AD LDAP2/Много…
- перейти по ссылке:GitHub.com/go-LDAP/босс…
некоторые замечания
Определите пользователя с паролем для использования объектного класса simpleSecurityObject, например
dn: cn=suxiaolin,dc=example,dc=org
objectClass: organizationalRole
objectclass: simpleSecurityObject
cn: suxiaolin
userPassword:123456
Значение этого поля userPassword является паролем пользователя.