Hi Aaron,

We don't issue refresh_tokens for any implicit flow. So if a browser based app were to use the code flow, we would issue a refresh_token. Restricting which clients can receive refresh_tokens (or based on some other policy) is not a significant addition. However, for most browser apps, we have a module the relying party can deploy that handles all the code flow semantics on the server side and then the SPA can just request a new access_token from the server side module. The module also handles sessions management.

Personally, I'm not crazy about refresh_tokens being present in browsers. Browsers should just re-authorize if they can't use a server-side component for tokens management. OIDC provides a "prompt=none" mechanism that allows the browser app to request a new token in a hidden iframe. OAuth2 doesn't describe this flow. Note that full authentications of users should NOT happen in iframes due to click-jacking attacks.

Thanks,
George

On 11/20/18 3:56 PM, Aaron Parecki wrote:
Hi George,

Reading this description, am I understanding correctly that you *always* return a refresh token to every client? Are there any situations in which a refresh token would not be returned? Specifically I'm wondering about how this applies to browser-based apps using the authorization code flow and refresh tokens.

----
Aaron Parecki
aaronparecki.com <http://aaronparecki.com>



On Tue, Nov 20, 2018 at 12:38 PM George Fletcher <gffletch=40aol....@dmarc.ietf.org <mailto:40aol....@dmarc.ietf.org>> wrote:

    Hi Torsten,

    This is the model I much prefer. By default all refresh_tokens are
    bound to the user's authenticated session. When the authentication
    session is terminated, the refresh_tokens are invalidated. If a
    client wants to get a refresh_token that is NOT bound to an
    authentication session, then it much explicitly request the
    "offline_access" scope which then provides a consent interaction
    with the user which allows the user to know that this client wants
    to access their resources even when the user isn't logged in
    (present). This also provides the AS with the ability to control
    which clients are authorized to request "offline_access" and hence
    restrict that capability to know/approved clients.

    We've implemented this module in two different Authorization Servers.

    Thanks,
    George

    On 11/15/18 9:28 AM, Torsten Lodderstedt wrote:
    Hi all,

    I‘m preparing a new section on Refresh Token best practices for the 
Security BCP. I‘m wondering whether anyone has implemented a binding of the 
refresh token‘s expiration/revocation with the state of the session the refresh 
token was issued in/for. So do you revoke refresh tokens when the user logs out 
from the AS or the session terminated for other reasons?

    kinds regards,
    Torsten.


    _______________________________________________
    OAuth mailing list
    OAuth@ietf.org <mailto:OAuth@ietf.org>
    https://www.ietf.org/mailman/listinfo/oauth

    _______________________________________________
    OAuth mailing list
    OAuth@ietf.org <mailto: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