attachment

<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Based on discussions in the conference call, here is a summary of the proposed additions to IPP Scan:<div><br></div><div><br></div><div>8.1.1 destination-accesses (1setOf collection | no-value)</div><div><br></div><div>The "destination-accesses" operation attribute allows the Client to provide authentication information for each of the "destination-uris" values. If provided, this attribute MUST have the same cardinality (have the same number of values) as the "destinations-uris" Job Template attribute. The ith value of the "destination-accesses" attribute corresponds to the ith value of the "destination-uris" attribute.</div><div><br></div><div>Each collection value contains zero of more member attribute which provide the authentication information required for the corresponding destination. A Client MAY also provide the no-value out-of-band value for a given destination to specify that no authentication information is supplied.</div><div><br></div><div>Printers specify which member attributes are supported using the "destination-accesses-supported" Printer attribute (section 8.4.1). &nbsp;Printers specify which member attributes are required for a given destination in the "destination-mandatory-access-attributes" member attribute (section 8.4.2.7) of the "destination-uri-ready" Printer attribute (section 8.4.2).</div><div><br></div><div><br></div><div>8.1.1.1&nbsp;<span style="font-family: Menlo-Regular;">access-oauth-token (1setOf octetString(MAX))</span></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><span style="font-family: Menlo-Regular;">The "access-oauth-token" member attribute provides a Base64-encoded OAuth Access Token as defined in The OAuth 2.0 Authorization Framework [RFC6749]. When the size of the access token exceeds 1023 octets (the maximum size of an octetString value), the Client separates the token into multiple octetString values and sends the result as an ordered set to the Printer. The Printer reassembles each octetString to produce the complete access token value to be used with the destination.</span></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><span style="font-family: Menlo-Regular;">Printers that support this attribute MUST list 'access-oauth-token' in the "destination-accesses-supported" Printer attribute (section 8.4.1).</span></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><span style="font-family: Menlo-Regular;">8.1.1.2</span><span style="font-family: Menlo-Regular;">&nbsp;access-password (text(MAX))</span></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><span style="font-family: Menlo-Regular;">The "access-password" member attribute provides a password string, typically for HTTP Basic or Digest authentication [RFC2617]. Clients MUST provide the password using the UTF-8 encoding [STD63] in Unicode Normalization Form C as required for Network Unicode [RFC5198]. Printers MUST convert the password, as needed, to whatever encoding is required by the destination URI.</span></div><div><div><br></div></div><div><div><span style="font-family: Menlo-Regular;">Printers that support this attribute MUST list 'access-password' in the "destination-accesses-supported" Printer attribute (section 8.4.1).</span></div></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><font face="Menlo-Regular"><br></font></div><div><font face="Menlo-Regular">8.1.1.3</font><span style="font-family: Menlo-Regular;">&nbsp;access-pin (text(MAX))</span></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><div><span style="font-family: Menlo-Regular;">The "access-pin" member attribute provides a Personal Identification Number string. Clients MUST restrict the characters to the US ASCII digits '0' (code 48) through '9' (code 57) and Printers MUST reject values containing characters other than the digits '0' through '9'.</span></div><div><br></div><div><span style="font-family: Menlo-Regular;">Printers that support this attribute MUST list 'access-pin' in the "destination-accesses-supported" Printer attribute (section 8.4.1).</span></div></div><div><span style="font-family: Menlo-Regular;"><br></span></div><div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;">8.1.1.4 access-user-name (text(MAX))</div><div style="font-family: Menlo-Regular;"><div><br></div><div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;">The "access-user-name" member attribute provides a user name string, typically for HTTP Basic or Digest authentication [RFC2617]. Clients MUST provide the user name using the UTF-8 encoding [STD63] in Unicode Normalization Form C as required for Network Unicode [RFC5198]. Printers MUST convert the user name, as needed, to whatever encoding is required by the destination URI.</span></div><div style="font-family: Menlo;"><br></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;">Printers that support this attribute MUST list 'access-user-name' in the "destination-accesses-supported" Printer attribute (section 8.4.1).</span></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;"><br></span></div></div><div><div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;"><br></span></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;">[Editor's note: I am really not happy with the following, and would be happy to punt X.509 certificate passing for now since we don't have a good plan for management of private keys associated with x.509 certs...]</span></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;"><br></span></div></div></div><div>8.1.1.5 access-x509-certificate (1setOf octetString(MAX))</div><div><br></div></div><div style="font-family: Menlo-Regular;"><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;">The "access-x509-certificate" member attribute provides a PEM-encoded X.509 certificate identifying the User or Client that is making the request. &nbsp;When the size of the certificate exceeds 1023 octets (the maximum size of an octetString value), the Client separates the certificate into multiple octetString values and sends the result as an ordered set to the Printer. The Printer reassembles each octetString to produce the complete X.509 certificate</span><span style="font-family: Menlo-Regular;">&nbsp;</span><span style="font-family: Menlo-Regular;">to be used with the destination</span><span style="font-family: Menlo-Regular;">.</span></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;"><br></span></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;">Printers that support this attribute MUST list 'access-x509-certificate' in the "destination-accesses-supported" Printer attribute (section 8.4.1) and MUST provide a method for loading the corresponding private key that is used for authenticating the holder of the X.509 certificate.</span></div><div style="font-family: Menlo;"><span style="font-family: Menlo-Regular;"><br></span></div><div style="font-family: Menlo;"><br></div></div><div style="font-family: Menlo-Regular;">8.4.1 &nbsp;destination-accesses-supported (1setOf type2 keyword)</div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;">The "destination-accesses-supported" Printer attribute lists the supported member attributes of the "destination-accesses" operation attribute (section 8.1.1). &nbsp;This attribute MUST be supported if the "destination-accesses" attribute is supported.</div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;">8.4.2.7 destination-mandatory-access-attributes (1setOf type2 keyword)</div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;">The "destination-mandatory-access-atributes" member attribute lists the member attributes that MUST be supplied in a Job Creation request when using this destination.</div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;">... plus the corresponding registrations in section 14 and normative references in section 15.1 (add RFC2617 and RFC6749)</div><div style="font-family: Menlo-Regular;"><br></div><div style="font-family: Menlo-Regular;"><br></div><div><div>On Jun 16, 2014, at 11:24 AM, Ira McDonald &lt;<a href="mailto:blueroofmusic@gmail.com">blueroofmusic@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div><div><div><div><div>Hi Mike,<br><br></div>Agreed.<br><br></div>It shouldn't be an opaque blob - the "access-type" should be sufficiently fine-grained<br></div>to allow explicit multi-factor scenarios.<br>


<br></div>And Pete and I want to state that binary data MUST be sent as straight "octetString"&nbsp; <br>and and text data (e.g., password) MUST be sent as UTF-8 (with no trailing '\0').<br><br></div><div>The only downside (potentially pretty large for explicit multi-factor "access-type"<br>


</div><div>values is rapid loss of interoperability when vendors roll their own name values<br></div><div>for combinations we didn't anticipate.<br><br></div><div>Cheers,<br></div><div>- Ira<br><br></div><div class="gmail_extra">


<br clear="all"><div><div dir="ltr">Ira McDonald (Musician / Software Architect)<br>Co-Chair - TCG Trusted Mobility Solutions WG<br>Chair - Linux Foundation Open Printing WG<br>Secretary - IEEE-ISTO Printer Working Group<br>


Co-Chair - IEEE-ISTO PWG Internet Printing Protocol WG<br>IETF Designated Expert - IPP &amp; Printer MIB<br>Blue Roof Music / High North Inc<br><a style="color:rgb(51,51,255)" href="http://sites.google.com/site/blueroofmusic" target="_blank">http://sites.google.com/site/blueroofmusic</a><br>


<a style="color:rgb(102,0,204)" href="http://sites.google.com/site/highnorthinc" target="_blank">http://sites.google.com/site/highnorthinc</a><br>mailto: <a href="mailto:blueroofmusic@gmail.com" target="_blank">blueroofmusic@gmail.com</a><br>


Winter&nbsp; 579 Park Place&nbsp; Saline, MI&nbsp; 48176&nbsp; <a href="tel:734-944-0094" value="+17349440094" target="_blank">734-944-0094</a><br>Summer&nbsp; PO Box 221&nbsp; Grand Marais, MI 49839&nbsp; <a href="tel:906-494-2434" value="+19064942434" target="_blank">906-494-2434</a><br>

<br><div style="display:inline"></div><div style="display:inline"></div><div style="display:inline"></div>
<div></div><div></div><div></div><div></div></div></div>
<br><br><div class="gmail_quote">On Mon, Jun 16, 2014 at 11:19 AM, Michael Sweet <span dir="ltr">&lt;<a href="mailto:msweet@apple.com" target="_blank">msweet@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div style="word-wrap:break-word">Ira,<div><br><div><div><div>On Jun 16, 2014, at 11:02 AM, Ira McDonald &lt;<a href="mailto:blueroofmusic@gmail.com" target="_blank">blueroofmusic@gmail.com</a>&gt; wrote:</div><blockquote type="cite">


<div dir="ltr"><div><div><div>Hi Mike,<br><br></div>The reason for some sparse syntax was to support Pete's use case (over the phone)<br></div>of wanting two or more credentials for the *same* destination (i.e., multi-factor auth is<br>




</div>in use).&nbsp; This is a critically important real-world use case.<br></div></blockquote><div><br></div></div>Then we need to define it and its requirements.</div><div><div><br><blockquote type="cite">


<div dir="ltr"><div>With the straight parallel 1setOf approach, there has to be a nested collection to hold<br>the auth-type, auth-data, etc. for each credential for one destination - ugly and fragile.<br></div>


</div></blockquote><div><br></div></div>If the auth type defines multiple credentials then those can be provided via separate data values in the 1setOf, or using type-specific member attributes. &nbsp;In short, we need to define what the attributes contain, not provide a BLOB holder that will become an interoperability nightmare.</div>


<div><div><br><blockquote type="cite"><div dir="ltr">Pete and I particularly liked the use of the simple (1setOf octetString(MAX)) with auto<br>concatenation to support large credentials (X.509 certificates, etc.).<br>


</div></blockquote></div><div><br></div></div>That is indeed a simple solution, but let's not make it an opaque blob.</div><div><br><div>
<span style="border-collapse: separate; font-family: 'Andale Mono'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span style="border-collapse: separate; font-family: 'Andale Mono'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="word-wrap:break-word">


_________________________________________________________<br>Michael Sweet, Senior Printing System&nbsp;Engineer, PWG Chair</div></span></span>
</div>
<br></div></div></blockquote></div><br></div></div>
</blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; font-family: 'Andale Mono'; border-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Andale Mono'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">_________________________________________________________<br>Michael Sweet, Senior Printing System&nbsp;Engineer, PWG Chair</div></span></span>
</div>
<br></div></body></html>