Independent Submission P. Fleming Request for Comments: 7612 Independent Obsoletes: 3712 I. McDonald Category: Informational High North ISSN: 2070-1721 June 2015 Lightweight Directory Access Protocol (LDAP): Schema for Printer ServicesAbstract
This document defines a schema, object classes, and attributes, for Printers and print services, for use with directories that support the Lightweight Directory Access Protocol (RFC 4510). This document is based on the Printer attributes listed in Appendix E of "Internet Printing Protocol/1.1: Model and Semantics" (RFC 2911). Additional Printer attributes are based on definitions in "Printer MIB v2" (RFC 3805), "PWG Command Set Format for IEEE 1284 Device ID v1.0" (PWG 5107.2), "IPP Job and Printer Extensions - Set 3 (JPS3)" (PWG 5100.13), and "IPP Everywhere" (PWG 5100.14). This memo is an Independent Submission to the RFC Editor by the Internet Printing Protocol (IPP) Working Group of the IEEE-ISTO Printer Working Group (PWG), as part of their PWG "IPP Everywhere" (PWG 5100.14) project for secure mobile printing with vendor-neutral Client software. This document obsoletes RFC 3712. Status of This Memo This document is not an Internet Standards Track specification; it is published for informational purposes. This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7612.
Copyright Notice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.Table of Contents
1. Introduction ....................................................4 1.1. Relationship to SLP Printer Service ........................4 1.2. Source of LDAP Printer Attributes ..........................4 1.3. Source of LDAP Printer Schema OIDs .........................5 1.3.1. IBM Assignments for RFC 3712 ........................5 1.3.2. IEEE-ISTO PWG Assignments ...........................5 1.4. Rationale for Design Choices ...............................5 1.4.1. Rationale for Using DirectoryString Syntax ..........5 1.4.2. Rationale for Using caseIgnoreMatch .................6 1.4.3. Rationale for Using caseIgnoreSubstringsMatch .......7 2. Conventions Used in This Document ...............................8 2.1. Requirements Language ......................................8 2.2. LDAP Schema Descriptions ...................................8 2.3. Abbreviations ..............................................8 3. Definition of Object Classes ....................................9 3.1. slpServicePrinter .........................................10 3.2. printerAbstract ...........................................10 3.3. printerService ............................................11 3.4. printerServiceAuxClass ....................................12 3.5. printerIPP ................................................12 3.6. printerLPR ................................................12 4. Definition of Attribute Types ..................................13 4.1. printer-uri ...............................................15 4.2. printer-xri-supported .....................................16 4.3. printer-name ..............................................18 4.4. printer-natural-language-configured .......................19 4.5. printer-location ..........................................19 4.6. printer-info ..............................................20 4.7. printer-more-info .........................................21 4.8. printer-make-and-model ....................................21 4.9. printer-ipp-versions-supported ............................22 4.10. printer-multiple-document-jobs-supported .................23 4.11. printer-charset-configured ...............................23 4.12. printer-charset-supported ................................24
4.13. printer-generated-natural-language-supported .............24 4.14. printer-document-format-supported ........................25 4.15. printer-color-supported ..................................25 4.16. printer-compression-supported ............................26 4.17. printer-pages-per-minute .................................26 4.18. printer-pages-per-minute-color ...........................27 4.19. printer-finishings-supported .............................27 4.20. printer-number-up-supported ..............................28 4.21. printer-sides-supported ..................................28 4.22. printer-media-supported ..................................29 4.23. printer-media-local-supported ............................30 4.24. printer-resolution-supported .............................30 4.25. printer-print-quality-supported ..........................31 4.26. printer-job-priority-supported ...........................32 4.27. printer-copies-supported .................................32 4.28. printer-job-k-octets-supported ...........................33 4.29. printer-current-operator .................................33 4.30. printer-service-person ...................................34 4.31. printer-delivery-orientation-supported ...................34 4.32. printer-stacking-order-supported .........................35 4.33. printer-output-features-supported ........................36 4.34. printer-aliases ..........................................37 4.35. printer-device-id ........................................37 4.36. printer-device-service-count .............................38 4.37. printer-uuid .............................................38 4.38. printer-charge-info ......................................39 4.39. printer-charge-info-uri ..................................39 4.40. printer-geo-location .....................................40 4.41. printer-ipp-features-supported ...........................41 5. Definition of Syntaxes .........................................42 6. Definition of Matching Rules ...................................42 7. IANA Considerations ............................................42 7.1. Registration of Attribute Types ...........................43 7.2. Object Classes and Attribute Types from RFC 3712 ..........44 8. Internationalization Considerations ............................45 9. Security Considerations ........................................45 10. References ....................................................46 10.1. Normative References .....................................46 10.2. Informative References ...................................50 Appendix A. Changes since RFC 3712 ................................52 Acknowledgments ...................................................54 Authors' Addresses ................................................54
1. Introduction
This document defines several object classes to provide Lightweight Directory Access Protocol (LDAP) [RFC4510] applications with flexible options in defining Printer information using an LDAP schema. Classes are provided for defining directory entries with common Printer information as well as for extending existing directory entries with Service Location Protocol Version 2 (SLPv2) [RFC2608], Internet Printing Protocol/1.1 (IPP/1.1) [RFC2911], and lineprinter (LPR) [RFC1179] protocol-specific information. This memo is an Independent Submission to the RFC Editor by the Internet Printing Protocol Working Group of the IEEE-ISTO Printer Working Group, as part of their Printer Working Group (PWG) "IPP Everywhere" (PWG 5100.14) project for secure mobile printing with vendor-neutral Client software.1.1. Relationship to SLP Printer Service
The schema defined in this document is technically aligned with the stable IANA-registered 'service:printer:' v2.0 template [SLPPRT20], for compatibility with already-deployed SLPv2 [RFC2608] service advertising and discovery infrastructure. The attribute syntaxes are technically aligned with the 'service:printer:' v2.0 template; therefore, simpler types are sometimes used (for example, 'DirectoryString' [RFC4517] rather than 'labeledURI' [RFC2079] for the 'printer-uri' attribute).1.2. Source of LDAP Printer Attributes
The schema defined in this document is based on: o all of the Printer attributes listed in Appendix E ("Generic Directory Schema") of "Internet Printing Protocol/1.1: Model and Semantics" [RFC2911] that are defined in Section 4.4 ("Printer Description Attributes") of [RFC2911] o selected Printer attributes defined in "Printer MIB v2" [RFC3805], "PWG Command Set for IEEE 1284 Device ID v1.0" [PWG5107.2], "IPP Job and Printer Extensions - Set 3 (JPS3)" [PWG5100.13], and "IPP Everywhere" [PWG5100.14] See the table of Printer attributes and source documents in Section 4 ("Definition of Attribute Types") of this document.
1.3. Source of LDAP Printer Schema OIDs
1.3.1. IBM Assignments for RFC 3712
In March 2000, IBM permanently assigned ASN.1 OIDs to all of the object classes and attribute types that were defined in the original LDAP Printer Schema [RFC3712] (see Section 7.2).1.3.2. IEEE-ISTO PWG Assignments
In October 2011, IBM permanently delegated the base ASN.1 OID "1.3.18.0.2.24.46" to the IEEE-ISTO PWG for use in any PWG project. In October 2011, the IEEE-ISTO PWG permanently assigned subordinate ASN.1 OIDs for all of the new attribute types defined in this updated LDAP Printer Schema (see Section 7.1).1.4. Rationale for Design Choices
1.4.1. Rationale for Using DirectoryString Syntax
The attribute syntax 'DirectoryString' (UTF-8 [STD63]) defined in [RFC4517] is specified for several groups of string attributes that are defined in this document: 1) URI - printer-uri, printer-xri-supported, printer-more-info, printer-charge-info-uri, printer-uuid The UTF-8 encoding is compatible with deployment of (UTF-8 based) Internationalized Resource Identifiers (IRIs) [RFC3987]. 2) Description - printer-name, printer-location, printer-info, printer-make-and-model The UTF-8 encoding supports descriptions in any language, conformant with the IETF Policy on Character Sets and Languages [BCP18]. Note: The printer-natural-language-configured attribute contains a language tag [BCP47] for these description attributes (for example, to support text-to-speech conversions).
3) Keyword - printer-compression-supported, printer-finishings-supported, printer-media-supported, printer-media-local-supported, printer-print-quality-supported The UTF-8 encoding is compatible with the current IPP/1.1 [RFC2911] definition of the equivalent attributes, most of which have the IPP/1.1 union syntax 'keyword' or 'name'. The keyword attributes defined in this document are extensible by site- specific or vendor-specific 'names' that behave like new 'keywords'. Note: In IPP/1.1, each value is strongly typed over-the-wire as either 'keyword' or 'name'. This union selector is not preserved in the definitions of these equivalent LDAP attributes.1.4.2. Rationale for Using caseIgnoreMatch
The EQUALITY matching rule 'caseIgnoreMatch' defined in [RFC4517] is specified for several groups of string attributes that are defined in this document: 1) URI These URI attributes specify EQUALITY matching with 'caseIgnoreMatch' (rather than with 'caseExactMatch') in order to conform to the spirit of [STD66], which requires case-insensitive matching on the host part of a URI versus case-sensitive matching on the remainder of a URI. These URI attributes follow existing practice of supporting case-insensitive equality matching for host names in the associatedDomain attribute defined in [RFC4524]. Either equality matching rule choice would be a compromise: a) case-sensitive whole URI matching can lead to false negative matches and has been shown to be fragile (given deployed client applications that 'pretty up' host names displayed and transferred in URI); b) case-insensitive whole URI matching can lead to false positive matches, although it is a dangerous practice to publish URI that differ only by case (for example, in the path elements).
2) Description Case-insensitive equality matching is more user-friendly for description attributes. 3) Keyword Case-insensitive equality matching is more user-friendly for keyword attributes. 4) IEEE 1284 Device ID Case-insensitive equality matching is mandatory for IEEE 1284 Device ID attributes.1.4.3. Rationale for Using caseIgnoreSubstringsMatch
The SUBSTR matching rule 'caseIgnoreSubstringsMatch' defined in [RFC4517] is specified for several groups of string attributes that are defined in this document: 1) URI These URI attributes follow existing practice of supporting case-insensitive equality matching for host names in the associatedDomain attribute defined in [RFC4524]. 2) Description Support for case-insensitive substring matching is more user-friendly for description attributes. 3) Keyword Support for case-insensitive substring matching is more user-friendly for keyword attributes. 4) IEEE 1284 Device ID Support for case-insensitive substring matching is mandatory for IEEE 1284 Device ID attributes.
2. Conventions Used in This Document
2.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].2.2. LDAP Schema Descriptions
Schema definitions are provided using LDAP [RFC4510] description formats. Definitions provided here are formatted (line wrapped) for readability.2.3. Abbreviations
This document makes use of the following abbreviations (given with their expanded forms and references for further reading): IANA - Internet Assigned Numbers Authority <http://www.iana.org> IEEE - Institute of Electrical and Electronics Engineers <http://www.ieee.org> IPP - Internet Printing Protocol [RFC2911] [PWG5100.12] <http://www.pwg.org/ipp/> ISTO - IEEE Industry Standards and Technology Organization <http://www.ieee-isto.org/> PWG - IEEE-ISTO Printer Working Group <http://www.pwg.org> RFC - Request for Comments <http://www.rfc-editor.org> TLS - Transport Layer Security [RFC5246] URI - Uniform Resource Identifier [STD66] URL - Uniform Resource Locator [STD66] UTF-8 - Unicode Transformation Format - 8-bit [STD63]
3. Definition of Object Classes
We define the following LDAP object classes for use with both generic Printer-related information and services specific to SLPv2 [RFC2608], IPP/1.1 [RFC2911], and LPR [RFC1179]. slpServicePrinter - auxiliary class for SLP-registered Printers printerAbstract - abstract class for all Printer classes printerService - structural class for Printers printerServiceAuxClass - auxiliary class for Printers printerIPP - auxiliary class for IPP Printers printerLPR - auxiliary class for LPR Printers The following are some examples of how applications could choose to use these classes when creating directory entries: 1) Use printerService for directory entries containing common Printer information. 2) Use both printerService and slpServicePrinter for directory entries containing common Printer information for SLP-registered Printers. 3) Use printerService, printerLPR, and printerIPP for directory entries containing common Printer information for Printers that support both LPR and IPP. 4) Use printerServiceAuxClass and object classes not defined by this document for directory entries containing common Printer information. In this example, printerServiceAuxClass is used for extending other structural classes defining Printer information with common Printer information defined in this document. Refer to Section 4 for the definition of attribute types referenced by these object classes. We use attribute names instead of OIDs in object class definitions for clarity. Some attribute names described in [RFC2911] have been prefixed with 'printer-' as recommended in [RFC2926] and [SLPPRT20].
3.1. slpServicePrinter
( 1.3.18.0.2.6.254 NAME 'slpServicePrinter' DESC 'Service Location Protocol (SLP) information.' AUXILIARY SUP slpService ) This auxiliary class defines information specific to the Service Location Protocol (SLPv2) [RFC2608]. It MAY be used to create new, or extend existing, directory entries with SLP 'service:printer' abstract service type information as defined in [SLPPRT20]. This object class is derived from 'slpService', the parent class for all SLP services, defined in [RFC2926].3.2. printerAbstract
( 1.3.18.0.2.6.258 NAME 'printerAbstract' DESC 'Printer-related information.' ABSTRACT SUP top MAY ( printer-name $ printer-natural-language-configured $ printer-location $ printer-info $ printer-more-info $ printer-make-and-model $ printer-multiple-document-jobs-supported $ printer-charset-configured $ printer-charset-supported $ printer-generated-natural-language-supported $ printer-document-format-supported $ printer-color-supported $ printer-compression-supported $ printer-pages-per-minute $ printer-pages-per-minute-color $ printer-finishings-supported $ printer-number-up-supported $ printer-sides-supported $ printer-media-supported $ printer-media-local-supported $ printer-resolution-supported $ printer-print-quality-supported $ printer-job-priority-supported $ printer-copies-supported $ printer-job-k-octets-supported $
printer-current-operator $ printer-service-person $ printer-delivery-orientation-supported $ printer-stacking-order-supported $ printer-output-features-supported $ printer-device-id $ printer-device-service-count $ printer-uuid $ printer-charge-info $ printer-charge-info-uri $ printer-geo-location ) ) This abstract class defines Printer information. It is a base class for deriving other Printer-related classes, such as, but not limited to, classes defined in this document. It defines a common set of Printer attributes that are not specific to any one type of service, protocol, or operating system.3.3. printerService
( 1.3.18.0.2.6.255 NAME 'printerService' DESC 'Printer information.' STRUCTURAL SUP printerAbstract MAY ( printer-uri $ printer-xri-supported ) ) This structural class defines Printer information. It is derived from class printerAbstract and thus inherits common Printer attributes. This class can be used with or without auxiliary classes to define Printer information. Auxiliary classes can be used to extend the common Printer information with information specific to the protocol, service, or operating system. Note: When extending other structural classes with auxiliary classes, printerService SHOULD NOT be used.
3.4. printerServiceAuxClass
( 1.3.18.0.2.6.257 NAME 'printerServiceAuxClass' DESC 'Printer information.' AUXILIARY SUP printerAbstract MAY ( printer-uri $ printer-xri-supported ) ) This auxiliary class defines Printer information. It is derived from class printerAbstract and thus inherits common Printer attributes.3.5. printerIPP
( 1.3.18.0.2.6.256 NAME 'printerIPP' DESC 'Internet Printing Protocol (IPP) information.' AUXILIARY SUP top MAY ( printer-ipp-versions-supported $ printer-ipp-features-supported $ printer-multiple-document-jobs-supported ) ) This auxiliary class defines Internet Printing Protocol (IPP/1.1) [RFC2911] information. It is used to extend structural classes with IPP-specific Printer information. Note: See "Internet Printing Protocol/1.1: IPP URL Scheme" [RFC3510] and "Internet Printing Protocol (IPP) over HTTPS Transport Binding and the 'ipps' URI Scheme" [RFC7472] for conforming URI for IPP Printers.3.6. printerLPR
( 1.3.18.0.2.6.253 NAME 'printerLPR' DESC 'LPR information.' AUXILIARY SUP top MUST ( printer-name ) MAY ( printer-aliases ) ) This auxiliary class defines LPR [RFC1179] information. It is used to identify directory entries that support LPR.