service:ldap
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:ldap [22.08.2024 20:16] – [Использование] viacheslav | service:ldap [28.08.2024 08:47] (текущий) – [Расширение схемы] viacheslav | ||
---|---|---|---|
Строка 4: | Строка 4: | ||
===== Установка ===== | ===== Установка ===== | ||
+ | <code yaml> | ||
+ | --- | ||
+ | services: | ||
+ | openldap: | ||
+ | image: osixia/ | ||
+ | container_name: | ||
+ | hostname: openldap.workgroup.test | ||
+ | ports: | ||
+ | # - 389:389 | ||
+ | - 636:636 | ||
+ | volumes: | ||
+ | # - ./ | ||
+ | - ./ | ||
+ | - ./ | ||
+ | environment: | ||
+ | # LDAP_SEED_INTERNAL_SCHEMA_PATH: | ||
+ | LDAP_ORGANISATION: | ||
+ | LDAP_DOMAIN: | ||
+ | LDAP_ADMIN_USERNAME: | ||
+ | LDAP_ADMIN_PASSWORD: | ||
+ | LDAP_CONFIG_PASSWORD: | ||
+ | LDAP_BASE_DN: | ||
+ | LDAP_READONLY_USER: | ||
+ | LDAP_READONLY_USER_USERNAME: | ||
+ | LDAP_READONLY_USER_PASSWORD: | ||
+ | LDAP_TLS_VERIFY_CLIENT: | ||
+ | phpldapadmin: | ||
+ | image: osixia/ | ||
+ | container_name: | ||
+ | hostname: phpldapadmin | ||
+ | ports: | ||
+ | - 6443:443 | ||
+ | environment: | ||
+ | PHPLDAPADMIN_LDAP_HOSTS: | ||
+ | PHPLDAPADMIN_LDAP_CLIENT_TLS_REQCERT: | ||
+ | # PHPLDAPADMIN_HTTPS: | ||
+ | depends_on: | ||
+ | - openldap | ||
+ | networks: | ||
+ | default: | ||
+ | name: openldap | ||
+ | </ | ||
===== Использование ===== | ===== Использование ===== | ||
Вход в админку по dn (distinguishedName): | Вход в админку по dn (distinguishedName): | ||
Строка 16: | Строка 58: | ||
<code bash> | <code bash> | ||
# Поиск с использованием read-only юзера | # Поиск с использованием read-only юзера | ||
- | ldapsearch -x -H ldap:// | + | ldapsearch -x -H ldaps:// |
uid: vpupkin | uid: vpupkin | ||
uid: pmokin | uid: pmokin | ||
Строка 32: | Строка 74: | ||
# Список ФИО (как пример) | # Список ФИО (как пример) | ||
Import-Html https:// | Import-Html https:// | ||
- | Import-Csv ' | ||
- | # Сделать ldif | + | # Сделать ldif (pwdReset не работает: |
$fios = (Import-Csv ' | $fios = (Import-Csv ' | ||
Строка 82: | Строка 123: | ||
<code bash> | <code bash> | ||
- | Загрузить пользователей | + | # Загрузить пользователей |
- | ldapadd -x -H ldap:// | + | ldapadd -x -H ldaps:// |
+ | |||
+ | # Удалить пользователей | ||
+ | IFS=$' | ||
+ | users=($(cat users.ldif |grep ' | ||
+ | for i in ${users[*]}; | ||
+ | ldapmodify -x -H ldaps:// | ||
</ | </ | ||
https:// | https:// | ||
https:// | https:// | ||
+ | ===== Расширение схемы ===== | ||
+ | Схемы, атрибуты и классы, | ||
+ | [[https:// | ||
+ | |||
+ | Добавление атрибута '' | ||
+ | <code ldif> | ||
+ | attributeType ( 1.2.840.113556.1.4.221 | ||
+ | NAME ' | ||
+ | SYNTAX ' | ||
+ | SINGLE-VALUE ) | ||
+ | |||
+ | objectClass ( 1.3.6.1.4.1.4203.666.100.1 | ||
+ | NAME ' | ||
+ | SUP top | ||
+ | AUXILIARY | ||
+ | MAY (sAMAccountName) ) | ||
+ | </ | ||
+ | Положить этот файл в каталог, | ||
+ | После этого нужно остановить контейнер, | ||
+ | <code ldif> | ||
+ | # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. | ||
+ | # CRC32 646e9291 | ||
+ | dn: cn={5}samaccountname | ||
+ | objectClass: | ||
+ | cn: {5}samaccountname | ||
+ | olcAttributeTypes: | ||
+ | | ||
+ | olcObjectClasses: | ||
+ | LIARY MAY sAMAccountName ) | ||
+ | structuralObjectClass: | ||
+ | entryUUID: 2576b05c-f82a-103e-8395-5dabf1ba3ed8 | ||
+ | creatorsName: | ||
+ | createTimestamp: | ||
+ | entryCSN: 20240826190713.191090Z# | ||
+ | modifiersName: | ||
+ | modifyTimestamp: | ||
+ | </ | ||
+ | |||
+ | Другой более человекообразный вариант: | ||
+ | <code ldif> | ||
+ | dn: cn=custom, | ||
+ | objectClass: | ||
+ | cn: custom | ||
+ | olcAttributeTypes: | ||
+ | NAME ' | ||
+ | EQUALITY caseIgnoreMatch | ||
+ | SUBSTR caseIgnoreSubstringsMatch | ||
+ | SYNTAX ' | ||
+ | SINGLE-VALUE ) | ||
+ | olcObjectClasses: | ||
+ | NAME ' | ||
+ | SUP top | ||
+ | AUXILIARY | ||
+ | DESC ' | ||
+ | MAY (sAMAccountName) ) | ||
+ | </ | ||
+ | Потом скопировать его внутрь контейнера и импортировать. Работает только от рута, через админскую учётку не хватит полномочий. | ||
+ | <code bash> | ||
+ | docker cp samaccountname.ldif openldap:/ | ||
+ | docker exec -ti openldap ldapadd -Y EXTERNAL -H ldapi:/// -f / | ||
+ | </ | ||
+ | |||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | FIXME Как добавить ещё один AttributeType в тот же ObjectClass - вопрос. Вроде бы AttributeType добавляется без проблем, | ||
+ | |||
+ | Вот это добавляется, | ||
+ | <file ldif customattr.ldif> | ||
+ | |||
+ | dn: cn=extensionAttribute1, | ||
+ | objectClass: | ||
+ | cn: extensionAttribute1 | ||
+ | olcAttributeTypes: | ||
+ | DESC ' | ||
+ | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 | ||
+ | SINGLE-VALUE ) | ||
+ | | ||
+ | </ | ||
+ | https:// | ||
+ | ===== Ошибки ===== | ||
+ | ==== Невозможно работать по LDAPS ==== | ||
+ | Ошибки типа\\ | ||
+ | The TLS connection was non-properly terminated\\ | ||
+ | Can't contact LDAP server (-1) | ||
+ | |||
+ | Решение: | ||
+ | <code bash> | ||
+ | echo ' | ||
+ | </ | ||
+ | https:// | ||
====== FreeIPA ====== | ====== FreeIPA ====== | ||
https:// | https:// |
service/ldap.1724357769.txt.gz · Последнее изменение: 22.08.2024 20:16 — viacheslav