[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Critique my Initial Corporate Schema
:) I am a newbie.
That doesn't mean that I shall charge forth in to an OpenLDAP implementation,
replete with a customized schema, migrating it from Netscape Directory Server
to a world where I feed ActiveDirectory based on my own little rational
OpenLDAP world ...
Please critique my schema. Here are some of my concerns:
Note our base OID in the attached document, as assigned by IANA. Note I
assign the first part to MIBs, and only dabble with Corporate LDAP at .2.1.
Anyone can explain to me difference between STRUCTURAL and AUXILIARY object
classes? I think I understood once but I lost my reference.
Originally, I was thinking tellmeIMUser could be a seperate (auxiliary?)
object class that could be applied to a tellmePerson, or other DN in the
directory, say a vendor organizational unit, but then I thought that I might
as well just make them optional to tellmePerson. Reduces confusion, neh?
Okay, would someone dole out the OIDs in a way other than:
# 1.3.6.1.4.1.8580.2.1.1 - Attribute Types
# 1.3.6.1.4.1.8580.2.1.2 - Object Classes
I based it on the OpenLDAP administrators guide, but then I was thinking maybe
I prefer to define it by rational organization of objectClass -> attributeType
(which does not dictate that these attributeTypes are bound to the
objectClass)
2.1.1 - tellmeUser
2.1.1.1 - tellmePagerEmail
2.1.2 - tellmeIMUser
2.1.2.1 - tellmeAIMID
2.1.2.2 - tellmeICQID
2.1.2.3 - tellmeMSNID
2.1.2.4 - tellmeYahooID
Thanks. :)
-danny
--
http://dannyman.toldme.com/
# Tellme Networks LDAP Schema
#
# Base OID: 1.3.6.1.4.1.8580
#
# So, I'll do it this way:
# 1.3.6.1.4.1.8580.1 - SNMP MIBs
# 1.3.6.1.4.1.8580.2 - LDAP OIDs
# 1.3.6.1.4.1.8580.2.1 - Corporate Operations LDAP OIDs
# 1.3.6.1.4.1.8580.2.1.1 - Attribute Types
# 1.3.6.1.4.1.8580.2.1.2 - Object Classes
# 1.3.6.1.4.1.8580.2.1.2.1 - tellmePerson Object Class
# 1.3.6.1.4.1.8580.2.1.1.1.1 tellmePagerEmail
# 1.3.6.1.4.1.8580.2.1.2.2 - tellmeIMUser Object Class
# 1.3.6.1.4.1.8580.2.1.1.2.1 tellmeAIMID
# 1.3.6.1.4.1.8580.2.1.1.2.2 tellmeICQID
# 1.3.6.1.4.1.8580.2.1.1.2.3 tellmeMSNID
# 1.3.6.1.4.1.8580.2.1.1.2.4 tellmeYahooID
# All our employee entries will be of this objectClass. In being derived from
# inetOrgPerson, we inhereit everything from inetOrgPerson,
# organizationalPerson, person, and top.
objectClass ( 1.3.6.1.4.1.8580.2.1.2.1 NAME 'tellmePerson'
DESC 'Person employed by Tellme Networks, Inc.'
SUP inetOrgPerson
MAY ( tellmePagerEmail $
tellmeAIMID $ tellmeICQID $ tellmeMSNID $ tellmeYahooID ) )
attributetype ( 1.3.6.1.4.1.8580.2.1.1.1 NAME 'tellmePagerEmail'
DESC 'E-mail address of text pager.'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) # Based on 'mail'
# We can re-use this objectClass in say, a vendor-directory type of context.
# Actually, I think this thing is wholly superfluous ...
objectClass ( 1.3.6.1.4.1.8580.2.1.2.2 NAME 'tellmeIMUser'
DESC 'User of some Instant Messenger product.'
SUP person
MAY ( tellmeAIMID $ tellmeICQID $ tellmeMSNID $ tellmeYahooID ) )
attributetype ( 1.3.6.1.4.1.8580.2.1.2.1 NAME 'tellmeAIMID'
DESC 'ID for AOL Instant Messenger'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} ) # Based on 'name'
attributetype ( 1.3.6.1.4.1.8580.2.1.2.2 NAME 'tellmeICQID'
DESC 'ID for ICQ Instant Messenger'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} ) # Based on 'name'
attributetype ( 1.3.6.1.4.1.8580.2.1.2.3 NAME 'tellmeMSNID'
DESC 'ID for MSN Instant Messenger'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} ) # Based on 'name'
attributetype ( 1.3.6.1.4.1.8580.2.1.2.4 NAME 'tellmeYahooID'
DESC 'ID for Yahoo Instant Messenger'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} ) # Based on 'name'