Ldap

如何在預設的 FreeIPA 架構中添加使用者的國家/地區

  • October 11, 2016

我正在嘗試擴展 FreeIPA 人員架構以country在預設使用者中添加該欄位。

據我所知,FreeIPA 確實實現了 RFC 4519,它確實提供了一個

$$ country field $$$$ 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

在繼續修補此問題後,我實際上找到了答案。

原來這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需要的屬性。country``friendlyCountry

我現在可以通過ipa user-show --all test命令看到這一點。

引用自:https://serverfault.com/questions/808377