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