如何将地理位置属性添加到LDAP帐户

时间:2017-02-13 11:51:53

标签: geolocation ldap openldap

我有一个LDAP用户数据库映射为类posixAccount,inetOrgPerson和top的对象。

我需要向用户添加纬度和经度属性。但是,这些类似乎没有这些属性(在其他类中也没有)。 inetOrgPerson仅提供诸如postalAddress,street等参考。

是否可以向现有LDAP类添加新类或新属性?或者我还缺少其他解决方案吗?

我使用带有phpldapadmin的openldap服务器(虽然这些不是硬约束)。

非常感谢, 阿兰

1 个答案:

答案 0 :(得分:2)

虽然可以将属性类型添加到标准(RFC)对象类,但您不应该这样做。 vCard-4.0草案方便地定义了属性latLong(section 3.14)。您可以使用该属性类型创建辅助objectClass,稍后您可以使用该属性类型将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。对于测试,你可以伪造一个。

键入但未测试...