在openldap中使用自定义属性

在openldap中使用自定义属性,ldap,Ldap,我试图在openldap结构中添加一个自定义属性,以存储每个用户的角色,以便以后处理SpringWeb应用程序用户 只有3个角色:管理员、经理和查看者。是否可以为此添加任何规则 如何修复下面提到的错误 # CUSTOM ATTRIBUTE dn: cn=schema,cn=config changeType: modify add: attributeTypes attributeTypes: ( 2.25.128424792425578037463837247958458780603.1

我试图在openldap结构中添加一个自定义属性,以存储每个用户的角色,以便以后处理SpringWeb应用程序用户

只有3个角色:管理员、经理和查看者。是否可以为此添加任何规则

如何修复下面提到的错误

# CUSTOM ATTRIBUTE
dn: cn=schema,cn=config
changeType: modify
add: attributeTypes
attributeTypes: (
  2.25.128424792425578037463837247958458780603.1
  NAME 'role'
  EQUALITY caseIgnoreMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
 )
-
add: objectClasses
objectClasses: (
  2.25.128424792425578037463837247958458780603.2
  NAME 'rolePerson'
  SUP person
  AUXILIARY
  MUST ( role )
 )

# USERS
dn: ou=people,dc=ubuntu,dc=local
objectClass: organizationalUnit
ou: people

dn: cn=demo_admin,ou=people,dc=ubuntu,dc=local
objectClass: rolePerson
userPassword: {MD5}fe01ce2a7fbac8fafaed7c982a04e229
uid: demo
cn: demo
sn: demo
role: admin
输出
ldapadd-x-W-D“cn=admin,dc=ubuntu,dc=local”-f roleuser.ldif

modifying entry "cn=schema,cn=config"
ldap_modify: Invalid syntax (21)
    additional info: attributeTypes: value #0 invalid per syntax

这类事情最好使用组来处理。如果您将其与引用完整性模块和维护用户对象上的成员资格数据的模块相结合,它将以更标准的方式为您提供相同的好处。

如何“分离关注点”?LDAP应负责存储用户信息并支持身份验证,即决定用户是否确实是其声称的用户。但是,角色因应用程序而异,因为它们授权已知用户执行各种活动

最好让每个应用程序管理自己的角色集,并根据应用程序的需要将经过身份验证的用户映射到角色和活动/权限

通过这种方式进行设置,您的LDAP可以用于多个应用程序。如果要在LDAP中存储角色信息,则在编写新应用程序时需要另一个LDAP。否则,您的LDAP将变得非常复杂

如果您可以期望一组用户在一组应用程序中扮演相同的角色,那么在LDAP中定义组当然很有用。然后,您的应用程序可以将其角色链接到用户组,而不仅仅是单个用户。但原则仍然是一样的