I know we add scopes based on the Authorization Server determining that the
Resource Owner is also a "Paying Customer". (Well using OIDC so we KNOW
they are a paying customer.)

--
-jim
Jim Willeke

On Fri, Jul 7, 2017 at 9:03 PM, William Denniss <wdenn...@google.com> wrote:

>
> On Fri, Jul 7, 2017 at 1:50 PM, Sergey Beryozkin <sberyoz...@gmail.com>
> wrote:
>
>> Hi
>> On 07/07/17 18:56, William Denniss wrote:
>>
>>> What you describe is incremental auth.
>>>
>>> Thanks... FYI, I thought of doing some work around it after browsing
>> through the Google docs; the line about the "asking to approve the purchase
>> of the kitchen sink at the authentication time is a death of the modern
>> web" (or something similar that I read on this list) was even more
>> convincing :-)
>>
>
> I hear ya :-)
>
> We ended up requiring that apps *don't* ask for the kitchen sink upfront
> in our API policies https://developers.google.com/
> terms/api-services-user-data-policy#request-relevant-permissions .
> Definitely makes for a bad user experience if users don't know why they are
> being asked to approve the request's scope.
>
>
>
>>
>> Aside: Do you return the "scope" in the token response as required when
>>> the scope in the response is not identical to the request (§ 5.1 <
>>> https://tools.ietf.org/html/rfc6749#section-5.1>, parameter: scope)?
>>>
>>> Yes, the token service is doing it by default for all the returned
>> access tokens
>>
>> My only question is: does the client expect this?  The spec talks about
>>> the authorization server *reducing* scope in a few places (in § 3.3 <
>>> https://tools.ietf.org/html/rfc6749#section-3.3>, "The authorization
>>> server MAY fully or partially ignore the scope requested by the client" and
>>> § 10.3 <https://tools.ietf.org/html/rfc6749#section-10.3> "The
>>> authorization server SHOULD take the client identity into account when
>>> choosing how to honor the requested scope and MAY issue an access token
>>> with less rights than requested.").  It never talks about *increasing*
>>> scope (other than it can't be done during refresh).
>>>
>>> So I think some normative language around the potential to increase the
>>> scope of the request for confidential clients (in either the way you
>>> describe, or the way I described in the draft) is warranted.
>>>
>>> Open question: should we require an indication from the client if they
>>> *want* the scope increase? That's what include_granted_scopes was designed
>>> to do. To allow clients to specify if this is behavior they desire.
>>>
>> Right, I see how a proposed "include_granted_scopes" can make it non
>> ambiguous
>>
>>>
>>>
>>> The more innovative part of the spec I think is the public (native app)
>>> client incremental auth – as native apps cannot use the methods you
>>> discuss, or the ones Google has supported for a while for confidential
>>> clients. That said, if we write this – I think we may as well formally
>>> document approaches for confidential clients too.
>>>
>>>
>> thanks, Sergey
>>
>>>
>>> On Fri, Jul 7, 2017 at 9:24 AM, Sergey Beryozkin <sberyoz...@gmail.com
>>> <mailto:sberyoz...@gmail.com>> wrote:
>>>
>>>     Hi
>>>
>>>     Re the confidential client: let me explain please how we
>>>     experimented with this feature when the code flow is used.
>>>
>>>     1. Client requests a scope 'a' for a given User, it gets approved by
>>>     the user, the clients gets a code and exchanges it for a token.
>>>
>>>     2. At some later stage Client requests a scope 'b' for the same user
>>>     and if an access token for a given Client + User combination exists
>>>     and the incremental authorization is supported (we use a different
>>>     term for now) than the service finds out from this token that 'a'
>>>     has already been approved and offers a consent screen where a user
>>>     sees 'a' being selected and needs to approve 'b'.
>>>
>>>     3. User approves 'b'. The client gets a new code back and exchanges
>>>     it for a new token which now has "a" and "b".
>>>
>>>     At this point a client has 2 tokens, one with the "a" scope and
>>>     another with the "a" and "b" scopes and the assumption was that the
>>>     client would itself remove the now redundant token with the scope
>>>     "a" only.
>>>
>>>     I've just updated the code for the service itself do it on the
>>>     client's behalf, optionally remove the scope "a" token so that the
>>>     client can simply replace a reference to its scope "a" token with
>>>     the new one (scopes "a" and "b") it will get after exchanging a code
>>>     grant.
>>>
>>>     Is it an incremental authorization or something else completely :-) ?
>>>
>>>     One obvious difference, apart from the lower level implementation
>>>     details, is that it is not a client which requests to include the
>>>     already authorized scopes but the service does it itself if the
>>>     configuration allowing for it is enabled
>>>
>>>     Thanks, Sergey
>>>
>>>
>>>
>>>
>>>
>>>
>>>     On 05/07/17 18:17, William Denniss wrote:
>>>
>>>         Earlier this week I submitted the following I-D:
>>>         https://tools.ietf.org/html/draft-wdenniss-oauth-incremental
>>> -auth <https://tools.ietf.org/html/draft-wdenniss-oauth-incremental-auth
>>> >
>>>
>>>         The topic is incremental authentication (or incremental auth for
>>>         short).  Incremental auth is used to enable clients to request
>>>         just the scopes they need when they need them – rather than all
>>>         upfront – while still only a maintaining a single authorization
>>>         grant.
>>>
>>>         The I-D details two techniques used at Google, one that has been
>>>         used for a while in confidential clients, and one that we
>>>         launched recently as a new solution to deliver incremental auth
>>>         for public clients.
>>>
>>>         I look forward to discussing this proposal with the working
>>>         group. I plan to present this draft at IETF99, hope you can be
>>>         there or watching the livestream!
>>>
>>>         I plan to ask for a call for adoption after that presentation.
>>>         If you're interested in this topic I'd encourage you to read the
>>>         draft (it's fairly concise!).
>>>
>>>         Best,
>>>         William
>>>
>>>
>>>
>>>         _______________________________________________
>>>         OAuth mailing list
>>>         OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>         https://www.ietf.org/mailman/listinfo/oauth
>>>         <https://www.ietf.org/mailman/listinfo/oauth>
>>>
>>>
>>>     _______________________________________________
>>>     OAuth mailing list
>>>     OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>     https://www.ietf.org/mailman/listinfo/oauth
>>>     <https://www.ietf.org/mailman/listinfo/oauth>
>>>
>>>
>>>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to