Re: [OAUTH-WG] Last Call: <draft-ietf-oauth-device-flow-09.txt> (OAuth 2.0 Device Flow for Browserless and Input Constrained Devices) to Proposed Standard

Naveen Agarwal <na@ohauth.com> Thu, 31 May 2018 07:39 UTC

Return-Path: <nvnagr@gmail.com>
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 E524B126CF9; Thu, 31 May 2018 00:39:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.402
X-Spam-Level:
X-Spam-Status: No, score=-1.402 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1uNVZ_H7aWd1; Thu, 31 May 2018 00:39:02 -0700 (PDT)
Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0789126579; Thu, 31 May 2018 00:39:01 -0700 (PDT)
Received: by mail-wm0-x244.google.com with SMTP id j15-v6so739926wme.0; Thu, 31 May 2018 00:39:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=Wrv15/lU/pM3Ev41iv/guX2IrXNBvSbX+8QZ49Bxcvk=; b=Ype1LDxdpa0mjzIIHrRpXJJniQAAJKBjFIXDCex8imyOI5UeQ9K5MFJATkDrh9u7hk AMjo6GyYMVp/4J2b6hjoSXiScG313RgFnC7SUQXyhXUGKjwVpRlPIBlNRhgautiF6tUt wRhaBkpRMtQ7Ol6k07FcbYt51apZyiR5UbBUQX3ztMen2wj6YEiWkNzJ0pHREh+fOmW5 PSeXmkU7e7Kmr4zp+3Gz/bj/7P3k+aTNStS9QyT6oRwiidBStxjQONvcc5vZORyRLrEl whqGg/HdtK+UL9n9eO3cF5yOJOEzfSWJmLY9vJ/D1q2M5qjqSAIp/KbvOc/XU68wj7H9 0xCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=Wrv15/lU/pM3Ev41iv/guX2IrXNBvSbX+8QZ49Bxcvk=; b=OL0+IF+yx6KlAPLqMWMmvnIEJT1X7jlyiEtFSK+n+4XfzOoy9jKGgjI8CUAZezMsKV pBfpbtamuCxU9eqUj0L2muK3s936rElMTzovJgA9MjDVIoeCPNPe5HKfCR9fk28FGE84 RIJbtAZiZKa8lEBkJHVSatADH8rSX+5mmuvz4HBbodtAkMwmmSAcCmJulWIkPPBAFXRi mvLjvsiZ3yK+R5PMKVcexV3xZ2+FvDobmx7gQIKmCP/D6PnSIk0+KWSNIHpk+O7i4XC4 VScucO/cwrWRqw5n5oPj6gQGnlibfwH3qcn8cBqco2STceOyX0gb/p37EaOwGkP1Bd04 e0Hw==
X-Gm-Message-State: ALKqPweqDShU351cGRhoeAmJeGDmJlupDoJLGfDXaDvUinivJ44ttsn1 JoIAcqdBHE6GSd4eupxhvrmIXKMWNSPoKgMuIwLrwQ==
X-Google-Smtp-Source: ADUXVKLL1u+P4zCuGsRIyOh5y6EzebUpARE6Ryca+sJMzu2GvNpimYn9C+CzlH5gjxdrjKWNVbcSr/o6XTHMoM76HDU=
X-Received: by 2002:a1c:7e87:: with SMTP id z129-v6mr3615822wmc.131.1527752339867; Thu, 31 May 2018 00:38:59 -0700 (PDT)
MIME-Version: 1.0
Sender: nvnagr@gmail.com
Received: by 2002:a1c:e712:0:0:0:0:0 with HTTP; Thu, 31 May 2018 00:38:59 -0700 (PDT)
In-Reply-To: <CAAP42hAwPdvNX1Hr=dvPwghQcP_iHvbHvS_aXtKGf1uGfLidSw@mail.gmail.com>
References: <152763243091.27698.7723369435827878398.idtracker@ietfa.amsl.com> <CAEqOSkfwdn-+1zFBgpgk3Mr6HYy-OvKNdVRKZtdP9c6HVHC60Q@mail.gmail.com> <CAAP42hAA8FC8B8bhDdCAg=5TnDjZXr76UiMLNABEG23GRFdeyQ@mail.gmail.com> <CAEqOSkcquQ4GXhhOV30TsOEYSV5fuG_PtO7TFo_pE_zVAJd0zA@mail.gmail.com> <CAAP42hBznvLPe8JLy1HYxFQ2bWxGW5mbpa8hcAv6K8jM3EkQxw@mail.gmail.com> <CA+k3eCQ5xxj4nCUBvQn1QwUEL-ouLiZgean02rFwEjC6dcz9mw@mail.gmail.com> <CAAP42hAwPdvNX1Hr=dvPwghQcP_iHvbHvS_aXtKGf1uGfLidSw@mail.gmail.com>
From: Naveen Agarwal <na@ohauth.com>
Date: Thu, 31 May 2018 00:38:59 -0700
X-Google-Sender-Auth: oACW6G0ArlD-gtgtbbnLTp9-RAw
Message-ID: <CAKtfFtc973xykAjSjqpX3edwoX2M1Ay1m4x69AyV=C-ZArTzmQ@mail.gmail.com>
To: William Denniss <wdenniss=40google.com@dmarc.ietf.org>
Cc: Brian Campbell <bcampbell@pingidentity.com>, ietf@ietf.org, draft-ietf-oauth-device-flow@ietf.org, oauth <oauth@ietf.org>, oauth-chairs@ietf.org
Content-Type: multipart/alternative; boundary="00000000000085d183056d7b8f89"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/-A8IvFDImvdM4TbhH55rRe9plDw>
Subject: Re: [OAUTH-WG] Last Call: <draft-ietf-oauth-device-flow-09.txt> (OAuth 2.0 Device Flow for Browserless and Input Constrained Devices) to Proposed Standard
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.22
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 31 May 2018 07:39:05 -0000

I have a general concern on making the device flow a standard as this
suffers from a number of issues that are quite fatal. At Google we have
limited this flow to be used for very basic/limited scopes as phishing
concerns are very real. Also the protocol suffers from clients polling
(overloading the servers) and server having to keep a large amount of
state. I think this protocol is close to its useful end of life (at Google)
and we are working on alternatives with stronger client attestation that
also mitigate other issues. Separately, we have seen a lot more
abusers/hackers use OAuth in various forms to attack users.

I don't know how many IDPs have implemented this flow but by making it a
standard, a lot more people will implement it and I'm sure they will not be
able to avoid the issues that are highlighted.

Sorry, I know it has taken a lot of work to get the document to his stage
so my comments may feel too harsh and I apologize. Please do know that I
have been quite involved in this protocol from the beginning and we have
gone through a lot of pain and have been discussing shutting this down
fairly regularly. So this is to start the conversation if we think this
protocol is for the future or just something from our past that we want to
see it documented as a standard.

Thanks

Naveen


On Wed, May 30, 2018 at 5:06 PM, William Denniss <
wdenniss=40google.com@dmarc.ietf.org> wrote:

>
> On Wed, May 30, 2018 at 3:48 PM, Brian Campbell <
> bcampbell@pingidentity.com> wrote:
>
>> I realize this is somewhat pedantic but I don't think referencing 4.1.2.1
>> works given how RFC 6749 set things up. Rather I believe that the device
>> flow needs to define and register "access_denied" as a valid token
>> endpoint
>> response error code (it's not a token endpoint response error per RFC 6749
>> sec 5.2 nor has it been registered https://www.iana.org/assignmen
>> ts/oauth-parameters/oauth-parameters.xhtml#extensions-error
>> <https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#extensions-error>
>> ).  Also
>> invalid_grant is a a token endpoint response error from RFC 6749 sec 5.2
>> so
>> that reference is needed and appropriate. RFC 6749 Sec 4.1.2.1
>> <https://tools.ietf.org/html/rfc6749#section-4.1.2> defines errors
>> returned
>> from the authorization endpoint. But the device flow errors are from the
>> token endpoint.
>>
>>
> Yes, that's true. It's still the token endpoint, so 5.2 does in fact
> apply, it's just we're mixing in authorization-style actions which were not
> previously considered/used for that endpoint.
>
> Do you have any proposed text to resolve this?
>
>
>>
>> On Wed, May 30, 2018 at 4:27 PM, William Denniss <
>> wdenniss=40google.com@dmarc.ietf.org> wrote:
>>
>> > Hi Andrew,
>> >
>> > On Wed, May 30, 2018 at 3:18 PM, Andrew Sciberras <
>> > andrewsciberras@pingidentity.com> wrote:
>> >
>> >> Hi William
>> >>
>> >> You are right that the document explicitly indicates which error codes
>> >> may be returned. However I think it's ambiguous as to which error
>> within
>> >> Section 5.2 of RFC6749 would apply in the scenario of a user not
>> granting
>> >> access.
>> >>
>> >> I think that this ambiguity is highlighted further by the Google
>> >> implementation (https://developers.google.com
>> >> /identity/protocols/OAuth2ForDevices#step-6-handle-
>> >> responses-to-polling-requests
>> >> <https://developers..google.com/identity/protocols/OAuth2For
>> Devices#step-6-handle-responses-to-polling-requests>)
>> >> not adhering to the explicit statement of the document and electing to
>> use
>> >> a (more appropriate) error code that exists outside of section 5.2..
>> >>
>> >>
>> >
>> > Oh, I see what you mean now. Yes, given this is an authorization
>> request,
>> > not a token request, the errors from Section 4.1.2.1
>> > <https://tools.ietf.org/html/rfc6749#section-4.1.2> are more relevant.
>> >
>> > I believe it was the authors intention to reference that set of errors,
>> so
>> > I will plan to update the doc to reference 4..1.2.1 instead.  Good
>> catch!
>> > Thank you.
>> >
>> >
>> >>
>> >> On Thu, May 31, 2018 at 8:06 AM, William Denniss <wdenniss@google.com>
>> >> wrote:
>> >>
>> >>> Hi Andrew,
>> >>>
>> >>> On Wed, May 30, 2018 at 2:35 PM, Andrew Sciberras <
>> andrewsciberras@pingidentity.com> wrote:
>> >>>
>> >>> Hello
>> >>>>
>> >>>>
>> >>>> Do we feel that the document should be more specific in addressing
>> how
>> >>>> the authorization service should respond to a device access token
>> request
>> >>>> when the user has refused to grant access to the device?
>> >>>>
>> >>>>
>> >>>> The document currently indicates in section 3.5 that a success
>> response
>> >>>> defined in section 5.1 of RFC6749, an error as defined in section
>> 5.2 of
>> >>>> RFC6749 (this includes invalid_request, invalid_client,
>> invalid_grant,
>> >>>> unauthorized_client, unsupported_grant_type, and invalid_scope), or
>> a new
>> >>>> device flow error code (authorization_pending, slow_down, and
>> >>>> expired_token) may be returned in a response to a device token
>> request
>>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>