Internet DRAFT - draft-bertocci-identity-in-browser
draft-bertocci-identity-in-browser
Web Authorization Protocol V. Bertocci
Internet-Draft auth0.com
Intended status: Informational G. Fletcher
Expires: 26 July 2021 Verizon Media
22 January 2021
Identity Use Cases in Browser Catalog
draft-bertocci-identity-in-browser-00
Abstract
This informational document aims to gather in a single place all the
most important scenarios in which identity protocols in current use
leverage web browser features to achieve their goals and deliver
their intended user experience. The purpose of compiling this
scenario collection is to make it easier for the identity community
to engage with the browser vendors, and in particular to preserve (or
enhance) user experience and expressive power of the identity
protocols in mainstream use as browsers introduce new privacy
preserving restrictions and new identity tailored features. By
providing a single artifact, listing scenarios in a consistent
format, we hope to anchor the conversation on concrete outcomes and
impact of changes on end users, developers, providers and in general
everyone contributing to identity in the industry.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 26 July 2021.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
Bertocci & Fletcher Expires 26 July 2021 [Page 1]
Internet-Draft browser-use-cases January 2021
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4
3. Contribution Process . . . . . . . . . . . . . . . . . . . . 4
3.1. Contributing Scenarios . . . . . . . . . . . . . . . . . 4
3.2. Discussing Scenarios Details and Inclusion . . . . . . . 5
4. The Use Case Template . . . . . . . . . . . . . . . . . . . . 5
5. Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. OpenID Connect Redirect Based Sign in via Form POST . . . 6
5.1.1. Summary . . . . . . . . . . . . . . . . . . . . . . . 6
5.1.2. Description Of The Flow . . . . . . . . . . . . . . . 7
5.1.3. Intended User Experience . . . . . . . . . . . . . . 8
5.1.4. Privacy Considerations . . . . . . . . . . . . . . . 8
5.1.5. Miscellaneous . . . . . . . . . . . . . . . . . . . . 8
5.2. TODO Scenario Title . . . . . . . . . . . . . . . . . . . 8
5.2.1. Summary . . . . . . . . . . . . . . . . . . . . . . . 8
5.2.2. Description Of The Flow . . . . . . . . . . . . . . . 9
5.2.3. Intended User Experience . . . . . . . . . . . . . . 9
5.2.4. Privacy Considerations . . . . . . . . . . . . . . . 9
5.2.5. Miscellaneous . . . . . . . . . . . . . . . . . . . . 9
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10
9. Informative References . . . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Overview
As attempts to profile and track user activities on the web
intensify, leading to increasingly egregious privacy violations,
browser vendors introduce new constraints meant to thwart known
tracking techniques. As they do so, however, they often end up
breaking legitimate use cases as well- with identity protocols
features such as single sign on, token renewals and the like being
disptoportionally affected. Conscious of those effects and committed
to preserve user experience, browser vendors are working on dedicated
identity API that aim at preserving and enhancing the user experience
Bertocci & Fletcher Expires 26 July 2021 [Page 2]
Internet-Draft browser-use-cases January 2021
in identity transactions, without relying on the general purpose
artifacts on which current identity protocols depend on. One key
challenge that is emerging in the process is that browser vendors
tend to design around a limited set of well-known, consumer-only use
cases, classifying most other cases as enterprise use cases hence
solvable by exceptions and local business policies, whereas that is
often not the case (e.g., single sign on is a common requirements
across web properties even for consumer services, such as online
managines form the same publisher) or the expected solutions (e.g.
companies deploying MDM and managing policies on their employees and
contributors machines) are not always viable. Discussions between
browser vendors and identity experts are not always easy, and are
frequently repeated whenever the individuals and initiatives involved
change. This makes progress difficult. This infomational document
is a collection of use cases in which identity protocols depend on
web browser features to perform their intended function. By
gathering the main use cases in a single, shared artifact, and by
describing every use case thru a fixed schema designed to surface the
most salient characteristics germane to the identity-browser features
discussion, we aim to provide a tool to facilitate conversations
between browser vendors and identity experts. This is meant to be a
living document, constantly gathering and discussing scenarios
contribuitions (via dedicated GitHub repository and OAuth working
group mailing list) and periodically incorporating new entries in the
main document. The contribution process is described in Section 3.
1.1. Scope
This document considers in scope scenarios and use cases for which
all the following requirements apply: - must be in common use,
represent a common practice, a behavior of products in widespread
adoption, etc. - can be from any mainstream identity and
authorization protocol specification, regardless of standard bodies
affiliation: e.g. OAuth, OpenID Connect, SAML, etc. - must require
use of browser features (e.g. cookies, redirects, decorated links,
HTTP headers, local storage etc) for at least part of its sequence of
messages. - can involve, but isn't limited to: establishing a user
session, obtaining credentials and intermediate artifacts (e.g.
OAuth2 authorization codes).
The following is considered out of scope: - any scenario or protocol
not currently in mainstream use, regardless of standardization
status. - any scenario not using a web broweser in any capacity. -
proposing new browser behaviors or API, or identity scenarios using
hypothetical new browser capabilities. The goal of this project is
to document what's already in place, to inform discussions about
what's next taking place in forums shared with the browser vendors.
Bertocci & Fletcher Expires 26 July 2021 [Page 3]
Internet-Draft browser-use-cases January 2021
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. Contribution Process
Before submitting feedback and contributions, please familiarize
yourself with our current issues list and review the working group
home page (https://datatracker.ietf.org/wg/oauth/documents/). If
you're new to this, you may also want to read the Tao of the IETF
(https://www.ietf.org/tao.html).
Be aware that all contributions to the specification fall under the
"NOTE WELL" terms outlined here (https://www.ietf.org/about/note-
well/).
This informational draft is meant to be a living document, where new
scenarios and refinement of the current ones will keep being added as
needed. This work originated in the IETF working group for OAuth
(https://datatracker.ietf.org/wg/oauth/documents/), however we hope
to gather contributions from the entire identity community,
regardless of affiliation. Most of the work will happen on
https://github.com/IDBrowserUseCases/docs
(https://github.com/IDBrowserUseCases/docs), a GitHub repository
meant to facilitate contributions from the community as summarized
below.
3.1. Contributing Scenarios
Each scenario is captured in a document following the template
described in Section 4. You can find all contributed scenarios in
docs/src/scenarios
(https://github.com/IDBrowserUseCases/docs/tree/main/src/). If you
want to contribute a new scenario: 1. Please read the preamble in
this section and ensure that you meet all requirements 2. Verify
that your scenario isn't already captured in any of the documents in
docs/src/scenarios
(https://github.com/IDBrowserUseCases/docs/tree/main/src/scenarios).
If it a variant of an already captured scenario, or if you want to
contribute to an existing scenario doc, please consider chiming in on
the OAuth mailing list (https://www.ietf.org/mailman/listinfo/oauth).
3. If your scenario is new, please fork the repo and create a local
copy of SCENARIOTEMPLATE.md, renaming your file to match the format
protocolname_protocolscenario.md 4. Edit your local copy by filing
Bertocci & Fletcher Expires 26 July 2021 [Page 4]
Internet-Draft browser-use-cases January 2021
the appropriate sections of the template, see Section 4 for details.
5. Once you are ready, please submit a PR to add the new doc/reflect
doc updates to the scenarios folder 6. Monitor the mailing list
(https://www.ietf.org/mailman/listinfo/oauth) for discussions and
requests for clarification
3.2. Discussing Scenarios Details and Inclusion
All submissions will be discussed on the mailing list
(https://www.ietf.org/mailman/listinfo/oauth), possibly undergoing
revisions according to the feedback. Once rough consensus is
reached, the scenario will be included in this informational
document.
4. The Use Case Template
We capture all scenarios following a template, with the intent of
providing readers with a consistent way of understanding the scenario
goals, intended user experience, browser feature dependencies,
privacy characteristics and any other consideration that might help
assessing impact of browser feature changes on the scenario. Here's
a quick description of each template section. For more details,
please refer to the scenarios already captured.
* Scenario Name
Each scenario document opens with a concise description of the
scenario.
* Contributor
This section captures the individual(s) contributing this scenario
document and their affiliation.
* Protocol
If the scenario is part of a standard (e.g. SAML, OpenID Connect,
OAuth2, etc), this section provides details such as what standard
document it refers to, and any reference that can be useful to
learn more about the scenario. Examples include indicating
specific use cases described by the standard (grants, flows, etc),
links to articles and presentations describing the scenario in
more detail and so on. Please note that scenarios captured here
do not necessarily need to be formally described in a standard, as
long as they are in common use. A good example would be the use
of cookies for preserving the nonce in OpenID Connect, or the use
of cookies for representing a web app session after a federated
sign in flow (regardless of the specific protocol) took place.
Bertocci & Fletcher Expires 26 July 2021 [Page 5]
Internet-Draft browser-use-cases January 2021
* Browser Features Required
This section provides a quick reference of the browser features
that play a role in the correct execution of the scenario.
Examples include 1st and 3rd party cookies, redirects with link
decoration, form posts, access to local storage, iFrames,
JavaScript, and so on.
* Intended User Experience
Description of the intended user experience, with particular
attention on the desired outcomes (eg no visible prompt in SSO
scenarios)
* Description Of The Flow
Description of the flow, including entities coming into play,
begin state, end state, and sequence diagram when possible.
* Privacy Considerations
Description of privacy characteristics of the scenario, with
particular attention to aspects affecting the browser (eg presence
of browser-readable artifacts carrying user info, use of
global|pairwise|no identifiers, etc).
* Target Audience
This section is meant to indicate whether the scenario is used
prevalently for a particular audience (eg B2C,B2E, B2B, G2C) or if
it can be expected to be relevant for more than one category.
* Adoption
If known or easy to assess, this session enumerates notable
products, industries, vendors that rely on the scenario as
described.
* Miscellaneous
Anything not fitting any of the sections above that is relevant
for understanding how the scenario might be affected by browser
changes.
5. Scenarios
5.1. OpenID Connect Redirect Based Sign in via Form POST
Web application RP1 offers sign in/sign up functionality for users of
identity provider IP1, using OpenID Connect implicit flow and
form_post. Ignoring how IP1 auths the user, apart from the fact that
successful auth results in a cookie in IP1 domain..
5.1.1. Summary
Bertocci & Fletcher Expires 26 July 2021 [Page 6]
Internet-Draft browser-use-cases January 2021
5.1.1.1. Contributor
* Name: Vittorio Bertocci
* Organization: Auth0 Inc
* Email: vittorio@auth0.com
5.1.1.2. Protocol
* Name: OpenID Connect
* Grant/flow (if applicable): Implicit flow with form post
* Reference: see the (OpenID Connect Implicit
flow)[https://openid.net/specs/openid-connect-core-
1_0.html#ImplicitFlowAuth (https://openid.net/specs/openid-
connect-core-1_0.html#ImplicitFlowAuth)] and (OAuth 2.0 Form Post
Response Mode)[https://openid.net/specs/oauth-v2-form-post-
response-mode-1_0.html (https://openid.net/specs/oauth-v2-form-
post-response-mode-1_0.html)].
5.1.1.3. Browser Features Required
Per legs of the flow: RP1->IP1
- 1st party cookie (RP1 saves nonce) - Redirect - Decorated links -
1st party cookie (IP1 saves its session cookie upon successful
authentication)
IP1->RP1 - Form post - 1st party cookie (nonce carrying cookie) -
Javascript (autopost)
5.1.1.3.1. Target Audience
This patters applies to every audience, across the board
5.1.1.4. Adoption
TODO Enumeration of products, industries, vendors that rely on this
scenario as described.
5.1.2. Description Of The Flow
TODO long form description of the flow, including start state, end
state, and sequence diagram when possible
Bertocci & Fletcher Expires 26 July 2021 [Page 7]
Internet-Draft browser-use-cases January 2021
5.1.3. Intended User Experience
User navigates to RP1 without any pre existing session in place.
Once there, either the user clicks on something (protected route,
login button) or the app determines an authentication operation is
immediately required. This causes the browser to be redirected to
IP1, where the user is presented with authentication prompts (details
of the authentication factors/mechanics omitted in this particular
scenario). Upon successful authentication, the browser is redirected
to RP1, and the user is now signed in RP1.
5.1.4. Privacy Considerations
An ID token does transit thru the browser, however 1. It's not meant
for the browser. Format might change. It might be encrypted. 2. It
might or might not contain profile user attributes
5.1.5. Miscellaneous
TODO anything not fitting any of the sections above that is relevant
for understanding how the scenario might be affected by browser
changes.
5.2. TODO Scenario Title
TODO Brief description of the scenario. This is the template source.
5.2.1. Summary
5.2.1.1. Contributor
* Name: TODO
* Organization: TODO
* Email: TODO
5.2.1.2. Protocol
* Name: TODO SAML|OIDC|OAUTH2|Other(specify)
* Grant/flow (if applicable): TODO eg.
Implicit|Hybrid|AuthCode|SAMLArtifact|etc
* Reference: TODO aa https://linktospecandsection
(https://linktospecandsection)
Bertocci & Fletcher Expires 26 July 2021 [Page 8]
Internet-Draft browser-use-cases January 2021
5.2.1.3. Browser Features Required
todo: delete all the ones that don't apply, add anything not listed -
1st party Cookie - 3rd party cookies - Redirect with link decoration
- Form post - Local Storage - IFrames - JavaScript
5.2.1.3.1. Target Audience
todo: delete all the ones that don't apply, add anything not listed -
B2C - B2E - B2B - G2C
5.2.1.4. Adoption
TODO Enumeration of products, industries, vendors that rely on this
scenario as described.
5.2.2. Description Of The Flow
TODO long form description of the flow, including start state, end
state, and sequence diagram when possible
5.2.3. Intended User Experience
TODO long form description of the intended user experience, with
particular attention on the desired outcomes (eg no visible prompt in
SSO scenarios)
5.2.4. Privacy Considerations
TODO long form description of privacy characteristics of the
scenario, with particular attention to aspects affecting the browser
(eg presence of browser-readable artifacts carrying user info, use of
global|pairwise|no identifiers, etc).
5.2.5. Miscellaneous
TODO anything not fitting any of the sections above that is relevant
for understanding how the scenario might be affected by browser
changes.
6. Acknowledgements
7. IANA Considerations
This draft includes no request to IANA.
Bertocci & Fletcher Expires 26 July 2021 [Page 9]
Internet-Draft browser-use-cases January 2021
8. Security Considerations
This document has no security considerations. Readers should refer
to the security considerations of the specifications references by
each of the individual use cases.
9. Informative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
Authors' Addresses
Vittorio Bertocci
auth0.com
Email: vittorio@auth0.com
George Fletcher
Verizon Media
Email: gffletch@aol.com
Bertocci & Fletcher Expires 26 July 2021 [Page 10]