2017-02-13 69 views
0

我有一个LDAP用户数据库映射为类posixAccount,inetOrgPerson和top的对象。如何将地理位置属性添加到LDAP帐户

我需要为用户添加纬度和经度属性。然而,这些属性似乎并没有出现在这些类中(也不在其他类中)。 inetOrgPerson仅提供诸如邮政地址,街道等参考。

是否可以向现有LDAP类添加新类或新属性?还是有没有其他的解决方案路径我错过了?

我用phpldapadmin使用openldap服务器(虽然这些都不是硬性限制)。

非常感谢, 艾伦

回答

2

虽然这是可能的属性类型添加到标准(RFC)对象类,你不应该这样做。 vCard-4.0草稿方便地定义了属性latLong(section 3.14)。您可以使用该属性类型创建一个辅助对象类型,稍后您可以使用该类型将GPS坐标添加到条目中。

创建一个文件 “geolocation.schema”,如:

# latLong 
# Represents a geographical location using the WGS84 data coordinates 
# as used by GPS, like: -33.92;151.28 
attributetype (1.3.6.1.4.1.33592.1.3.14 NAME 'latLong' 
    EQUALITY caseIgnoreMatch 
    SUBSTR caseIgnoreSubstringsMatch 
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
) 

# geoLocation 
# The geoLocation auxiliary class allows GPS coordinates to be added 
# to an object 
objectclass (your-company-oid-prefix-as-provided-by-IANA.your-oc-convention 
    NAME 'geoLocation' 
    DESC '' 
    AUXILIARY 
    MAY (latLong) 
) 

在你slapd.conf文件中添加一个include语句模式文件。新的对象类在重新启动LDAP服务器后可用。

如果您的组织还没有OID前缀get one。对于测试你可以伪造一个。

键入和未测试...

+0

marabu,非常感谢您的回答!它没有按原样工作,但我会进一步分析并发布出错的地方。它看起来像一个geolocation.diff文件丢失。 –

+0

如何生成geolocation.ldif文件? –

+0

作为OpenLDAP管理员,找到包含模式扩展名的文件夹,将上面的模式条目复制并粘贴到首选文本编辑器中,并保存为geolocation.schema。不要忘记调整地理位置OID。 – marabu