• Aucun résultat trouvé

3. IPP Objects

3.4. Object Identity

All IPP objects (Printers, Jobs, etc.) are identified by a Uniform Resource Identifier (URI) [RFC3986] so that they can be persistently and unambiguously referenced. Since every URL is a specialized form of a URI, even though the more generic term "URI" is used throughout the rest of this document, its usage is intended to cover the more specific notion of "URL" as well.

An Administrator configures Printers to either support or not support authentication and/or message privacy using Transport Layer Security (TLS) [RFC5246]; the mechanism for security configuration is outside the scope of this document. In some situations, both types of

connections (both authenticated and unauthenticated) can be

established using a single communication channel that has some sort of negotiation mechanism. In other situations, multiple

communication channels are used, one for each type of security

configuration. Section 9 provides a full description of all security considerations and configurations.

If a Printer supports more than one communication channel, some or all of those channels might support and/or require different security mechanisms. In such cases, an Administrator could expose the

simultaneous support for these multiple communication channels as multiple URIs for a single Printer where each URI represents one of the communication channels to the Printer. To support this

flexibility, the IPP Printer object type defines a multi-valued

identification attribute called the "printer-uri-supported" attribute that MUST contain at least one URI. The "printer-uri-supported"

attribute has two companion attributes, the "uri-security-supported"

attribute and the "uri-authentication-supported" attribute. Both have the same cardinality as "printer-uri-supported". The purpose of

the "uri-security-supported" attribute is to indicate the security mechanisms (if any) used for each URI listed in

"printer-uri-supported". The purpose of the

"uri-authentication-supported" attribute is to indicate the authentication mechanisms (if any) used for each URI listed in

"printer-uri-supported". These three attributes are fully described in Sections 5.4.1, 5.4.2, and 5.4.3.

When a Job is submitted to the Printer via a Job Creation request, the Client supplies only a single Printer URI. The Client-supplied Printer URI MUST be one of the values in the "printer-uri-supported"

Printer attribute.

IPP/1.1 does not specify how the Client obtains the Client-supplied URI, but it is RECOMMENDED that a Printer be registered as an entry in a directory service. End Users and programs can then interrogate the directory, searching for Printers. Appendix D defines a generic schema for Printer object entries in the directory service and

describes how the entry acts as a bridge to the actual IPP Printer.

The entry in the directory that represents the IPP Printer includes the possibly many URIs for that Printer as values in one of its attributes.

When a Client submits a Job Creation request to the Printer, the Printer validates the request and creates a new Job object. The Printer assigns the new Job a numeric identifier that is stored in the "job-id" Job attribute and a URI that is stored in the "job-uri"

Job attribute. Both the numeric identifier and URI can then be used by Clients as the target for subsequent Job operations; the numeric identifier is preferred. The Printer generates the Job numeric identifier and URI based on its configured security policy and the URI used by the Client in the Job Creation request.

For example, consider a Printer that supports both a communication channel secured by the use of TLS (using HTTP over TLS with an "https" schemed URI) and another open communication channel that is not secured with TLS (using a simple "http" schemed URI). If a Client submits a Job using the secure URI, the Printer assigns the new Job a secure URI as well. If a Client were to submit a Job using the open-channel URI, the Printer might assign the new Job an

open-channel URI. Clients SHOULD use the "printer-uri" and "job-id"

attributes to target a Job to avoid any ambiguity about the security of the communication channel.

In addition, the Printer also populates the Job’s "job-printer-uri"

attribute. This is a reference back to the Printer that created the Job. If a Client only has access to a Job’s "job-uri" identifier, the Client can query the Job’s "job-printer-uri" attribute in order

to determine which Printer created the Job. If the Printer supports more than one URI, the Printer picks the one URI supplied by the Client when creating the Job to build the value for and to populate the Job’s "job-printer-uri" attribute.

In addition to identifiers, IPP objects have names -- "printer-name"

for Printers and "job-name" for Jobs. An object name is not guaranteed to be unique across all instances of all objects. A Printer’s name is chosen and set by an Administrator through some mechanism outside the scope of this document. A Job’s name can be chosen and supplied by the Client submitting the Job. If the Client does not supply a Job name, the Printer generates a name for the new Job. In all cases, the name only has local meaning.

To summarize:

o Each Printer is identified by one or more URIs. The Printer’s "printer-uri-supported" attribute contains the URI(s).

o The Printer’s "uri-security-supported" attribute identifies the communication channel security protocols that have been configured for the various Printer URIs (e.g., ’tls’ or ’none’).

o The Printer’s "uri-authentication-supported" attribute identifies the authentication mechanisms that have been configured for the various Printer URIs (e.g., ’digest’, ’none’, etc.).

o Each Job is identified by a numeric identifier, which is a 32-bit positive integer. The Job’s "job-id" attribute contains the Job ID. The Job ID is only unique within the context of the Printer that created the Job.

o Each Job is also identified by a URI. The Job’s "job-uri"

attribute contains the URI, although its use by Clients is DEPRECATED.

o Each Job has a "job-printer-uri" attribute, which contains the URI of the Printer that was used to create the Job. This attribute is used to determine the Printer that created a Job when given only the URI for the Job. This linkage is necessary to determine the languages, charsets, and operations that are supported on that Job (the basis for such support comes from the creating Printer).

o Each Printer has a name, which is not necessarily unique. The Administrator chooses and sets this name through some mechanism outside the scope of this IPP/1.1 document. The Printer’s "printer-name" attribute contains the name.

o Each Job has a name, which is not necessarily unique. The Client optionally supplies this name in the Job Creation request. If the Client does not supply this name, the Printer generates a name for the Job. The Job’s "job-name" attribute contains the name.