【问题标题】:FreeIPA can't see LDAP custom attributesFreeIPA 看不到 LDAP 自定义属性
【发布时间】:2015-05-10 13:20:38
【问题描述】:

我正在尝试向 FreeIPA 添加新属性,我使用“ldapmodify”将自定义属性和对象类添加到 LDAP,

#color.ldif
dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 2.25.28639311321113238241701611583088740684.14.2.2
  NAME 'favoriteColorName'
  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  X-ORIGIN 'Extending FreeIPA' )

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

然后重启服务器并使用

ipa config-mod --addattr=ipaUserObjectClasses=customPerson

按照Extending the FreeIPA Server 的指示,一切正常,最后我将插件添加到freeIPA

#color.py
from ipalib.plugins import user
from ipalib.parameters import Str
from ipalib import _
user.user.takes_params = user.user.takes_params + (
    Str('favoritecolorname?',
        cli_name='color',
        label=_('Favorite color'),
    ),
)
user.user.default_attributes.append('favoritecolorname')

当我尝试运行命令时:

ipa user-mod admin --color=red

我得到错误:

ipa: 错误: 属性“favoriteColorName”不允许

【问题讨论】:

    标签: ldap freeipa


    【解决方案1】:

    我找到了问题的原因。用户“admin”似乎没有包含新创建的类“customPerson”。

    [root@domain ~]# ipa user-show admin --all
      dn: uid=admin,cn=users,cn=accounts,dc=sample,dc=com
      User login: admin
      Last name: Administrator
      Full name: Administrator
      Home directory: /home/admin
      GECOS: Administrator
      Login shell: /bin/bash
      Kerberos principal: admin@sample.com
      UID: 1236600000
      GID: 1236600000
      Account disabled: False
      Password: True
      Member of groups: admins, trust admins
      Kerberos keys available: True
      objectclass: top, person, posixaccount, krbprincipalaux, krbticketpolicyaux,
                   inetuser, ipaobject, ipasshuser, ipaSshGroupOfPubKeys
    

    因此,不允许任何尝试使用未包含在这些对象类中的属性。但允许为其他用户修改颜色值:

    [root@domain ~]# ipa user-mod test --color=blue
    --------------------
    Modified user "test"
    --------------------
      User login: test
      First name: test
      Last name: test
      Home directory: /home/test
      Login shell: /bin/bash
      Email address: test@sample.com
      UID: 1236600007
      GID: 1236600007
      Account disabled: False
      Favorite color: blue
      Password: True
      Member of groups: ipausers
      Kerberos keys available: True
    

    【讨论】:

    • 是的,当新的对象类可用时,现有对象不会“自动”修改(将特定对象类添加到特定条目没有逻辑)。所以你需要改变你的回调,如果对象类没有这个类,它会在添加新属性时修改对象类。
    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多