1

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

FreeIPA サーバーの拡張で説明されているように、すべてうまくいったので、最後にプラグインを 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" は許可されていません

4

1 に答える 1

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
于 2015-05-11T07:37:38.143 に答える