在 OpenLDAP 中创建操作属性时出错
Error on operational attribute creation in OpenLDAP
实际上,在我的 LDAP 中,我有一个用 groupOfNames 对象填充的组和一个用 groupOfMembers 对象填充的角色。
我还配置了 memberOf 覆盖以检索用户在 memberof 属性中所属的 groupOfMembers(即角色)。
我的目标是还有一个属性 memberOfGroup,其中包含用户所属的 groupOfNames(即组)列表。
为了做到这一点,我创建了一个新模式,其中包含 memberOfGroup 属性的属性类型定义:
cn={14}memberOfGroup,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {14}memberOfGroup
olcAttributeTypes: {0}( 1.3.6.1.4.1.51127.3.2.2.3
NAME 'memberOfGroup'
DESC 'The groups the user belong to'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
我遇到的问题是,当我尝试将其设置为操作属性时:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f test.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn={14}memberOfGroup,cn=schema,cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: "1.3.6.1.4.1.51127.3.2.2.3" is operational
与 test.ldif :
dn: cn={14}memberOfGroup,cn=schema,cn=config
changetype: modify
replace: olcAttributeTypes
olcAttributeTypes: ( 1.3.6.1.4.1.51127.3.2.2.3
NAME 'memberOfGroup'
DESC 'The groups the user belong to'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION
USAGE DSAOperation )
同时,我还定义了第二个 memberOf overlay。
第一个角色(工作):
dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfMembers
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
第二组(无效):
dn: olcOverlay={1}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {1}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOfGroup
谁能解释一下操作属性的创建有什么问题以及我遇到的错误?
在 ldif 中你有 USAGE DSAOperation
操作属性只能由目录本身使用,不能由用户添加或修改。 OpenLDAP 模块 memberof 在将用户添加到某个组时自动创建它(并且在删除用户时也会删除)。
如果您想要一些自定义属性来跟踪组成员身份,那么您可以创建一个简单的属性(不可操作),但在这种情况下,ldap 服务器不会自动更新用户的成员身份。
实际上,在我的 LDAP 中,我有一个用 groupOfNames 对象填充的组和一个用 groupOfMembers 对象填充的角色。
我还配置了 memberOf 覆盖以检索用户在 memberof 属性中所属的 groupOfMembers(即角色)。
我的目标是还有一个属性 memberOfGroup,其中包含用户所属的 groupOfNames(即组)列表。
为了做到这一点,我创建了一个新模式,其中包含 memberOfGroup 属性的属性类型定义:
cn={14}memberOfGroup,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {14}memberOfGroup
olcAttributeTypes: {0}( 1.3.6.1.4.1.51127.3.2.2.3
NAME 'memberOfGroup'
DESC 'The groups the user belong to'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
我遇到的问题是,当我尝试将其设置为操作属性时:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f test.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn={14}memberOfGroup,cn=schema,cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: "1.3.6.1.4.1.51127.3.2.2.3" is operational
与 test.ldif :
dn: cn={14}memberOfGroup,cn=schema,cn=config
changetype: modify
replace: olcAttributeTypes
olcAttributeTypes: ( 1.3.6.1.4.1.51127.3.2.2.3
NAME 'memberOfGroup'
DESC 'The groups the user belong to'
EQUALITY distinguishedNameMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION
USAGE DSAOperation )
同时,我还定义了第二个 memberOf overlay。
第一个角色(工作):
dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfMembers
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
第二组(无效):
dn: olcOverlay={1}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {1}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOfGroup
谁能解释一下操作属性的创建有什么问题以及我遇到的错误?
在 ldif 中你有 USAGE DSAOperation
操作属性只能由目录本身使用,不能由用户添加或修改。 OpenLDAP 模块 memberof 在将用户添加到某个组时自动创建它(并且在删除用户时也会删除)。
如果您想要一些自定义属性来跟踪组成员身份,那么您可以创建一个简单的属性(不可操作),但在这种情况下,ldap 服务器不会自动更新用户的成员身份。