如何在默认 FreeIPA 架构中添加用户的国家/地区

如何在默认 FreeIPA 架构中添加用户的国家/地区

我正在尝试扩展 FreeIPA 人员模式以country在默认用户中添加字段。

据我所知,FreeIPA 确实实现了 RFC 4519,它确实提供了 [国家字段][1]。

当我转储 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在所有用户中使用该字段?[1]:https://www.rfc-editor.org/rfc/rfc4519#ref-X.521

答案1

经过不断的摸索,我确实找到了答案。

事实证明country不是一个属性,而是一个对象类,因此在将countryfriendlyCountry添加到默认 IPA 对象用户类(通过 IPA 服务器 > 配置 > 用户选项)后,我创建了以下更新文件:

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

您需要定义c属性,它是和都需要countryfriendlyCountry

我现在可以用命令看到它ipa user-show --all test

相关内容