INTERNET-DRAFT Ken Jones Expires 17 Aug 2000 Sun Microsystems, Inc. February 2000 An LDAP Directory Schema Solution For Printers Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract This document describes an LDAP directory schema for print services. The intention is to build upon the work done by the Internet Printing Protocol (IPP) group and illustrate how to extend that solution with an additional class to support existing Sun Microsystems printing implementations. Jones Expires 17 Aug 2000 [Page 1] Internet draft An LDAP Schema Solution For Printers February 2000 Table of Contents 1. Introduction ............................................ 2 2. IPP Printer Object Class ................................ 3 3. sunPrinter Object Class ................................. 9 4. Security Considerations ................................. 11 5. References .............................................. 11 6. Authors' Addresses ...................................... 12 7. Full Copyright Statement ................................ 12 Jones Expires 17 Aug 2000 [Page 2] Internet draft An LDAP Schema Solution For Printers February 2000 1. Introduction The use of directory services based on the Lightweight Directory Access Protocol [LDAPv3] is becoming increasingly popular for distributed services. To ensure interoperability between vendor implementations it is crucial to standardize the schemas which describe these services. Under the auspices of the Printer Worker Group (PWG) the Internet Printing Protocol (IPP) is being developed to bring a standards based printing solution to the internet. This work includes the following two relevant documents: 1) Internet Printing Protocol/1.0: Model and Semantics [RFC 2566] 2) Internet Printing Protocol/1.1: Model and Semantics [IPP1.1] Section 16 of the first document describes a list of attributes which should be included in a general directory schema describing IPP print services. Version 1.1 has proposed adding several attributes to this list. The syntax for each of these attributes is described in detail in the IPP documents. This document will take these attributes and map them to LDAP attributes and object classes. In addition to this an additional object class will be defined to illustrate how Sun Microsystems will support its current install base. These systems currently use a "nameservice" to obtain information about printers. The nameservice may be, at its simplest, a collection of files in the local filesystem which are opened and searched. Other nameservices include the Network Information Name Service (NIS) and the next version of this product (NIS+). Printer information which is now being kept in these nameservices will be available in LDAP through the use of a Sun specific object class. This extends current support for "An Approach for Using LDAP as a Network Information Service" [RFC 2307]. The reader is encouraged to refer to this RFC for more information regarding LDAP as a nameservice. This document is intended to be used in conjunction with the IPP documents listed above. This is where the implementor will find the full specification of all the IPP attributes. Additionally, the format of some attributes are taken from the "Definition of printer: URLs for use with Service Location" (draft-ietf-svrloc-printer-scheme-03.txt) [SVRLOC]. This is due to the requirement of some IPP attributes to be an ordered list which is not supported by all LDAP implementations. Jones Expires 17 Aug 2000 [Page 3] Internet draft An LDAP Schema Solution For Printers February 2000 2. IPP Printer Object Class This section defines the ippPrinter object class and associated attributes. These definitions follow the IPP documentation as closely as possible. 2.1 Accessing a printer IPP uses the "printer-uri-supported" attribute to access a printer. If alternate protocols are available it may not be appropriate to use this attribute. Therefore, this attribute is defined as optional. In the case where "printer-uri-supported" is not defined there must be an additional object class which defines how the printer will be accessed. For example, Sun will be supporting the LPD protocol [RFC 1179]. The information needed to use this protocol is available in the sunPrinter object class. 2.2 Summary of definitions A summary of definitions used in the IPP Printer object class is provided below. Attributes are listed in the same order as they appear in the "General Schema" section of the IPP documentation [IPP1.1]. 2.2.1 Objects defined ippPrinter 2.2.2 Attributes defined printer-uri-supported uri-authentication-supported uri-security-supported printer-name printer-location printer-info printer-more-info printer-make-and-model ipp-versions-supported multiple-document-jobs-supported charset-supported generated-natural-language-supported document-format-supported color-supported compression-supported pages-per-minute pages-per-minute-color Jones Expires 17 Aug 2000 [Page 4] Internet draft An LDAP Schema Solution For Printers February 2000 finishings-supported number-up-supported sides-supported media-supported printer-resolution-supported print-quality-supported 2.3 Syntax definitions The following syntax definitions [RFC 2252] are used by by the ippPrinter object class. Use of the ">" character as a separator is taken from "Definition of printer: URLs for use with Service Location" [SVRLOC]. The URIList syntax implements an ordered list of URI's. The list may contain one or more elements. ( 1.3.6.1.4.1.42.2.27.5.3.2 NAME 'URIList' DESC 'Values in this syntax are represented by the following: URIList = URI ">" URI ">" URI Where: URI = IA5String' ) ( 1.3.6.1.4.1.42.2.27.5.3.3 NAME 'PrinterResolution' DESC 'crossfeed">"feed_direction">"resolution_unit Where: crossfeed = IA5String feed_direction = IA5String resolution_unit = IA5String' ) 2.4 Attribute Definitions ( 1.3.6.1.4.1.42.2.27.5.1.30 NAME 'printer-uri-supported' DESC 'The ordered list of URI supported by this printer.' SYNTAX URIList EQUALITY caseIgnoreIA5Match SUBSTRINGS caseIgnoreIA5SubstringsMatch SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.31 NAME 'uri-security-supported' DESC 'This attribute identifies the security mechanisms used foreach URI listed in the "printer-uri-supported" attribute.' SYNTAX URIList EQUALITY caseIgnoreIA5Match SUBSTRINGS caseIgnoreIA5SubstringsMatch SINGLE-VALUE ) Jones Expires 17 Aug 2000 [Page 5] Internet draft An LDAP Schema Solution For Printers February 2000 ( 1.3.6.1.4.1.42.2.27.5.1.32 NAME 'uri-authentication-supported' DESC 'This attribute identifies the client authentication mechanism associated with each URI listed in the "printer-uri-supported" attribute.' SYNTAX URIList EQUALITY caseIgnoreIA5Match SUBSTRINGS caseIgnoreIA5SubstringsMatch SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.33 NAME 'printer-name' DESC 'This attribute contains the name of the Printer as determined by an administrator. This naming attribute uniquely identifies the printer.' SYNTAX IA5String EQUALITY caseExactIA5Match SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.34 NAME 'printer-location' DESC 'This Printer attribute identifies the location of the device.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match SUBSTRINGS caseIgnoreIA5SubstringsMatch SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.35 NAME 'printer-info' DESC 'This attribute identifies the descriptive information about this Printer.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match SUBSTRINGS caseIgnoreIA5SubstringsMatch SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.36 NAME 'printer-more-info' DESC 'This attribute contains a URI used to obtain more information about this specific Printer.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match SINGLE-VALUE ) Jones Expires 17 Aug 2000 [Page 6] Internet draft An LDAP Schema Solution For Printers February 2000 ( 1.3.6.1.4.1.42.2.27.5.1.37 NAME 'printer-make-and-model' DESC 'This attribute identifies the make and model of the device.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.38 NAME 'ipp-versions-supported' DESC 'This attribute identifies the IPP protocol version(s) that this Printer supports.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.39 NAME 'multiple-document-jobs-supported' DESC 'This IPP attribute indicates whether or not the Printer supports more than one document per job.' SYNTAX Boolean ) ( 1.3.6.1.4.1.42.2.27.5.1.40 NAME 'charset-supported' DESC 'This attribute identifies the set of character sets that the IPP Printer object supports for attributes specification. At a minimum utf-8 must be present.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.41 NAME 'generated-natural-language-supported' DESC 'This IPP Printer attribute identifies the natural language(s) that the Printer object supports for attribute specification.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.42 NAME 'document-format-supported' DESC 'This attribute identifies the set of document formats that the Printer can support.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.43 NAME 'color-supported' DESC 'This attribute identifies whether the Printer is capable of any type of color printing.' SYNTAX Boolean ) Jones Expires 17 Aug 2000 [Page 7] Internet draft An LDAP Schema Solution For Printers February 2000 ( 1.3.6.1.4.1.42.2.27.5.1.44 NAME 'compression-supported' DESC 'This Printer attribute identifies the set of supported compression algorithms for document data.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.45 NAME 'pages-per-minute' DESC 'This attributes specifies the nominal number of pages per minute which may be generated by this printer.' SYNTAX INTEGER EQUALITY integerMatch SINGLE_VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.46 NAME 'pages-per-minute-color' DESC 'This attributes specifies the nominal number of pages per minute which may be generated by this printer when printing color.' SYNTAX INTEGER EQUALITY integerMatch SINGLE_VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.47 NAME 'finishings-supported' DESC 'This attribute describes the types of finishing operations supported by this printer. EQUALITY caseIgnoreIA5Match SYNTAX IA5String ) ( 1.3.6.1.4.1.42.2.27.5.1.48 NAME 'number-up-supported' DESC 'This attribute identifies the possible number of print-stream pages to impose upon a single side of an instance of a selected media.' SYNTAX INTEGER EQUALITY integerMatch ) ( 1.3.6.1.4.1.42.2.27.5.1.49 NAME 'sides-supported' DESC 'The number of impression sides and the two sided impression rotations supported by this printer.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) Jones Expires 17 Aug 2000 [Page 8] Internet draft An LDAP Schema Solution For Printers February 2000 ( 1.3.6.1.4.1.42.2.27.5.1.50 NAME 'media-supported' DESC 'The Site-specific names of media supported by this printer.' SYNTAX IA5String EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.51 NAME 'printer-resolution-supported' DESC 'The list of resolutions supported for printing documents by this printer.' SYNTAX PrinterResolution EQUALITY caseIgnoreIA5Match ) ( 1.3.6.1.4.1.42.2.27.5.1.52 NAME 'print-quality-supported' DESC 'This attribute specifies the print quality that the Printer uses for the Job.' SYNTAX INTEGER EQUALITY integerMatch ) 2.5 Object definitions ( 1.3.6.1.4.1.42.2.27.5.2.8 NAME 'ippPrinter' SUP top STRUCTURAL DESC 'IPP Printer class.' MUST (printer-name ) MAY ( printer-uri-supported $ uri-authentication-supported $ uri-security-supported $ printer-location $ printer-info $ printer-more-info $ printer-make-and-model $ ipp-versions-supported $ multiple-document-jobs-supported $ charset-supported $ generated-natural-language-supported $ document-format-supported $ color-supported $ compression-supported $ pages-per-minute $ pages-per-minute-color $ finishings-supported $ number-up-supported $ sides-supported $ media-supported $ printer-resolution-supported $ print-quality-supported ) ) Jones Expires 17 Aug 2000 [Page 9] Internet draft An LDAP Schema Solution For Printers February 2000 3. sunPrinter object class Current Sun Microsystems print implementations use the Line Printer Daemon (LPD) Protocol described in [RFC 1179] to communicate between print clients and servers. In addition to this print clients make use of nameservices to obtain information about the printer. It is desirable to extend the current print client nameservice support to include LDAP while keeping existing functionality. This is done by defining a Sun specific object class. The "sunPrinter" object contains two attributes. The "sun-bsdaddr" attribute identifies the server host name associated with a print queue and whether or not Solaris specific extensions to the LPD protocol should be generated. The second attribute "sun-print-kvp" contains a set of key values pairs. These values may have meaning to the print sub-system or they may be user defined. Because Sun will use LDAP to distribute information necessary to support LPD throughout the network the only required attribute in the ippPrinter object is the "printer-name". This allows Sun to specify a protocol other than IPP to communicate with the print server. To be specific only the "printer-name" and "sun-bsdaddr" attributes are required to support an LPD protocol print job. If both the "sun-bsdaddr" and "printer-uri-supported" attributes are present it is outside the scope of this document to describe how one protocol will be selected. 3.1 Summary of definitions A summary of definitions used in the sunPrinter object class is provided below. 3.1.1 Objects defined sunPrinter 3.1.2 Attributes defined sun-bsdaddr sun-print-kvp Jones Expires 17 Aug 2000 [Page 10] Internet draft An LDAP Schema Solution For Printers February 2000 3.2 Syntax definitions The following syntax definitions [RFC 2252] are used by by the sunPrinter object class. ( 1.3.6.1.4.1.42.2.27.5.3.4 NAME 'sunBSDAddress' DESC ' Values in this syntax are represented by the following: sunBSDAddress = server "," destination ",Solaris" Where: server = IA5String destination = IA5String' ) ( 1.3.6.1.4.1.42.2.27.5.3.5 NAME 'sunKeyValuePair' DESC 'Values in this syntax are represented by the following: sunPrintKeyValuePair = key "=" value Where: key = IA5String value = IA5String' ) Values adhering to these syntaxes are encoded as strings by LDAP servers. 3.3 Attribute definitions ( 1.3.6.1.4.1.42.2.27.5.1.53 NAME 'sun-bsdaddr' DESC 'Sets the server, print queue destination name and whether the client generates protocol extensions. "Solaris" specifies a Solaris print server extension.' SYNTAX sunBSDAddress EQUALITY caseIgnoreIA5Match SINGLE-VALUE ) ( 1.3.6.1.4.1.42.2.27.5.1.54 NAME 'sun-print-kvp' DESC 'This attribute contains a set of key value pairs which may have meaning to the print sub-system or may be user defined.' SYNTAX sunPrintKeyValuePair EQUALITY caseIgnoreIA5Match ) 3.4 Object Definitions ( 1.3.6.1.4.1.42.2.27.5.2.9 NAME 'sunPrinter' SUP ippPrinter STRUCTURAL DESC 'Sun Printer class' MAY ( sun-bsdaddr $ sun-print-kvp ) ) Jones Expires 17 Aug 2000 [Page 11] Internet draft An LDAP Schema Solution For Printers February 2000 4. Security Considerations As with any LDAP schema, it is important to protect specific entries and attributes with the appropriate access control. It is particularly important that only administrators can modify entries defined in this schema. For additional considerations of deploying printers in an IPP environment the reader is referred to section 8 of "Internet Printing Protocol/1.1: Model and Semantics" [IPP1.1]. 5. References [RFC 2566] deBry, R. and T. Hastings and R. Herriot andS. Isaacson and P. Powell, IPP/1.0: Model and Semantics, RFC 2566, April 1999. [IPP1.1] deBry, R. and T. Hastings and R. Herriot and S. Isaacson and P. Powell, IPP/1.1: Model and Semantics, (work in progress), June 1999. [RFC 2307] Howard, L., "An Approach for Using LDAP as a Network Information Service", RFC 2307, March 1998. [RFC 1179] McLaughlin, L, "Line Printer Daemon Protocol", RFC 1179, August 1990. [SVRLOC] Pierre, P. and S. Isaccson and I. McDonald, "Definition of printer: URLs for use with Service Location", (work in progress), January 2000. [RFC 2252] Wahl, M., Coulbeck, A., Howes, T., and S. Kille, "Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions", RFC 2252, December 1997. [LDAPv3] Wahl, M. and T. Howes and S. Kille, "Lightweight Directory Access Protocol (v3)", RFC 2251, December 1997. Jones Expires 17 Aug 2000 [Page 12] Internet draft An LDAP Schema Solution For Printers February 2000 Expires 17 Aug 2000 6. Authors' Addresses Ken Jones Sun Microsystems Inc. 17 Network Circle Menlo Park, CA 94025 USA Phone: +1 650 786 4164 EMail: kenjones@eng.sun.com 7. Full Copyright Statement Copyright (C) The Internet Society (2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.