Назад | Перейти на главную страницу

Как добавить страну пользователя в схему FreeIPA по умолчанию

Я пытаюсь расширить схему человека FreeIPA, чтобы добавить country в поле пользователя по умолчанию.

Насколько мне известно, FreeIPA реализует RFC 4519, который предоставляет поле страны.

Когда я сбрасываю схему FreeIPA (через ldapsearch -x -b cn=schema objectclasses attributetypes > schema.ldif) Я вижу, что определение страны присутствует по умолчанию, но оно не является частью человека или его продолжением.

Итак, я создал следующий ldif (обратите внимание, что OID в основном случайный, я еще ничего не регистрировал, так как тестирую вещи вокруг:

dn: cn=schema
changetype: modify
add: objectclasses
objectclasses: ( 2.25.2866739172111323825341701611583088740684.14.2.1 NAME 'customPerson' SUP person STRUCTURAL MAY (country) X-ORIGIN 'Extending FreeIPA' )

Но когда я запускаю это через `ldapmodify8, я получаю следующую ошибку:

$ ldapmodify -D "cn=Directory Manager" -W -f customPerson.ldif
Enter LDAP Password:
modifying entry "cn=schema"
ldap_modify: Invalid syntax (21)
    additional info: object class customPerson: Unknown allowed attribute type "country"

Что я сделал не так, и как это исправить, чтобы я мог использовать country во всех моих пользователях?

Я действительно нашел ответ после того, как продолжил возиться с этим.

Оказывается country не атрибут, а объектный класс, поэтому после добавления country и friendlyCountry в классы IPA objectuserclasses по умолчанию (через IPA Server> Configuration> User Options), я затем создал следующий файл обновления:

dn: uid=test,cn=users,cn=accounts,dc=example,dc=com
add:c:CH
add:objectClass:country
add:objectClass:friendlyCountry
add:co:Switzerland

Вам необходимо определить c атрибут имеет это необходимо для обоих country и friendlyCountry.

Теперь я вижу это с помощью ipa user-show --all test команда.