Как добавить атрибут в схему LDAP
Я пытаюсь добавить новый атрибут с именем sAMAccountName в уже существующее определение схемы LDAP, которое считывается IM-LDAP с использованием UnboundID LDAP SDK.
Я добавил запись attributeTypes и sAMAccountName для MatchRuleUse.
attributeTypes: ( 2.5.18.11 NAME 'sAMAccountName' DESC 'MS Sec Principal User' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )
matchingRuleUse: ( 2.5.13.1 NAME 'distinguishedNameMatch' APPLIES ( creatorsName $ ... $ sAMAccountName ) )
Для каждого ранее существующего атрибута вызов com.unboundid.ldap.sdk.schema.Schema.getAttributeType("attrName")
возвращает тип атрибута. Но не для моего нового атрибута.
Что мне не хватает?
Отредактировано 10/11/18 после комментария @jwilleke:
То, что я пытаюсь достичь, - это использовать IM-LDAP для очень ограниченной функциональности сервера Active Directory.
В реальной производственной среде AD есть записи, представляющие пользователей с objectClass: person, organizPerson,simulatedMicrosoftSecurityPrincipal.
В AD эти записи содержат атрибуты sAMAccountName и memberof. Но их нет в схеме, которая поставляется с IM-LDAP.
Код аутентификации Java сначала выполняет поиск по
(&(objectClass=user)(sAMAccountName=userAccountName)
Затем, если запись найдена, он проверяет, присутствует ли данное имя группы безопасности в многозначном атрибуте memberof.
Запись, экспортированная с рабочего сервера AD, выглядит следующим образом:
dn: cn=Smith\,John,ou=User Accounts,dc=ACME,dc=CORE,dc=INT
changetype: add
objectClass: person
objectClass: organizationalPerson
objectClass: simulatedMicrosoftSecurityPrincipal
cn: Smith,John
sn: JohnS
sAMAccountName: JohnS
userPassword: johnspasswd
memberof: ou=Service Accounts,dc=ACME,dc=CORE,dc=INT
Два новых атрибута добавляются в objectClass simulatedMicrosoftSecurityPrincipal в схеме путем добавления:
objectClasses: ( 2.5.6.24 NAME 'simulatedMicrosoftSecurityPrincipal' DESC 'MSSecurityPrincipal' SUP top AUXILIARY MUST sAMAccountName MAY memberof )
Но когда я пытаюсь импортировать эти записи в макет LDAP, я получаю сообщение о том, что sAMAccountName и memberof не определены.
РЕДАКТИРОВАТЬ 2:
attributeTypes: ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
Wokrked для добавления sAMAccountName, но все еще пытается выяснить, как добавить memeberOf
Вот полный файл.ldif.
1 ответ
Это то, что, наконец, работает для меня
objectClasses: ( 1.2.840.113556.1.5.6 NAME 'microsoftSecurityPrincipal' DESC 'MS SecurityPrincipal' SUP top AUXILIARY MUST ( sAMAccountName $ memberOf ) )
attributeTypes: ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
attributeTypes: ( 1.2.840.113556.1.2.102 NAME 'memberOf' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )