Home | History | Annotate | Line # | Download | only in schema
      1       1.1     lukem # dyngroup.schema -- Dynamic Group schema
      2   1.1.1.4      tron # $OpenLDAP$
      3       1.1     lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4       1.1     lukem ##
      5  1.1.1.10  christos ## Copyright 1998-2024 The OpenLDAP Foundation.
      6       1.1     lukem ## All rights reserved.
      7       1.1     lukem ##
      8       1.1     lukem ## Redistribution and use in source and binary forms, with or without
      9       1.1     lukem ## modification, are permitted only as authorized by the OpenLDAP
     10       1.1     lukem ## Public License.
     11       1.1     lukem ##
     12       1.1     lukem ## A copy of this license is available in the file LICENSE in the
     13       1.1     lukem ## top-level directory of the distribution or, alternatively, at
     14       1.1     lukem ## <http://www.OpenLDAP.org/license.html>.
     15       1.1     lukem #
     16       1.1     lukem # Dynamic Group schema (experimental), as defined by Netscape.  See
     17       1.1     lukem # http://www.redhat.com/docs/manuals/ent-server/pdf/esadmin611.pdf
     18       1.1     lukem # page 70 for details on how these groups were used.
     19       1.1     lukem #
     20       1.1     lukem # A description of the objectclass definition is available here:
     21       1.1     lukem # http://www.redhat.com/docs/manuals/dir-server/schema/7.1/oc_dir.html#1303745
     22       1.1     lukem #
     23       1.1     lukem # depends upon:
     24       1.1     lukem #	core.schema
     25       1.1     lukem #
     26       1.1     lukem # These definitions are considered experimental due to the lack of
     27       1.1     lukem # a formal specification (e.g., RFC).
     28       1.1     lukem #
     29       1.1     lukem # NOT RECOMMENDED FOR PRODUCTION USE!  USE WITH CAUTION!
     30       1.1     lukem #
     31       1.1     lukem # The Netscape documentation describes this as an auxiliary objectclass
     32       1.1     lukem # but their implementations have always defined it as a structural class.
     33       1.1     lukem # The sloppiness here is because Netscape-derived servers don't actually
     34       1.1     lukem # implement the X.500 data model, and they don't honor the distinction
     35       1.1     lukem # between structural and auxiliary classes. This fact is noted here:
     36       1.1     lukem # http://forum.java.sun.com/thread.jspa?threadID=5016864&messageID=9034636
     37       1.1     lukem #
     38       1.1     lukem # In accordance with other existing implementations, we define it as a
     39       1.1     lukem # structural class.
     40       1.1     lukem #
     41       1.1     lukem # Our definition of memberURL also does not match theirs but again
     42       1.1     lukem # their published definition and what works in practice do not agree.
     43       1.1     lukem # In other words, the Netscape definitions are broken and interoperability
     44       1.1     lukem # is not guaranteed.
     45       1.1     lukem #
     46       1.1     lukem # Also see the new DynGroup proposed spec at
     47       1.1     lukem # http://tools.ietf.org/html/draft-haripriya-dynamicgroup-02
     48       1.1     lukem 
     49       1.1     lukem objectIdentifier NetscapeRoot 2.16.840.1.113730
     50       1.1     lukem 
     51       1.1     lukem objectIdentifier NetscapeLDAP NetscapeRoot:3
     52       1.1     lukem objectIdentifier NetscapeLDAPattributeType NetscapeLDAP:1
     53       1.1     lukem objectIdentifier NetscapeLDAPobjectClass NetscapeLDAP:2
     54       1.1     lukem 
     55       1.1     lukem objectIdentifier OpenLDAPExp11	1.3.6.1.4.1.4203.666.11
     56       1.1     lukem objectIdentifier DynGroupBase	OpenLDAPExp11:8
     57       1.1     lukem objectIdentifier DynGroupAttr	DynGroupBase:1
     58       1.1     lukem objectIdentifier DynGroupOC	DynGroupBase:2
     59       1.1     lukem 
     60       1.1     lukem attributetype ( NetscapeLDAPattributeType:198
     61       1.1     lukem 	NAME 'memberURL'
     62       1.1     lukem 	DESC 'Identifies an URL associated with each member of a group. Any type of labeled URL can be used.'
     63       1.1     lukem 	SUP labeledURI )
     64       1.1     lukem 
     65       1.1     lukem attributetype ( DynGroupAttr:1
     66       1.1     lukem 	NAME 'dgIdentity'
     67       1.1     lukem 	DESC 'Identity to use when processing the memberURL'
     68       1.1     lukem 	SUP distinguishedName SINGLE-VALUE )
     69       1.1     lukem 
     70       1.1     lukem attributeType ( DynGroupAttr:2
     71       1.1     lukem 	NAME 'dgAuthz'
     72       1.1     lukem 	DESC 'Optional authorization rules that determine who is allowed to assume the dgIdentity'
     73       1.1     lukem 	EQUALITY authzMatch
     74       1.1     lukem 	SYNTAX 1.3.6.1.4.1.4203.666.2.7
     75       1.1     lukem 	X-ORDERED 'VALUES' )
     76       1.1     lukem 
     77   1.1.1.9  christos # Just for testing. The actual memberOf is an operational attribute
     78   1.1.1.9  christos attributeType ( DynGroupAttr:3
     79   1.1.1.9  christos 	NAME 'dgMemberOf'
     80   1.1.1.9  christos 	DESC 'Group that the entry belongs to'
     81   1.1.1.9  christos 	SYNTAX '1.3.6.1.4.1.1466.115.121.1.12'
     82   1.1.1.9  christos 	EQUALITY distinguishedNameMatch )
     83   1.1.1.9  christos 
     84       1.1     lukem objectClass ( NetscapeLDAPobjectClass:33
     85       1.1     lukem 	NAME 'groupOfURLs'
     86       1.1     lukem 	SUP top STRUCTURAL
     87       1.1     lukem 	MUST cn
     88       1.1     lukem 	MAY ( memberURL $ businessCategory $ description $ o $ ou $
     89       1.1     lukem 		owner $ seeAlso ) )
     90       1.1     lukem 
     91       1.1     lukem # The Haripriya dyngroup schema still needs a lot of work.
     92       1.1     lukem # We're just adding support for the dgIdentity attribute for now...
     93       1.1     lukem objectClass ( DynGroupOC:1
     94       1.1     lukem 	NAME 'dgIdentityAux'
     95       1.1     lukem 	SUP top AUXILIARY
     96       1.1     lukem 	MAY ( dgIdentity $ dgAuthz ) )
     97       1.1     lukem 
     98       1.1     lukem 
     99