xref: /netbsd-src/external/bsd/am-utils/dist/ldap-id.ms (revision a53f50b9b44dc9467ccc9c464999b1d1c509cb0c)
1*a53f50b9Schristos.pl 10.0i
2*a53f50b9Schristos.po 0
3*a53f50b9Schristos.ll 8.5i
4*a53f50b9Schristos.lt 8.5i
5*a53f50b9Schristos.nr LL 8.5i
6*a53f50b9Schristos.nr LT 8.5i
7*a53f50b9Schristos.ds LF Johansson
8*a53f50b9Schristos.ds RF [Page %]
9*a53f50b9Schristos.ds CF
10*a53f50b9Schristos.ds LH Internet draft
11*a53f50b9Schristos.ds RH 30 March 1998
12*a53f50b9Schristos.ds CH Berkeley AMD LDAP Schema
13*a53f50b9Schristos.hy 0
14*a53f50b9Schristos.ad l
15*a53f50b9Schristos.in 0
16*a53f50b9SchristosINTERNET-DRAFT                                                         Leif Johansson
17*a53f50b9SchristosIntented Category: Experimental                                  Stockholm University
18*a53f50b9Schristos
19*a53f50b9Schristos
20*a53f50b9Schristos
21*a53f50b9Schristos.ce
22*a53f50b9SchristosA directory (X.500 and LDAPv3) schema for Berkely automounter
23*a53f50b9Schristos
24*a53f50b9Schristos
25*a53f50b9Schristos.ti 0
26*a53f50b9Schristos1. Status of this Memo
27*a53f50b9Schristos
28*a53f50b9Schristos.fi
29*a53f50b9Schristos.in 3
30*a53f50b9SchristosThis memo describes a directory (LDAP or X.500) schema for storing
31*a53f50b9Schristosamd (Berkely-style automounter) mount info maps. The schema is currently
32*a53f50b9Schristosbeeing supported by the (beta version of the) am-utils version 6 package
33*a53f50b9Schristos[AMUTILS].
34*a53f50b9Schristos
35*a53f50b9Schristos.ti 0
36*a53f50b9Schristos2. Overview and Rationale
37*a53f50b9Schristos
38*a53f50b9SchristosDirectory services such as X.500 [X500] or LDAP [RFC2251] are a natural
39*a53f50b9Schristoschoice of repository for amd mount map databases. All Object Identifiers
40*a53f50b9Schristosin this document are prefixed by amdSchema-id to be assigned later. The
41*a53f50b9Schristosrelation between this schema and the automount schema elements in [HOWARD]
42*a53f50b9Schristosare mostly superficial. The model for the elements in [HOWARD] was the SUN
43*a53f50b9Schristosautomounter which has quite a different syntax for mount maps. Furthermore
44*a53f50b9Schristosthe intended usage of this schema differs from that of [HOWARD] in many
45*a53f50b9Schristosrespects.
46*a53f50b9Schristos
47*a53f50b9Schristos.ti 0
48*a53f50b9Schristos3. DSA requirements
49*a53f50b9Schristos
50*a53f50b9SchristosDirectory servers implementing this schema SHOULD maintain the
51*a53f50b9SchristosmodifyTimestamp operational attribute. If not the amdMapCacheTtl
52*a53f50b9Schristosattribute SHOULD be set to 0 indicating to clients that caching of
53*a53f50b9Schristosmap entries SHOULD be turned off. Clients wishing to use the amdMap
54*a53f50b9Schristosschema MAY use the modifyTimestamp information to set the ttl for
55*a53f50b9Schristosinternal caching schemes. A value of 0 for the amdMapCacheTtl must
56*a53f50b9Schristosresult in clients turning off any local caching.
57*a53f50b9Schristos
58*a53f50b9Schristos.ti 0
59*a53f50b9Schristos4. Syntax definitions
60*a53f50b9Schristos
61*a53f50b9SchristosThe following attribute syntax is defined in this document:
62*a53f50b9Schristos
63*a53f50b9Schristos     amdlocationlist
64*a53f50b9Schristos
65*a53f50b9SchristosThis syntax represents a amd map value. This is the syntax expressed
66*a53f50b9Schristosin BNF using definitions from [RFC2252]:
67*a53f50b9Schristos
68*a53f50b9Schristos     amdlocationlist      = amdlocationselection |
69*a53f50b9Schristos                            amdlocationlist whsp "||" whsp amdlocationselection
70*a53f50b9Schristos
71*a53f50b9Schristos     amdlocationselection = amdlocation |
72*a53f50b9Schristos                            amdlocationselection whsp amdlocation
73*a53f50b9Schristos
74*a53f50b9Schristos     amdlocation          = amdlocationinfo |
75*a53f50b9Schristos                            "-" amdlocationinfo |
76*a53f50b9Schristos                            "-"
77*a53f50b9Schristos
78*a53f50b9Schristos     amdlocationinfo      = seloropt |
79*a53f50b9Schristos                            amdlocationinfo ";" seloropt |
80*a53f50b9Schristos                            ";"
81*a53f50b9Schristos
82*a53f50b9Schristos     seloropt             = seletion |
83*a53f50b9Schristos                            optass
84*a53f50b9Schristos
85*a53f50b9Schristos     selection            = keystring "==" printablestring
86*a53f50b9Schristos                            keystring "!=" printablestring
87*a53f50b9Schristos
88*a53f50b9Schristos     optass               = keystring \":=\" printablestring
89*a53f50b9Schristos
90*a53f50b9SchristosX.500 servers or LDAPv3 servers (supporting the binary attribute
91*a53f50b9Schristosoption) may use the following syntax definition:
92*a53f50b9Schristos
93*a53f50b9Schristos     AmdLocationList ::= SEQUENCE OF {
94*a53f50b9Schristos                            SEQUENCE OF {
95*a53f50b9Schristos                               location     AmdLocation
96*a53f50b9Schristos                            }
97*a53f50b9Schristos                         }
98*a53f50b9Schristos
99*a53f50b9Schristos     AmdLocation     ::= SET OF {
100*a53f50b9Schristos                            CHOICE {
101*a53f50b9Schristos                               location     [0] AmdLocationInfo
102*a53f50b9Schristos                               notlocation  [1] AmdLocationInfo
103*a53f50b9Schristos                               not          [2] NULL
104*a53f50b9Schristos                            }
105*a53f50b9Schristos                         }
106*a53f50b9Schristos
107*a53f50b9Schristos     AmdLocationInfo ::= SET OF {
108*a53f50b9Schristos                            CHOICE {
109*a53f50b9Schristos                               selection    [0] AmdSelection
110*a53f50b9Schristos                               option       [1] AmdOption
111*a53f50b9Schristos                            }
112*a53f50b9Schristos                         }
113*a53f50b9Schristos
114*a53f50b9Schristos     AmdSelection    ::= CHOICE {
115*a53f50b9Schristos                            eq     [0] AttributeAndValue
116*a53f50b9Schristos                            ne     [1] AttributeAndValue
117*a53f50b9Schristos                         }
118*a53f50b9Schristos
119*a53f50b9Schristos     AmdOption       ::= AttributeAndValue
120*a53f50b9Schristos
121*a53f50b9Schristos     AttributeAndValue ::= SEQUENCE {
122*a53f50b9Schristos                              attribute     IA5String
123*a53f50b9Schristos                              value         IA5String
124*a53f50b9Schristos                           }
125*a53f50b9Schristos
126*a53f50b9Schristos.ti 0
127*a53f50b9Schristos5. Attribute types
128*a53f50b9Schristos
129*a53f50b9SchristosThe following attribute types are defined in this document:
130*a53f50b9Schristos
131*a53f50b9Schristos     amdMapName
132*a53f50b9Schristos     amdMapCacheTtl
133*a53f50b9Schristos     amdMapEntry
134*a53f50b9Schristos     amdMapEntryKey
135*a53f50b9Schristos     amdMapEntryValue
136*a53f50b9Schristos
137*a53f50b9Schristos     amdSchema-a OBJECT IDENTIFIER ::= { amdSchema-id 1 }
138*a53f50b9Schristos
139*a53f50b9Schristos     amdMapName
140*a53f50b9Schristos	ATTRIBUTE ::= {
141*a53f50b9Schristos           WITH SYNTAX              IA5String
142*a53f50b9Schristos           EQUALITY MATCHING RULE   caseIgoreExactMatch
143*a53f50b9Schristos           --ID                     { amdSchema-a 1 }
144*a53f50b9Schristos           DESCRIPTION
145*a53f50b9Schristos            "This attribute is the symbolic and in the naming
146*a53f50b9Schristos             context unique name of an amd map. This corresponds
147*a53f50b9Schristos             in the case of a flat file database to the name of
148*a53f50b9Schristos             the file or the mount-point of the map."
149*a53f50b9Schristos        }
150*a53f50b9Schristos
151*a53f50b9Schristos
152*a53f50b9Schristos     amdMapCacheTtl
153*a53f50b9Schristos        ATTRIBUTE ::= {
154*a53f50b9Schristos           WITH SYNTAX              Integer
155*a53f50b9Schristos           EQUALITY MATCHING RULE   integerExactMatch
156*a53f50b9Schristos           --ID                     { amdSchema-a 2 }
157*a53f50b9Schristos           SINGLE VALUED
158*a53f50b9Schristos           DESCRIPTION
159*a53f50b9Schristos            "The maximum time-to-live for the entries in this
160*a53f50b9Schristos             map. After this many milliseconds the map has to
161*a53f50b9Schristos             be cleared from local caches and reloaded. A value
162*a53f50b9Schristos             of 0 disables caching."
163*a53f50b9Schristos        }
164*a53f50b9Schristos
165*a53f50b9Schristos     amdMapEntry
166*a53f50b9Schristos        ATTRIBUTE ::= {
167*a53f50b9Schristos           WITH SYNTAX              DistinguishedName
168*a53f50b9Schristos           EQUALITY MATHCING RULE   dNCaseIgnoreExactMatch
169*a53f50b9Schristos           --ID                     { amdSchema-a 3 }
170*a53f50b9Schristos           DESCRIPTION
171*a53f50b9Schristos            "A multivalued attribute listing the distinguished
172*a53f50b9Schristos             names of the amdMapEntries making up this amdMap
173*a53f50b9Schristos             object."
174*a53f50b9Schristos        }
175*a53f50b9Schristos
176*a53f50b9Schristos     amdMapEntryKey ::= {
177*a53f50b9Schristos        ATTRIBUTE ::= {
178*a53f50b9Schristos           WITH SYNTAX              IA5String
179*a53f50b9Schristos           EQUALITY MATCHING RULE   stringExactMatch
180*a53f50b9Schristos           --ID                     { amdSchema-a 4 }
181*a53f50b9Schristos           SINGLE VALUED
182*a53f50b9Schristos           DESCRIPTION
183*a53f50b9Schristos            "The value of this attribute is usually the name of
184*a53f50b9Schristos             a mountpoint for this amdMapEntry."
185*a53f50b9Schristos        }
186*a53f50b9Schristos
187*a53f50b9Schristos     amdMapEntryValue ::= {
188*a53f50b9Schristos        ATTRIBUTE ::= {
189*a53f50b9Schristos           WITH SYNTAX              AmdLocationList
190*a53f50b9Schristos           --ID                     { amdSchema-a 5 }
191*a53f50b9Schristos           DESCRIPTION
192*a53f50b9Schristos            "This is the actual mount information for the amdMapEntry
193*a53f50b9Schristos             using the syntax described above."
194*a53f50b9Schristos        }
195*a53f50b9Schristos
196*a53f50b9Schristos     amdMapEntryKey ::= {
197*a53f50b9Schristos        ATTRIBUTE ::= {
198*a53f50b9Schristos           WITH SYNTAX              IA5String
199*a53f50b9Schristos           EQUALITY MATCHING RULE   stringExactMatch
200*a53f50b9Schristos           --ID                     { amdSchema-a 4 }
201*a53f50b9Schristos           SINGLE VALUED
202*a53f50b9Schristos           DESCRIPTION
203*a53f50b9Schristos            "The value of this attribute is usually the name of
204*a53f50b9Schristos             a mountpoint for this amdMapEntry."
205*a53f50b9Schristos        }
206*a53f50b9Schristos
207*a53f50b9Schristos     amdMapEntryValue ::= {
208*a53f50b9Schristos        ATTRIBUTE ::= {
209*a53f50b9Schristos           WITH SYNTAX              AmdLocationList
210*a53f50b9Schristos           --ID                     { amdSchema-a 5 }
211*a53f50b9Schristos           DESCRIPTION
212*a53f50b9Schristos            "This is the actual mount information for the amdMapEntry
213*a53f50b9Schristos             using the syntax described above."
214*a53f50b9Schristos        }
215*a53f50b9Schristos
216*a53f50b9Schristos.ti 0
217*a53f50b9Schristos6. Object classes
218*a53f50b9Schristos
219*a53f50b9SchristosThe following object classes are defined in this document:
220*a53f50b9Schristos
221*a53f50b9Schristos          amdMap
222*a53f50b9Schristos          amdMapEntry
223*a53f50b9Schristos
224*a53f50b9Schristosdefined as follows:
225*a53f50b9Schristos
226*a53f50b9Schristos          amdSchema-oc ::= { amdSchema-id 2 }
227*a53f50b9Schristos
228*a53f50b9Schristos          amdMap OBJECT-CLASS ::= {
229*a53f50b9Schristos                    SUBCLASS OF            { top }
230*a53f50b9Schristos                    KIND                   auxiliary
231*a53f50b9Schristos                    --ID                   { amdSchema-oc 1 }
232*a53f50b9Schristos                    MAY CONTAIN            { amdMapCacheTtl , cn }
233*a53f50b9Schristos                    MUST CONTAIN           { amdMapName , amdMapEntry }
234*a53f50b9Schristos                 }
235*a53f50b9Schristos
236*a53f50b9Schristos          amdMapEntry OBJECT-CLASS ::= {
237*a53f50b9Schristos                         SUBCLASS OF       { top }
238*a53f50b9Schristos                         KIND              structural
239*a53f50b9Schristos                         --ID              { amdSchema-oc 2 }
240*a53f50b9Schristos                         MUST CONTAIN      {
241*a53f50b9Schristos                                             amdMapName ,
242*a53f50b9Schristos                                             amdEntryKey ,
243*a53f50b9Schristos                                             amdEntryValue ,
244*a53f50b9Schristos                                           }
245*a53f50b9Schristos	                 MAY CONTAIN       { cn }
246*a53f50b9Schristos	                 DESCRIPTION
247*a53f50b9Schristos		          "An entry of this object class describes mount
248*a53f50b9Schristos	                   information relative to a certain amdMap entry"
249*a53f50b9Schristos                      }
250*a53f50b9Schristos
251*a53f50b9Schristos.ti 0
252*a53f50b9Schristos7. Examples
253*a53f50b9Schristos
254*a53f50b9Schristos
255*a53f50b9Schristos
256*a53f50b9Schristos.ti 0
257*a53f50b9Schristos8. Security Considerations
258*a53f50b9Schristos
259*a53f50b9SchristosDue to the security problems posed by NFS care should be taken not to
260*a53f50b9Schristosadvertise exported filesystems. Therefore it is often desirable to limit
261*a53f50b9Schristosaccess to entries carrying amd mount map information to those systems
262*a53f50b9Schristosto which the corresponding filesystems have been exported.
263*a53f50b9Schristos
264*a53f50b9Schristos.ti 0
265*a53f50b9Schristos9. References
266*a53f50b9Schristos
267*a53f50b9Schristos   [AMUTILS]
268*a53f50b9Schristos        am-utils homepage: http://shekel.cs.columbia.edu/~erez/am-utils.html
269*a53f50b9Schristos
270*a53f50b9Schristos   [RFC2251]
271*a53f50b9Schristos        M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access
272*a53f50b9Schristos        Protocol (v3)", RFC 2251, December 1997.
273*a53f50b9Schristos
274*a53f50b9Schristos   [RFC2252]
275*a53f50b9Schristos        M. Wahl, A. Coulbeck, T. Howes, S. Kille, "Lightweight Directory
276*a53f50b9Schristos        Access Protocol (v3): Attribute Syntax Definitions", RFC 2252,
277*a53f50b9Schristos        December 1997.
278*a53f50b9Schristos
279*a53f50b9Schristos   [RFC2253]
280*a53f50b9Schristos        M. Wahl, S. Kille, T. Howes, "Lightweight Directory Access
281*a53f50b9Schristos        Protocol (v3): UTF-8 String Representation of Distinguished
282*a53f50b9Schristos        Names", RFC 2253, December 1997.
283*a53f50b9Schristos
284*a53f50b9Schristos   [HOWARD]
285*a53f50b9Schristos        Luke Howard, "An Approach for Using LDAP as a Network
286*a53f50b9Schristos        Information Service", draft-howard-nis-schema-??.txt, Internet
287*a53f50b9Schristos        draft.
288*a53f50b9Schristos
289*a53f50b9Schristos   [X500]
290*a53f50b9Schristos        ITU something or other.
291*a53f50b9Schristos
292*a53f50b9Schristos.in 3
293*a53f50b9Schristos
294*a53f50b9Schristos
295*a53f50b9Schristos.ti 0
296*a53f50b9SchristosAuthor's Address
297*a53f50b9Schristos
298*a53f50b9Schristos.nf
299*a53f50b9Schristos
300*a53f50b9SchristosLeif Johansson
301*a53f50b9SchristosDepartment of Mathematics
302*a53f50b9SchristosStockholm University
303*a53f50b9SchristosS-106 91 Stockholm
304*a53f50b9Schristos         SWEDEN
305*a53f50b9Schristos
306*a53f50b9SchristosEmail: leifj AT matematik.su.se
307