Инструменты пользователя

Инструменты сайта


service:ldap

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:ldap [26.08.2024 19:34] – [Использование] viacheslavservice:ldap [28.08.2024 08:47] (текущий) – [Расширение схемы] viacheslav
Строка 15: Строка 15:
       - 636:636       - 636:636
     volumes:     volumes:
 +#      - ./data/schema:/tmp/schema # Для расширения схемы
       - ./data/ldap:/var/lib/ldap       - ./data/ldap:/var/lib/ldap
       - ./data/slapd:/etc/ldap/slapd.d       - ./data/slapd:/etc/ldap/slapd.d
     environment:     environment:
 +#      LDAP_SEED_INTERNAL_SCHEMA_PATH: "/tmp/schema" # Для расширения схемы
       LDAP_ORGANISATION: "Test LDAP"       LDAP_ORGANISATION: "Test LDAP"
       LDAP_DOMAIN: "workgroup.test"       LDAP_DOMAIN: "workgroup.test"
Строка 134: Строка 136:
  
 ===== Расширение схемы ===== ===== Расширение схемы =====
 +Схемы, атрибуты и классы, справка: https://www.zytrax.com/books/ldap/ch3/\\
 +[[https://pro-ldap.ru/tr/zytrax/ch6/slapd-config.html#use-schemas|6.1.1.4.2 Добавление/удаление наборов схемы данных в OLC (cn=config)]]
 +
 Добавление атрибута ''sAMAccountName''. Создаётся файл с расширением ''.schema'', например, ''samaccountname.schema'' Добавление атрибута ''sAMAccountName''. Создаётся файл с расширением ''.schema'', например, ''samaccountname.schema''
 <code ldif> <code ldif>
Строка 147: Строка 152:
     MAY (sAMAccountName) )     MAY (sAMAccountName) )
 </code> </code>
 +Положить этот файл в каталог, монтирующийся в контейнер и указанный в ''LDAP_SEED_INTERNAL_SCHEMA_PATH''. После запуска контейнера он будет импортирован.
 +После этого нужно остановить контейнер, закомментировать смонтированный каталог и переменную и запустить контейнер заново. ldif-файл после импорта находится в ''data/slapd/cn=config/cn=schema''.
 +<code ldif>
 +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
 +# CRC32 646e9291
 +dn: cn={5}samaccountname
 +objectClass: olcSchemaConfig
 +cn: {5}samaccountname
 +olcAttributeTypes: {0}( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX
 + 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
 +olcObjectClasses: {0}( 1.3.6.1.4.1.4203.666.100.1 NAME 'custom' SUP top AUXI
 + LIARY MAY sAMAccountName )
 +structuralObjectClass: olcSchemaConfig
 +entryUUID: 2576b05c-f82a-103e-8395-5dabf1ba3ed8
 +creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
 +createTimestamp: 20240826190713Z
 +entryCSN: 20240826190713.191090Z#000000#000#000000
 +modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
 +modifyTimestamp: 20240826190713Z
 +</code>
 +
 +Другой более человекообразный вариант: сделать сразу файл ldif
 +<code ldif>
 +dn: cn=custom,cn=schema,cn=config
 +objectClass: olcSchemaConfig
 +cn: custom
 +olcAttributeTypes: ( 1.2.840.113556.1.4.221
 +    NAME 'sAMAccountName'
 +    EQUALITY caseIgnoreMatch
 +    SUBSTR caseIgnoreSubstringsMatch
 +    SYNTAX '1.3.6.1.4.1.1466.115.121.1.15'
 +    SINGLE-VALUE )
 +olcObjectClasses: ( 1.3.6.1.4.1.4203.666.100.1
 +    NAME 'custom'
 +    SUP top
 +    AUXILIARY
 +    DESC 'Custom attributes class'
 +    MAY (sAMAccountName) )
 +</code>
 +Потом скопировать его внутрь контейнера и импортировать. Работает только от рута, через админскую учётку не хватит полномочий.
 +<code bash>
 +docker cp samaccountname.ldif openldap:/tmp
 +docker exec -ti openldap ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/samaccountname.ldif
 +</code>
 +
 +https://www.opennet.ru/docs/RUS/ldap_apacheds/ch6/slapd-config.html#use-schemas\\
 +https://stackoverflow.com/questions/45725124/openldap-samaccountname-as-custom-attribute\\
 +
 +FIXME Как добавить ещё один AttributeType в тот же ObjectClass - вопрос. Вроде бы AttributeType добавляется без проблем, но потом надо модифицировать ObjectClass так, чтобы он включал в себя этот атрибут. В чудесном мире LDAP это вроде бы делается удалением и повторным добавлением ObjectClass.
 +
 +Вот это добавляется, теперь надо включить его в ранее добавленный objectClass "custom".
 +<file ldif customattr.ldif>
  
 +dn: cn=extensionAttribute1,cn=schema,cn=config
 +objectClass: olcSchemaConfig
 +cn: extensionAttribute1
 +olcAttributeTypes: ( 1.2.840.113556.1.2.423 NAME 'extensionAttribute1'
 +        DESC 'extensionAttribute1'
 +        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
 +        SINGLE-VALUE )
 +        
 +</file>
 +https://www.ibm.com/support/pages/adding-custom-attribute-inetorgperson-objectclass-may-attribute\\
 ===== Ошибки ===== ===== Ошибки =====
 ==== Невозможно работать по LDAPS ==== ==== Невозможно работать по LDAPS ====
service/ldap.1724700881.txt.gz · Последнее изменение: 26.08.2024 19:34 — viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki