Return-Path: <torsten@lodderstedt.net>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix)
 with ESMTP id 24AD121F859B for <oauth@ietfa.amsl.com>;
 Sat, 26 Jan 2013 10:33:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.248
X-Spam-Level: 
X-Spam-Status: No, score=-2.248 tagged_above=-999 required=5
 tests=[BAYES_00=-2.599, HELO_EQ_DE=0.35, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com
 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vE9HfWwD4KqC for
 <oauth@ietfa.amsl.com>; Sat, 26 Jan 2013 10:33:07 -0800 (PST)
Received: from smtprelay05.ispgateway.de (smtprelay05.ispgateway.de
 [80.67.31.99]) by ietfa.amsl.com (Postfix) with ESMTP id 219CE21F858A for
 <oauth@ietf.org>; Sat, 26 Jan 2013 10:33:07 -0800 (PST)
Received: from [91.2.78.85] (helo=[192.168.71.36]) by
 smtprelay05.ispgateway.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68)
 (envelope-from <torsten@lodderstedt.net>) id 1TzAYq-0003rM-SD;
 Sat, 26 Jan 2013 19:33:04 +0100
Message-ID: <51042160.5020908@lodderstedt.net>
Date: Sat, 26 Jan 2013 19:33:04 +0100
From: Torsten Lodderstedt <torsten@lodderstedt.net>
User-Agent: Mozilla/5.0 (Windows NT 6.2;
 rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: Anthony Nadalin <tonynad@microsoft.com>
References: <a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com>
In-Reply-To: <a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com>
Content-Type: multipart/alternative;
 boundary="------------080208090605020503050009"
X-Df-Sender: dG9yc3RlbkBsb2RkZXJzdGVkdC1vbmxpbmUuZGU=
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] draft-ietf-oauth-revocation-04 Review
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>,
 <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>,
 <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 26 Jan 2013 18:33:10 -0000

This is a multi-part message in MIME format.
--------------080208090605020503050009
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi Tony,

thanks for your review comments.

*** @Justin: thanks for jumping in. ***

I would like to recap the results of the discussion so far and propose 
some changes.

Am 24.01.2013 00:54, schrieb Anthony Nadalin:
>
> Review:
>
> 1.Since not stated I assume that the Revocation Endpoint can exist on 
> a different server from the Authorization server (or is it assumed 
> that they are 1), if so how is the Revocation Endpoint found?
>

Having read your arguments I realize the current text is a bit specific 
about the means to obtain the endpoint location (as it does not mention 
other means).

current text:

The location of
    the token revocation endpoint can be found in the authorization
    server's documentation.  The token endpoint URI MAY include a query
    component.


proposal:

The means to obtain the location of the revocation endpoint is out of scope of this specification.

There is a range of options. The client could, for example,
automatically discover this information (along with other server
andpoints and properties). Alternatively, the client developer could
also get to know the endpoint location from the server's documentation.

Note: As this endpoint is handling security sensible credentials, such information must be obtained from a trustworthy resource.


> 2.Any token type that is supported can be revoked, including refresh 
> token ?
>

The draft currently explicitly states support for access and refresh 
tokens. Do you want the draft to be weaker at this point and to allow 
for the revocation of any token?

> 3.Why does one have to send the token, can't this just be an auth_code ?
>

The draft is intended to support token revocation. I agree with Justin. 
Authz codes are short duration and one time use. I don't see a need to 
revoke them. I also don't see the need to use them to revoke the 
respective access token indirectly.

> 4.Says CORS SHOULD be supported, I think a MAY be better here since a 
> site may have issues supporting CORS
>

I'm fine with MAY since I tend to see CORS as an optional feature. What 
do others think?

> 5.Does not say but is the revocation to be immediate upon the return 
> of the request ?
>

The client must assume the revocation is immediate upon the return of 
the request. I could explicitly express this in the text

current text

In the next step, the authorization server invalidates the token.
    The client MUST NOT use this token again after revocation.


Proposal

   In the next step, the authorization server invalidates the token. The
client must assume the revocation is immediate upon the return of the
request. The client MUST NOT use the token again after the revocation.


> 6.Does the revocation of the access token also revoke the refresh 
> token (if it was provided) ? Or is this a revocation policy decision ?
>

As described by Justin, there are two use cases:

- if the token passed to the request is a refresh token and the server 
supports access token revocation, the server SHOULD also revoke them.
- if the token passed to the request is an access token, the server may 
decide to revoke the respective refresh token as well.

I think every client must be prepared to cope with "sudden" invalidation 
of any token type. So having different server policies with respect to 
related tokens shouldn't create interop problems.

What changes would you expect?

> 7.Section 2 says "the client MUST NOT use this token again", well that 
> seems odd, not sure this should be here as the client could try to use 
> it gain, there is no need to put support in client to prevent this.
>

The client should discard the token immediately after revocation.

regards.
Torsten.
>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth


--------------080208090605020503050009
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Tony,<br>
    <br>
    thanks for your review comments.<br>
    <br>
    *** @Justin: thanks for jumping in. ***<br>
    <br>
    I would like to recap the results of the discussion so far and
    propose some changes.<br>
    <br>
    <div class="moz-cite-prefix">Am 24.01.2013 00:54, schrieb Anthony
      Nadalin:<br>
    </div>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1985691605;
	mso-list-type:hybrid;
	mso-list-template-ids:1164451882 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Review:<o:p></o:p></p>
        <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">1.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Since not stated I assume that
          the Revocation Endpoint can exist on a different server from
          the Authorization server (or is it assumed that they are 1),
          if so how is the Revocation Endpoint found?</p>
      </div>
    </blockquote>
    <br>
    Having read your arguments I realize the current text is a bit
    specific about the means to obtain the endpoint location (as it does
    not mention other means). <br>
    <br>
    current text:<br>
    <br>
    <pre class="newpage" style="font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before: always; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">The location of
   the token revocation endpoint can be found in the authorization
   server's documentation.  The token endpoint URI MAY include a query
   component.</pre>
    <br>
    proposal:<br>
    <pre>The means to obtain the location of the revocation endpoint is out of scope of this specification.

There is a range of options. The client could, for example, 
automatically discover this information (along with other server 
andpoints and properties). Alternatively, the client developer could 
also get to know the endpoint location from the server's documentation. </pre>
    <pre>
Note: As this endpoint is handling security sensible credentials, such information must be obtained from a trustworthy resource.</pre>
    <br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">2.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Any token type that is supported
          can be revoked, including refresh token ?</p>
      </div>
    </blockquote>
    <br>
    The draft currently explicitly states support for access and refresh
    tokens. Do you want the draft to be weaker at this point and to
    allow for the revocation of any token?<br>
    <br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">3.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Why does one have to send the
          token, can&#8217;t this just be an auth_code ?</p>
      </div>
    </blockquote>
    <br>
    The draft is intended to support token revocation. I agree with
    Justin. Authz codes are short duration and one time use. I don't see
    a need to revoke them. I also don't see the need to use them to
    revoke the respective access token indirectly. <br>
    <br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">4.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Says CORS SHOULD be supported, I
          think a MAY be better here since a site may have issues
          supporting CORS</p>
      </div>
    </blockquote>
    <br>
    I'm fine with MAY since I tend to see CORS as an optional feature.
    What do others think?<br>
    <br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">5.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Does not say but is the
          revocation to be immediate upon the return of the request ?</p>
      </div>
    </blockquote>
    <br>
    The client must assume the revocation is immediate upon the return
    of the request. I could explicitly express this in the text<br>
    <br>
    current text<br>
    <br>
    <pre class="newpage" style="font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before: always; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">In the next step, the authorization server invalidates the token.
   The client MUST NOT use this token again after revocation.</pre>
    <br>
    Proposal<br>
    <pre>
&nbsp; In the next step, the authorization server invalidates the token. The 
client must assume the revocation is immediate upon the return of the 
request. The client MUST NOT use the token again after the revocation.</pre>
    <br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">6.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Does the revocation of the
          access token also revoke the refresh token (if it was
          provided) ? Or is this a revocation policy decision ?</p>
      </div>
    </blockquote>
    <br>
    As described by Justin, there are two use cases:<br>
    <br>
    - if the token passed to the request is a refresh token and the
    server supports access token revocation, the server SHOULD also
    revoke them.<br>
    - if the token passed to the request is an access token, the server
    may decide to revoke the respective refresh token as well.<br>
    <br>
    I think every client must be prepared to cope with "sudden"
    invalidation of any token type. So having different server policies
    with respect to related tokens shouldn't create interop problems.<br>
    <br>
    What changes would you expect?<br>
    <br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
            style="mso-list:Ignore">7.<span style="font:7.0pt
              &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </span></span><!--[endif]-->Section 2 says &#8220;the client MUST
          NOT use this token again&#8221;, well that seems odd, not sure this
          should be here as the client could try to use it gain, there
          is no need to put support in client to prevent this.</p>
      </div>
    </blockquote>
    <br>
    The client should discard the token immediately after revocation.<br>
    <br>
    regards.<br>
    Torsten.<br>
    <blockquote
cite="mid:a7b55ec383284cee83ff199f0057acbb@BY2PR03MB041.namprd03.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo2"><o:p></o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
OAuth mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OAuth@ietf.org">OAuth@ietf.org</a>
<a class="moz-txt-link-freetext" href="https://www.ietf.org/mailman/listinfo/oauth">https://www.ietf.org/mailman/listinfo/oauth</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------080208090605020503050009--
