1 1.1 lukem 2 1.1 lukem 3 1.1 lukem 4 1.1 lukem 5 1.1 lukem 6 1.1 lukem 7 1.1 lukem Network Working Group M. Meredith 8 1.1 lukem Request for Comments: 3045 Novell Inc. 9 1.1 lukem Category: Informational January 2001 10 1.1 lukem 11 1.1 lukem 12 1.1 lukem Storing Vendor Information in the LDAP root DSE 13 1.1 lukem 14 1.1 lukem Status of this Memo 15 1.1 lukem 16 1.1 lukem This memo provides information for the Internet community. It does 17 1.1 lukem not specify an Internet standard of any kind. Distribution of this 18 1.1 lukem memo is unlimited. 19 1.1 lukem 20 1.1 lukem Copyright Notice 21 1.1 lukem 22 1.1 lukem Copyright (C) The Internet Society (2001). All Rights Reserved. 23 1.1 lukem 24 1.1 lukem Abstract 25 1.1 lukem 26 1.1 lukem This document specifies two Lightweight Directory Access Protocol 27 1.1 lukem (LDAP) attributes, vendorName and vendorVersion that MAY be included 28 1.1 lukem in the root DSA-specific Entry (DSE) to advertise vendor-specific 29 1.1 lukem information. These two attributes supplement the attributes defined 30 1.1 lukem in section 3.4 of RFC 2251. 31 1.1 lukem 32 1.1 lukem The information held in these attributes MAY be used for display and 33 1.1 lukem informational purposes and MUST NOT be used for feature advertisement 34 1.1 lukem or discovery. 35 1.1 lukem 36 1.1 lukem Conventions used in this document 37 1.1 lukem 38 1.1 lukem The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 39 1.1 lukem "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 40 1.1 lukem document are to be interpreted as described in [RFC2219] 41 1.1 lukem 42 1.1 lukem 1. Overview 43 1.1 lukem 44 1.1 lukem LDAP clients discover server-specific data--such as available 45 1.1 lukem controls, extensions, etc.--by reading the root DSE. See section 3.4 46 1.1 lukem of [RFC2251] for details. 47 1.1 lukem 48 1.1 lukem For display, information, and limited function discovery, it is 49 1.1 lukem desirable to be able to query an LDAP server to determine the vendor 50 1.1 lukem name of that server and also to see what version of that vendor's 51 1.1 lukem code is currently installed. 52 1.1 lukem 53 1.1 lukem 54 1.1 lukem 55 1.1 lukem 56 1.1 lukem 57 1.1 lukem 58 1.1 lukem Meredith Informational [Page 1] 59 1.1 lukem 61 1.1 lukem RFC 3045 LDAP Root DSE to Display Vendor Information January 2001 62 1.1 lukem 63 1.1 lukem 64 1.1 lukem 1.1 Function discovery 65 1.1 lukem 66 1.1 lukem There are many ways in which a particular version of a vendor's LDAP 67 1.1 lukem server implementation may be functionally incomplete, or may contain 68 1.1 lukem software anomalies. It is impossible to identify every known 69 1.1 lukem shortcoming of an LDAP server with the given set of server data 70 1.1 lukem advertisement attributes. Furthermore, often times, the anomalies of 71 1.1 lukem an implementation are not found until after the implementation has 72 1.1 lukem been distributed, deployed, and is in use. 73 1.1 lukem 74 1.1 lukem The attributes defined in this document MAY be used by client 75 1.1 lukem implementations in order to identify a particular server 76 1.1 lukem implementation so that it can 'work around' such anomalies. 77 1.1 lukem 78 1.1 lukem The attributes defined in this document MUST NOT be used to gather 79 1.1 lukem information related to supported features of an LDAP implementation. 80 1.1 lukem All LDAP features, mechanisms, and capabilities--if advertised--MUST 81 1.1 lukem be advertised through other mechanisms, preferably advertisement 82 1.1 lukem mechanisms defined in concert with said features, mechanisms, and 83 1.1 lukem capabilities. 84 1.1 lukem 85 1.1 lukem 2. Attribute Types 86 1.1 lukem 87 1.1 lukem These attributes are an addition to the Server-specific Data 88 1.1 lukem Requirements defined in section 3.4 of [RFC2251]. The associated 89 1.1 lukem syntaxes are defined in section 4 of [RFC2252]. 90 1.1 lukem 91 1.1 lukem Servers MAY restrict access to vendorName or vendorVersion and 92 1.1 lukem clients MUST NOT expect these attributes to be available. 93 1.1 lukem 94 1.1 lukem 2.1 vendorName 95 1.1 lukem 96 1.1 lukem This attribute contains a single string, which represents the name of 97 1.1 lukem the LDAP server implementer. 98 1.1 lukem 99 1.1 lukem All LDAP server implementations SHOULD maintain a vendorName, which 100 1.1 lukem is generally the name of the company that wrote the LDAP Server code 101 1.1 lukem like "Novell, Inc." 102 1.1 lukem 103 1.1 lukem ( 1.3.6.1.1.4 NAME 'vendorName' EQUALITY 104 1.1 lukem 1.3.6.1.4.1.1466.109.114.1 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 105 1.1 lukem SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) 106 1.1 lukem 107 1.1 lukem 2.2 vendorVersion 108 1.1 lukem 109 1.1 lukem This attribute contains a string which represents the version of the 110 1.1 lukem LDAP server implementation. 111 1.1 lukem 112 1.1 lukem 113 1.1 lukem 114 1.1 lukem 115 1.1 lukem Meredith Informational [Page 2] 116 1.1 lukem 118 1.1 lukem RFC 3045 LDAP Root DSE to Display Vendor Information January 2001 119 1.1 lukem 120 1.1 lukem 121 1.1 lukem All LDAP server implementations SHOULD maintain a vendorVersion. 122 1.1 lukem Note that this value is typically a release value--comprised of a 123 1.1 lukem string and/or a string of numbers--used by the developer of the LDAP 124 1.1 lukem server product (as opposed to the supportedLDAPVersion, which 125 1.1 lukem specifies the version of the LDAP protocol supported by this server). 126 1.1 lukem This is single-valued so that it will only have one version value. 127 1.1 lukem This string MUST be unique between two versions, but there are no 128 1.1 lukem other syntactic restrictions on the value or the way it is formatted. 129 1.1 lukem 130 1.1 lukem ( 1.3.6.1.1.5 NAME 'vendorVersion' EQUALITY 131 1.1 lukem 1.3.6.1.4.1.1466.109.114.1 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 132 1.1 lukem SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) 133 1.1 lukem 134 1.1 lukem The intent behind the equality match on vendorVersion is to not allow 135 1.1 lukem a less than or greater than type of query. Say release "LDAPv3 8.0" 136 1.1 lukem has a problem that is fixed in the next release "LDAPv3 8.5", but in 137 1.1 lukem the mean time there is also an update release say version "LDAPv3 138 1.1 lukem 8.01" that fixes the problem. This will hopefully stop the client 139 1.1 lukem from saying it will not work with a version less than "LDAPv3 8.5" 140 1.1 lukem when it would also work with "LDAPv3 8.01". With the equality match 141 1.1 lukem the client would have to exactly match what it is looking for. 142 1.1 lukem 143 1.1 lukem 3. Notes to Server Implementers 144 1.1 lukem 145 1.1 lukem Server implementers may consider tying the vendorVersion attribute 146 1.1 lukem value to the build mechanism so that it is automatically updated when 147 1.1 lukem the version value changes. 148 1.1 lukem 149 1.1 lukem 4. Notes to Client Developers 150 1.1 lukem 151 1.1 lukem As mentioned in section 2.1, the use of vendorName and vendorVersion 152 1.1 lukem MUST NOT be used to discover features. 153 1.1 lukem 154 1.1 lukem It should be noted that an anomalies often on affect subset of 155 1.1 lukem implementations reporting the same version information. Most 156 1.1 lukem implementations support multiple platforms, have numerous 157 1.1 lukem configuration options, and often support plug-ins. 158 1.1 lukem 159 1.1 lukem Client implementations SHOULD be written in such a way as to accept 160 1.1 lukem any value in the vendorName and vendorVersion attributes. If a 161 1.1 lukem client implementation does not recognize the specific vendorName or 162 1.1 lukem vendorVersion as one it recognizes, then for the purposes of 'working 163 1.1 lukem around' anomalies, the client MUST assume that the server is complete 164 1.1 lukem and correct. The client MUST work with implementations that do not 165 1.1 lukem publish these attributes. 166 1.1 lukem 167 1.1 lukem 168 1.1 lukem 169 1.1 lukem 170 1.1 lukem 171 1.1 lukem 172 1.1 lukem Meredith Informational [Page 3] 173 1.1 lukem 175 1.1 lukem RFC 3045 LDAP Root DSE to Display Vendor Information January 2001 176 1.1 lukem 177 1.1 lukem 178 1.1 lukem 5. Security Considerations 179 1.1 lukem 180 1.1 lukem The vendorName and vendorVersion attributes are provided only as 181 1.1 lukem display or informational mechanisms, or as anomaly identifying 182 1.1 lukem mechanisms. Client and application implementers must consider that 183 1.1 lukem the existence of a given value in the vendorName or vendorVersion 184 1.1 lukem attribute is no guarantee that the server was actually built by the 185 1.1 lukem asserted vendor or that its version is the asserted version and 186 1.1 lukem should act accordingly. 187 1.1 lukem 188 1.1 lukem Server implementers should be aware that this information could be 189 1.1 lukem used to exploit a security hole a server provides either by feature 190 1.1 lukem or flaw. 191 1.1 lukem 192 1.1 lukem 6. IANA Considerations 193 1.1 lukem 194 1.1 lukem This document seeks to create two attributes, vendorName and 195 1.1 lukem vendorVersion, which the IANA will primarily be responsible. This is 196 1.1 lukem a one time effort; there is no need for any recurring assignment 197 1.1 lukem after this stage. 198 1.1 lukem 199 1.1 lukem 7. References 200 1.1 lukem 201 1.1 lukem [RFC2219] Bradner, S., "Key words for use in RFCs to Indicate 202 1.1 lukem Requirement Levels", BCP 14, RFC 2119, March 1997. 203 1.1 lukem 204 1.1 lukem [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 205 1.1 lukem 3", BCP 9, RFC 2026, October 1996. 206 1.1 lukem 207 1.1 lukem [RFC2251] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory 208 1.1 lukem Access Protocol (v3)", RFC 2251, December 1997. 209 1.1 lukem 210 1.1 lukem [RFC2252] Wahl, M., Coulbeck, A., Howes, T. and S. Kille, 211 1.1 lukem "Lightweight Directory Access Protocol (v3): Attribute 212 1.1 lukem Syntax Definitions", RFC 2252, December 1997. 213 1.1 lukem 214 1.1 lukem 8. Acknowledgments 215 1.1 lukem 216 1.1 lukem The author would like to thank the generous input and review by 217 1.1 lukem individuals at Novell including but not limited to Jim Sermersheim, 218 1.1 lukem Mark Hinckley, Renea Campbell, and Roger Harrison. Also IETF 219 1.1 lukem contributors Kurt Zeilenga, Mark Smith, Mark Wahl, Peter Strong, 220 1.1 lukem Thomas Salter, Gordon Good, Paul Leach, Helmut Volpers. 221 1.1 lukem 222 1.1 lukem 223 1.1 lukem 224 1.1 lukem 225 1.1 lukem 226 1.1 lukem 227 1.1 lukem 228 1.1 lukem 229 1.1 lukem Meredith Informational [Page 4] 230 1.1 lukem 232 1.1 lukem RFC 3045 LDAP Root DSE to Display Vendor Information January 2001 233 1.1 lukem 234 1.1 lukem 235 1.1 lukem 9. Author's Address 236 1.1 lukem 237 1.1 lukem Mark Meredith 238 1.1 lukem Novell Inc. 239 1.1 lukem 1800 S. Novell Place 240 1.1 lukem Provo, UT 84606 241 1.1 lukem 242 1.1 lukem Phone: 801-861-2645 243 1.1 lukem EMail: mark_meredith (a] novell.com 244 1.1 lukem 245 1.1 lukem 246 1.1 lukem 247 1.1 lukem 248 1.1 lukem 249 1.1 lukem 250 1.1 lukem 251 1.1 lukem 252 1.1 lukem 253 1.1 lukem 254 1.1 lukem 255 1.1 lukem 256 1.1 lukem 257 1.1 lukem 258 1.1 lukem 259 1.1 lukem 260 1.1 lukem 261 1.1 lukem 262 1.1 lukem 263 1.1 lukem 264 1.1 lukem 265 1.1 lukem 266 1.1 lukem 267 1.1 lukem 268 1.1 lukem 269 1.1 lukem 270 1.1 lukem 271 1.1 lukem 272 1.1 lukem 273 1.1 lukem 274 1.1 lukem 275 1.1 lukem 276 1.1 lukem 277 1.1 lukem 278 1.1 lukem 279 1.1 lukem 280 1.1 lukem 281 1.1 lukem 282 1.1 lukem 283 1.1 lukem 284 1.1 lukem 285 1.1 lukem 286 1.1 lukem Meredith Informational [Page 5] 287 1.1 lukem 289 1.1 lukem RFC 3045 LDAP Root DSE to Display Vendor Information January 2001 290 1.1 lukem 291 1.1 lukem 292 1.1 lukem 10. Full Copyright Statement 293 1.1 lukem 294 1.1 lukem Copyright (C) The Internet Society (2001). All Rights Reserved. 295 1.1 lukem 296 1.1 lukem This document and translations of it may be copied and furnished to 297 1.1 lukem others, and derivative works that comment on or otherwise explain it 298 1.1 lukem or assist in its implementation may be prepared, copied, published 299 1.1 lukem and distributed, in whole or in part, without restriction of any 300 1.1 lukem kind, provided that the above copyright notice and this paragraph are 301 1.1 lukem included on all such copies and derivative works. However, this 302 1.1 lukem document itself may not be modified in any way, such as by removing 303 1.1 lukem the copyright notice or references to the Internet Society or other 304 1.1 lukem Internet organizations, except as needed for the purpose of 305 1.1 lukem developing Internet standards in which case the procedures for 306 1.1 lukem copyrights defined in the Internet Standards process must be 307 1.1 lukem followed, or as required to translate it into languages other than 308 1.1 lukem English. 309 1.1 lukem 310 1.1 lukem The limited permissions granted above are perpetual and will not be 311 1.1 lukem revoked by the Internet Society or its successors or assigns. 312 1.1 lukem 313 1.1 lukem This document and the information contained herein is provided on an 314 1.1 lukem "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 315 1.1 lukem TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 316 1.1 lukem BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 317 1.1 lukem HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 318 1.1 lukem MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 319 1.1 lukem 320 1.1 lukem Acknowledgement 321 1.1 lukem 322 1.1 lukem Funding for the RFC Editor function is currently provided by the 323 1.1 lukem Internet Society. 324 1.1 lukem 325 1.1 lukem 326 1.1 lukem 327 1.1 lukem 328 1.1 lukem 329 1.1 lukem 330 1.1 lukem 331 1.1 lukem 332 1.1 lukem 333 1.1 lukem 334 1.1 lukem 335 1.1 lukem 336 1.1 lukem 337 1.1 lukem 338 1.1 lukem 339 1.1 lukem 340 341 342 343 Meredith Informational [Page 6] 344 346