Subject: [OAUTH-WG] Device Flow: Alternative to Polling

From: Hannes Tschofenig <[email-masked]>
Date: Sat, 22 Oct 2016 00:23:11 +0200

Hi all,

the device flow document outlines the case when an OAuth interaction
gets "outsourced" to a separate device in order to allow user
authentication and collecting the consent.

The exchange is described in Section 1 of
https://tools.ietf.org/html/draft-ietf-oauth-device-flow-03.

Here is the step that was raised during the discussions:

      (E) While the end-user authorizes (or denies) the client's request
      (D), the client repeatedly polls the authorization server to find
      out if the end-user completed the end-user authorization step.
      The client includes the verification code and its client
      identifier.

The question was whether we could come up with an alternative to polling
since this step could potentially take some time. Hence, it would be
better if the authorization server has a way to send a message to the
client without polling. Of course, the polling frequency matters and how
quickly one (e.g., user) wants to know about the successful authorization.

So, the first question is whether polling is considered as a problem in
the first place.

If so, then the question is how this could be addressed and (from work
in other areas) there are really only two approaches:

1) We make use of some protocol that keeps the connection open and allow
asynchronous communication. HTTP/2 and Websockets come to mind.

2) The client can be addressed through some push notification mechanism,
such as by running an HTTP server on the device that can then be used by
the authorization server.

Any views about this topic?

Ciao
Hannes

---

From: Aaron Parecki <[email-masked]>
Date: Fri, 21 Oct 2016 15:35:50 -0700

Part of the beauty of the current device flow spec is that it's so simple
to support. Keeping that simplicity is crucial especially for this, since
this flow is used by a variety of devices that often do not have higher
level stacks.

I would love to hear from someone who has experience with large-scale
deployments of this to know whether polling is even a problem in the first
place.

----
Aaron Parecki
aaronparecki.com
@aaronpk <http://twitter.com/aaronpk>

----
Aaron Parecki
aaronparecki.com
@aaronpk <http://twitter.com/aaronpk>

On Fri, Oct 21, 2016 at 3:23 PM, Hannes Tschofenig <
[email-masked]> wrote:

> _______________________________________________
> OAuth mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/oauth
>
>

---

From: William Denniss <[email-masked]>
Date: Fri, 21 Oct 2016 15:50:46 -0700

We've been operating with polling for a while and handle a decent amount of
traffic (the YouTube TV app uses it), the polling gets the job done. The
simplicity of the protocol definitely helps when used on constrained
devices.

I like the idea of adding HTTP/2 based long-poll as an optional
enhancement, especially if we can define it in ways that don't alter the
underlying protocol a whole lot.

---

From: Simon Moffatt <[email-masked]>
Date: Mon, 24 Oct 2016 09:30:49 +0100

I agree, simplicity is key here.

 From a practicality perspective (ForgeRock implemented the AS part of 
the device flow in January), there were some steps to mitigate things 
like potential excessive polling and DoS but they can be easily overcome 
on the AS side of things), but as William says, polling is simple and 
solves the use case.

The option of running an HTTP stack on the device, is maybe overkill for 
some deployments though, especially with lower powered devices and the 
management overhead.

Websocket style notifications are gaining popularity for other web 
access management use cases like session destruction notifications and 
session attribute changes so that seems a viable option.

On 21/10/16 23:50, William Denniss wrote:
> We've been operating with polling for a while and handle a decent 
> amount of traffic (the YouTube TV app uses it), the polling gets the 
> job done. The simplicity of the protocol definitely helps when used on 
> constrained devices.
>
> enhancement, especially if we can define it in ways that don't alter 
> the underlying protocol a whole lot.
>
> On Fri, Oct 21, 2016 at 3:35 PM, Aaron Parecki <[email-masked] 
> <mailto:[email-masked]>> wrote:
>
>     Part of the beauty of the current device flow spec is that it's so
>     simple to support. Keeping that simplicity is crucial especially
>     for this, since this flow is used by a variety of devices that
>     often do not have higher level stacks.
>
>     I would love to hear from someone who has experience with
>     large-scale deployments of this to know whether polling is even a
>     problem in the first place.
>
>     ----
>     Aaron Parecki
>     aaronparecki.com <http://aaronparecki.com/>
>     aaronparecki.com <http://aaronparecki.com>
>     On Fri, Oct 21, 2016 at 3:23 PM, Hannes Tschofenig
>     <[email-masked] <mailto:[email-masked]>> wrote:
>
>         Hi all,
>
>         https://tools.ietf.org/html/draft-ietf-oauth-device-flow-03
>         <https://tools.ietf.org/html/draft-ietf-oauth-device-flow-03>.
>
>         [email-masked] <mailto:[email-masked]>
>         <https://www.ietf.org/mailman/listinfo/oauth>
>
>
>
>     [email-masked] <mailto:[email-masked]>
>     <https://www.ietf.org/mailman/listinfo/oauth>
>
>
>
>

-- 
ForgeRock <http://www.forgerock.com/> 	*Simon Moffatt*
OpenAM - Technical Product Manager  |  ForgeRock
*tel* +44 (0) 7903 347 240  | *e* [email-masked] 
<mailto:[email-masked]>
*skype* simon.moffatt  | *web* www.forgerock.com 
<http://www.forgerock.com/>  | *twitter* @simonmoffatt

Summits <https://summits.forgerock.com/>