├── .DS_Store
├── CandidateScenariosList.md
├── README.md
├── draft-bertocci-identity-in-browser-00.html
└── src
├── .DS_Store
├── documenthistory.md
├── draft-bertocci-identity-in-browser-00.xml
├── main.md
├── mainmatter.md
├── references.md
├── scenarios.md
└── scenarios
├── .DS_Store
├── OIDC_RPSignOnFormPost.md
└── SCENARIOTEMPLATE.md
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDBrowserUseCases/docs/bf89bf55f600fc9962136191be3222edef54a780/.DS_Store
--------------------------------------------------------------------------------
/CandidateScenariosList.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "[]{#_rsg8k1ef0cpn .anchor}Atomic scenarios for identity in the
3 | browser flows"
4 | ---
5 |
6 | This document captures the list of scenarios we believe should be
7 | described as part of this effort. Please refer to the corresponding
8 | issue entries for assignment and reference to individual scenario
9 | documents.
10 |
11 | # Sign in
12 |
13 | ## Simple redirect sign in with 1 RP - OIDC implicit+form post
14 |
15 | Web application RP1 offers sign in/sign up functionality for users of
16 | identity provider IP1, using OpenID Connect implicit flow and form_post.
17 | Ignoring how IP1 auths the user, apart from the fact that successful
18 | auth results in a cookie in IP1 domain. Notable: the IDToken might not
19 | contain user profile info, accessible via userinfo call from the server
20 | (no user agent access) in case of hybrid variant.
21 |
22 | [[\[Sign In\] Simple redirect sign in with 1 RP using OIDC implicit+form
23 | post · Issue \#4 · IDBrowserUseCases/docs
24 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/4)
25 |
26 | ## Simple redirect sign in with 1 RP - OIDC code flow
27 |
28 | Web application RP1 offers sign in/sign up functionality for users of
29 | identity provider IP1, using OpenID Connect code flow. Ignoring how IP1
30 | auths the user, apart from the fact that successful auth results in a
31 | cookie in IP1 domain. Notable: IDtoken is obtained server side, no user
32 | agent access.
33 |
34 | [[\[Sign In\] Simple redirect sign in with 1 RP with OIDC code flow ·
35 | Issue \#5 · IDBrowserUseCases/docs
36 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/5)
37 |
38 | ## Simple redirect sign in with 1 RP - SAML Web SSO (redirect, post)
39 |
40 | Web application RP1 offers sign in/sign up functionality for users of
41 | identity provider IP1, using SAML. Ignoring how IP1 auths the user,
42 | apart from the fact that successful auth results in a cookie in IP1
43 | domain. Notable: the SAML assertion might be fully encrypted, hence
44 | opaque to the user agent..
45 |
46 | [[\[Sign In\] Simple redirect sign in with 1 RP - SAML Web SSO
47 | (redirect, post) · Issue \#6 · IDBrowserUseCases/docs
48 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/6)
49 |
50 | ## Simple redirect sign in with 1 RP - SAML Web SSO (artifact)
51 |
52 | \[to the SAML people: do we need to document this?\]
53 |
54 | [[\[Sign In\] Simple redirect sign in with 1 RP - SAML Web SSO
55 | (artifact) · Issue \#7 · IDBrowserUseCases/docs
56 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/7)
57 |
58 | ## Simple redirect sign in with 1 RP - WS-Federation
59 |
60 | \[to the MS people: do you still have many apps in the wild using
61 | WS-Fed?\]
62 |
63 | [[\[Sign In\] Simple redirect sign in with 1 RP - WS-Federation · Issue
64 | \#8 · IDBrowserUseCases/docs
65 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/8)
66 |
67 | ## IDP initiated sign in
68 |
69 | The details of the flow vary depending on protocol (OIDC has an extra
70 | full redirect round trip while SAML is effectively just one x-site
71 | navigation). But typically a user with a currently authenticated session
72 | (which likely maybe was established via SSO itself) is presented with a
73 | portal-like page with links to applications they can access. Navigating
74 | to one of those applications kicks off the IDP initiated SSO flow that
75 | ultimately delivers a SSO token to the RP application and the user is,
76 | from their perspective anyway, signed in seamlessly. I don't think
77 | IDP-init uses browser features any more or differently than the SP-init
78 | variants (1st party samesite none/lax cookies and various things that
79 | look like link decoration). But it doesn't fit the WebID model (last
80 | I've seen of it anyway) where the UX assumes things start on an RP site.
81 |
82 | ## [\[Sign In\] IDP-initiated sign in · Issue \#9 · IDBrowserUseCases/docs (github.com)]{.ul}
83 |
84 | ## Poor man's OAuth2 sign in with 1 RP - "OAuth2 code flow abuse"
85 |
86 | Web application RP1 offers sign in/sign up functionality for users of
87 | identity provider IP1, abusing OAuth2 (eg conducting an OAuth2
88 | authorization code flow, attempting an API call with the resulting
89 | access token and considering the user signed in eg creating a session
90 | cookie if the call succeeds).. Ignoring how IP1 auths the user, apart
91 | from the fact that successful auth results in a cookie in IP1 domain.
92 | Notable: the user agent doesn;t see any user info, all exchanges occur
93 | server side.
94 |
95 | [[\[Sign In\] Quick and Dirty OAuth 2.0 Sign In with 1 RP - "OAuth2 code
96 | flow abuse" · Issue \#10 · IDBrowserUseCases/docs
97 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/10)
98 |
99 | ## Redirect based SSO - User already signed in RP1, need to SSO in RP2 - both RP1 and RP2 trust IP1
100 |
101 | Web application RP1 and RP2 offer sign in/sign up functionality for
102 | users of identity provider IP1, using \[any OpenID Connect flow\| any
103 | SAML flow \| any WS-Fed flow \| any proprietary cookie based auth
104 | scheme\] . The user is already signing in RP1. The user navigates to
105 | RP2, and expects to obtain an authenticated session without any
106 | interactive prompt.\
107 | User agent access to user info depends on the mechanics of the protocol
108 | of choice.
109 |
110 | [[\[Sign In\] Redirect based SSO - User already signed in RP1, need to
111 | SSO in RP2 - both RP1 and RP2 trust IDP1 · Issue \#11 ·
112 | IDBrowserUseCases/docs
113 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/11)
114 |
115 | # Sign out/session management
116 |
117 | ## OpenID Connect RP initiated logout
118 |
119 | [[\[Sign Out / SM\] OpenID Connect RP-initiated logout · Issue \#12 ·
120 | IDBrowserUseCases/docs
121 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/12)
122 |
123 | ## OpenID Connect Frontchannel logout \*\*
124 |
125 | [[\[Sign Out / SM\] OpenID Connect Front-Channel Logout · Issue \#13 ·
126 | IDBrowserUseCases/docs
127 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/13)
128 |
129 | ## OpenID Connect "Session Management" \*\*
130 |
131 | [[\[Sign Out / SM\] OpenID Connect \"Session Management\" · Issue \#14 ·
132 | IDBrowserUseCases/docs
133 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/14)
134 |
135 | ## SAML Single Log Out (SLO) \*\*
136 |
137 | [[\[Sign Out / SM\] SAML Single Log Out (SLO) · Issue \#15 ·
138 | IDBrowserUseCases/docs
139 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/15)
140 |
141 | ## IFrame Based Session Extension \*\*
142 |
143 | Would probably belong to sign in, but it's a session management
144 | technique.
145 |
146 | [[\[Sign Out / SM\] IFrame-based Session Extension · Issue \#16 ·
147 | IDBrowserUseCases/docs
148 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/16)
149 |
150 | # Access Token Acquisition
151 |
152 | ## OAuth2 Code Flow
153 |
154 | Classic OAuth2 flow meant to get an access token on the app backend,
155 | that does NOT result in a RP session (but will create/leverage a AS/OP
156 | session).
157 |
158 | [[\[AT\] OAuth 2.0 Code Flow · Issue \#17 · IDBrowserUseCases/docs
159 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/17)
160 |
161 | ## OAuth2 SPA sign in/access token retrieval via code+PKCE
162 |
163 | [[\[AT\] OAuth 2.0 SPA sign in/access token retrieval via code+PKCE ·
164 | Issue \#18 · IDBrowserUseCases/docs
165 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/18)
166 |
167 | ## OAuth2 SPA sign in/access token retrieval via implicit flow, fragment
168 |
169 | [[\[AT\] OAuth 2.0 SPA sign in/access token retrieval via implicit flow,
170 | fragment · Issue \#19 · IDBrowserUseCases/docs
171 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/19)
172 |
173 | ## OAuth2 SPA background token renewal (iframe)\*\*
174 |
175 | \[Code \| implicit\] + prompt=none in an iFrame.
176 |
177 | [[\[AT\] OAuth 2.0 SPA background token renewal (iframe) · Issue \#20 ·
178 | IDBrowserUseCases/docs
179 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/20)
180 |
181 | ## OAuth2 SPA background token renewal (refresh token)
182 |
183 | Obtaining an access token via local code+PKCE, refresh token.
184 |
185 | [[\[AT\] OAuth 2.0 SPA background token renewal (refresh token) · Issue
186 | \#21 · IDBrowserUseCases/docs
187 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/21)
188 |
189 | ## OAuth2 JS bearer token usage
190 |
191 | Classic API call with an AT (shouldn\'t have issues, but mentioned out
192 | of exhaustiveness).
193 |
194 | [[\[AT\] OAuth 2.0 JS bearer token usage · Issue \#22 ·
195 | IDBrowserUseCases/docs
196 | (github.com)]{.ul}](https://github.com/IDBrowserUseCases/docs/issues/22)
197 |
198 | #
199 |
200 | # IP1 marks device with cookie to flag it as "trusted"
201 |
202 | #
203 |
204 | # Authentication Methods:
205 |
206 | - ## Password
207 |
208 | - ## FIDO
209 |
210 | - ## QR code
211 |
212 | - ## Push to app
213 |
214 | - ## OTP via SMS to phone number
215 |
216 | - ## OTP via Email to email address
217 |
218 | - ## TOTP
219 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Browser-Dependent Identity Use Cases
2 |
3 | This repo is meant as working space for members of the identity protocols community to collaborate on documenting the ways in which identity protocols (modern and otherwise) rely on web browser features to achieve classic identity scenarios, use cases and functionality.
4 | For more details please refer to [this document](https://datatracker.ietf.org/doc/html/draft-bertocci-identity-in-browser-00).
--------------------------------------------------------------------------------
/draft-bertocci-identity-in-browser-00.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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.
1217 | 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.
1218 | 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.¶
1226 | This Internet-Draft is submitted in full conformance with the
1227 | provisions of BCP 78 and BCP 79.¶
1228 |
1229 | Internet-Drafts are working documents of the Internet Engineering Task
1230 | Force (IETF). Note that other groups may also distribute working
1231 | documents as Internet-Drafts. The list of current Internet-Drafts is
1232 | at https://datatracker.ietf.org/drafts/current/.¶
1233 |
1234 | Internet-Drafts are draft documents valid for a maximum of six months
1235 | and may be updated, replaced, or obsoleted by other documents at any
1236 | time. It is inappropriate to use Internet-Drafts as reference
1237 | material or to cite them other than as "work in progress."¶
1238 |
1239 | This Internet-Draft will expire on 26 July 2021.¶
1248 | Copyright (c) 2021 IETF Trust and the persons identified as the
1249 | document authors. All rights reserved.¶
1250 |
1251 | This document is subject to BCP 78 and the IETF Trust's Legal
1252 | Provisions Relating to IETF Documents
1253 | (https://trustee.ietf.org/license-info) in effect on the date of
1254 | publication of this document. Please review these documents
1255 | carefully, as they describe your rights and restrictions with
1256 | respect to this document. Code Components extracted from this
1257 | document must include Simplified BSD License text as described in
1258 | Section 4.e of the Trust Legal Provisions and are provided without
1259 | warranty as described in the Simplified BSD License.¶
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.
1363 | 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.
1364 | 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 in identity transactions, without relying on the general purpose artifacts on which current identity protocols depend on.
1365 | 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.
1366 | 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.
1367 | 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.¶
This document considers in scope scenarios and use cases for which all the following requirements apply:
1374 | - must be in common use, represent a common practice, a behavior of products in widespread adoption, etc.
1375 | - can be from any mainstream identity and authorization protocol specification, regardless of standard bodies affiliation: e.g. OAuth, OpenID Connect, SAML, etc.
1376 | - 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.
1377 | - can involve, but isn't limited to: establishing a user session, obtaining credentials and intermediate artifacts (e.g. OAuth2 authorization codes).¶
1378 |
The following is considered out of scope:
1379 | - any scenario or protocol not currently in mainstream use, regardless of standardization status.
1380 | - any scenario not using a web broweser in any capacity.
1381 | - 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.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
1392 | "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
1393 | document are to be interpreted as described in BCP 14 [RFC2119][RFC8174]
1394 | when, and only when, they appear in all capitals, as shown here.¶
Before submitting feedback and contributions, please familiarize yourself with our current issues list and review the working
1403 | group home page. If you're
1404 | new to this, you may also want to read the Tao of the
1405 | IETF.¶
1406 |
Be aware that all contributions to the specification fall under the "NOTE WELL"
1407 | terms outlined here.¶
1408 |
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.
1409 | This work originated in the IETF working group for OAuth, however we hope to gather contributions from the entire identity community, regardless of affiliation.
1410 | Most of the work will happen on https://github.com/IDBrowserUseCases/docs, a GitHub repository meant to facilitate contributions from the community as summarized below.¶
Each scenario is captured in a document following the template described in Section 4.
1417 | You can find all contributed scenarios in docs/src/scenarios.
1418 | If you want to contribute a new scenario:
1419 | 1. Please read the preamble in this section and ensure that you meet all requirements
1420 | 2. Verify that your scenario isn't already captured in any of the documents in docs/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.
1421 | 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
1422 | 4. Edit your local copy by filing the appropriate sections of the template, see Section 4 for details.
1423 | 5. Once you are ready, please submit a PR to add the new doc/reflect doc updates to the scenarios folder
1424 | 6. Monitor the mailing list for discussions and requests for clarification¶
All submissions will be discussed on the mailing list, possibly undergoing revisions according to the feedback. Once rough consensus is reached, the scenario will be included in this informational document.¶
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.
1443 | Here's a quick description of each template section. For more details, please refer to the scenarios already captured.¶
1444 |
1445 |
1446 |
Scenario Name
1447 | Each scenario document opens with a concise description of the scenario.¶
1448 |
1449 |
1450 |
Contributor
1451 | This section captures the individual(s) contributing this scenario document and their affiliation.¶
1452 |
1453 |
1454 |
Protocol
1455 | 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.
1456 | 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.¶
1457 |
1458 |
1459 |
Browser Features Required
1460 | This section provides a quick reference of the browser features that play a role in the correct execution of the scenario.
1461 | Examples include 1st and 3rd party cookies, redirects with link decoration, form posts, access to local storage, iFrames, JavaScript, and so on.¶
1462 |
1463 |
1464 |
Intended User Experience
1465 | Description of the intended user experience, with particular attention on the desired outcomes (eg no visible prompt in SSO scenarios)¶
1466 |
1467 |
1468 |
Description Of The Flow
1469 | Description of the flow, including entities coming into play, begin state, end state, and sequence diagram when possible.¶
1470 |
1471 |
1472 |
Privacy Considerations
1473 | 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).¶
1474 |
1475 |
1476 |
Target Audience
1477 | 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.¶
1478 |
1479 |
1480 |
Adoption
1481 | If known or easy to assess, this session enumerates notable products, industries, vendors that rely on the scenario as described.¶
1482 |
1483 |
1484 |
Miscellaneous
1485 | Anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.¶
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..¶
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.¶
An ID token does transit thru the browser, however
1599 | 1. It's not meant for the browser. Format might change. It might be encrypted.
1600 | 2. It might or might not contain profile user attributes¶
todo: delete all the ones that don't apply, add anything not listed
1666 | - 1st party Cookie
1667 | - 3rd party cookies
1668 | - Redirect with link decoration
1669 | - Form post
1670 | - Local Storage
1671 | - IFrames
1672 | - JavaScript¶
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).¶
This document has no security considerations. Readers should refer to the security considerations of the specifications references by each of the individual use cases.¶
1763 | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
1764 |
1765 |
[RFC8174]
1766 |
1767 | Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
1794 |
1802 |
1803 |
1804 |
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDBrowserUseCases/docs/bf89bf55f600fc9962136191be3222edef54a780/src/.DS_Store
--------------------------------------------------------------------------------
/src/documenthistory.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDBrowserUseCases/docs/bf89bf55f600fc9962136191be3222edef54a780/src/documenthistory.md
--------------------------------------------------------------------------------
/src/draft-bertocci-identity-in-browser-00.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Identity Use Cases in Browser Catalog
7 | auth0.com
8 | vittorio@auth0.com
9 |
10 | Verizon Media
11 | gffletch@aol.com
12 |
13 |
14 | Security
15 | Web Authorization Protocol
16 | security
17 | oauth2
18 | openid connect
19 | SAML
20 |
21 |
22 | 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.
23 | 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.
24 | 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.
25 |
26 |
27 |
28 |
29 |
30 |
31 | Overview
32 | 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.
33 | 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.
34 | 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 in identity transactions, without relying on the general purpose artifacts on which current identity protocols depend on.
35 | 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.
36 | 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.
37 | 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 .
38 |
39 | Scope
40 | This document considers in scope scenarios and use cases for which all the following requirements apply:
41 | - must be in common use, represent a common practice, a behavior of products in widespread adoption, etc.
42 | - can be from any mainstream identity and authorization protocol specification, regardless of standard bodies affiliation: e.g. OAuth, OpenID Connect, SAML, etc.
43 | - 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.
44 | - can involve, but isn't limited to: establishing a user session, obtaining credentials and intermediate artifacts (e.g. OAuth2 authorization codes).
45 | The following is considered out of scope:
46 | - any scenario or protocol not currently in mainstream use, regardless of standardization status.
47 | - any scenario not using a web broweser in any capacity.
48 | - 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.
49 |
50 |
51 |
52 | Conventions and Definitions
53 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
54 | "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
55 | document are to be interpreted as described in BCP 14
56 | when, and only when, they appear in all capitals, as shown here.
57 |
58 |
59 | Contribution Process
60 | Before submitting feedback and contributions, please familiarize yourself with our current issues list and review the working
61 | group home page. If you're
62 | new to this, you may also want to read the Tao of the
63 | IETF.
64 | Be aware that all contributions to the specification fall under the "NOTE WELL"
65 | terms outlined here.
66 | 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.
67 | This work originated in the IETF working group for OAuth, however we hope to gather contributions from the entire identity community, regardless of affiliation.
68 | Most of the work will happen on https://github.com/IDBrowserUseCases/docs, a GitHub repository meant to facilitate contributions from the community as summarized below.
69 |
70 | Contributing Scenarios
71 | Each scenario is captured in a document following the template described in .
72 | You can find all contributed scenarios in docs/src/scenarios.
73 | If you want to contribute a new scenario:
74 | 1. Please read the preamble in this section and ensure that you meet all requirements
75 | 2. Verify that your scenario isn't already captured in any of the documents in docs/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.
76 | 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
77 | 4. Edit your local copy by filing the appropriate sections of the template, see for details.
78 | 5. Once you are ready, please submit a PR to add the new doc/reflect doc updates to the scenarios folder
79 | 6. Monitor the mailing list for discussions and requests for clarification
80 |
81 |
82 | Discussing Scenarios Details and Inclusion
83 | All submissions will be discussed on the mailing list, possibly undergoing revisions according to the feedback. Once rough consensus is reached, the scenario will be included in this informational document.
84 |
85 |
86 |
87 | The Use Case Template
88 | 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.
89 | Here's a quick description of each template section. For more details, please refer to the scenarios already captured.
90 |
91 |
92 |
Scenario Name
93 | Each scenario document opens with a concise description of the scenario.
94 |
95 |
Contributor
96 | This section captures the individual(s) contributing this scenario document and their affiliation.
97 |
98 |
Protocol
99 | 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.
100 | 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.
101 |
102 |
Browser Features Required
103 | This section provides a quick reference of the browser features that play a role in the correct execution of the scenario.
104 | Examples include 1st and 3rd party cookies, redirects with link decoration, form posts, access to local storage, iFrames, JavaScript, and so on.
105 |
106 |
Intended User Experience
107 | Description of the intended user experience, with particular attention on the desired outcomes (eg no visible prompt in SSO scenarios)
108 |
109 |
Description Of The Flow
110 | Description of the flow, including entities coming into play, begin state, end state, and sequence diagram when possible.
111 |
112 |
Privacy Considerations
113 | 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).
114 |
115 |
Target Audience
116 | 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.
117 |
118 |
Adoption
119 | If known or easy to assess, this session enumerates notable products, industries, vendors that rely on the scenario as described.
120 |
121 |
Miscellaneous
122 | Anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.
123 |
124 |
125 |
126 |
127 | Scenarios
128 |
129 | OpenID Connect Redirect Based Sign in via Form POST
130 | 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..
131 |
132 | Summary
133 |
134 | Contributor
135 |
136 |
137 |
Name: Vittorio Bertocci
138 |
139 |
Organization: Auth0 Inc
140 |
141 |
Email: vittorio@auth0.com
142 |
143 |
144 |
145 |
146 | Protocol
147 |
148 |
149 |
Name: OpenID Connect
150 |
151 |
Grant/flow (if applicable): Implicit flow with form post
152 |
153 |
Reference: see the (OpenID Connect Implicit flow)[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].
154 |
155 |
156 |
157 |
158 | Browser Features Required
159 | Per legs of the flow:
160 | RP1->IP1
161 | - 1st party cookie (RP1 saves nonce)
162 | - Redirect
163 | - Decorated links
164 | - 1st party cookie (IP1 saves its session cookie upon successful authentication)
165 | IP1->RP1
166 | - Form post
167 | - 1st party cookie (nonce carrying cookie)
168 | - Javascript (autopost)
169 |
170 | Target Audience
171 | This patters applies to every audience, across the board
172 |
173 |
174 |
175 | Adoption
176 | TODO Enumeration of products, industries, vendors that rely on this scenario as described.
177 |
178 |
179 |
180 | Description Of The Flow
181 | TODO long form description of the flow, including start state, end state, and sequence diagram when possible
182 |
183 |
184 | Intended User Experience
185 | 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.
186 |
187 |
188 | Privacy Considerations
189 | An ID token does transit thru the browser, however
190 | 1. It’s not meant for the browser. Format might change. It might be encrypted.
191 | 2. It might or might not contain profile user attributes
192 |
193 |
194 | Miscellaneous
195 | TODO anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.
196 |
197 |
198 |
199 | TODO Scenario Title
200 | TODO Brief description of the scenario. This is the template source.
201 |
202 | Summary
203 |
204 | Contributor
205 |
206 |
207 |
Name: TODO
208 |
209 |
Organization: TODO
210 |
211 |
Email: TODO
212 |
213 |
214 |
215 |
216 | Protocol
217 |
218 |
219 |
Name: TODO SAML|OIDC|OAUTH2|Other(specify)
220 |
221 |
Grant/flow (if applicable): TODO eg. Implicit|Hybrid|AuthCode|SAMLArtifact|etc
222 |
223 |
Reference: TODO aa https://linktospecandsection
224 |
225 |
226 |
227 |
228 | Browser Features Required
229 | todo: delete all the ones that don't apply, add anything not listed
230 | - 1st party Cookie
231 | - 3rd party cookies
232 | - Redirect with link decoration
233 | - Form post
234 | - Local Storage
235 | - IFrames
236 | - JavaScript
237 |
238 | Target Audience
239 | todo: delete all the ones that don't apply, add anything not listed
240 | - B2C
241 | - B2E
242 | - B2B
243 | - G2C
244 |
245 |
246 |
247 | Adoption
248 | TODO Enumeration of products, industries, vendors that rely on this scenario as described.
249 |
250 |
251 |
252 | Description Of The Flow
253 | TODO long form description of the flow, including start state, end state, and sequence diagram when possible
254 |
255 |
256 | Intended User Experience
257 | TODO long form description of the intended user experience, with particular attention on the desired outcomes (eg no visible prompt in SSO scenarios)
258 |
259 |
260 | Privacy Considerations
261 | 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).
262 |
263 |
264 | Miscellaneous
265 | TODO anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.
266 |
267 |
268 |
269 |
270 | Acknowledgements
271 |
272 |
273 | IANA Considerations
274 | This draft includes no request to IANA.
275 |
276 |
277 | Security Considerations
278 | This document has no security considerations. Readers should refer to the security considerations of the specifications references by each of the individual use cases.
279 |
280 |
281 |
282 |
283 |
284 | Informative References
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
--------------------------------------------------------------------------------
/src/main.md:
--------------------------------------------------------------------------------
1 | %%%
2 | title = "Identity Use Cases in Browser Catalog"
3 | abbrev = "browser-use-cases"
4 | ipr = "trust200902"
5 | area = "Security"
6 | workgroup = "Web Authorization Protocol"
7 | keyword = ["security", "oauth2", "openid connect", "SAML"]
8 | category = "info"
9 | date = 2021-01-22T11:30:00Z
10 |
11 | [seriesInfo]
12 | name = "Internet-Draft"
13 | value = "draft-bertocci-identity-in-browser-00"
14 | stream = "IETF"
15 | status = "info"
16 |
17 | [[author]]
18 | initials="V."
19 | surname="Bertocci"
20 | fullname="Vittorio Bertocci"
21 | organization="auth0.com"
22 | [author.address]
23 | email = "vittorio@auth0.com"
24 |
25 | [[author]]
26 | initials="G."
27 | surname="Fletcher"
28 | fullname="George Fletcher"
29 | organization="Verizon Media"
30 | [author.address]
31 | email = "gffletch@aol.com"
32 |
33 |
34 | %%%
35 |
36 | .# Abstract
37 |
38 | 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.
39 | 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.
40 | 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.
41 |
42 | {mainmatter}
43 |
44 | {{mainmatter.md}}
45 | {{references.md}}
46 |
47 | {backmatter}
48 | {{documenthistory.md}}
--------------------------------------------------------------------------------
/src/mainmatter.md:
--------------------------------------------------------------------------------
1 | # Overview {#overview}
2 |
3 | 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.
4 | 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.
5 | 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 in identity transactions, without relying on the general purpose artifacts on which current identity protocols depend on.
6 | 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.
7 | 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.
8 | 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 (#contributionprocess).
9 |
10 | ## Scope
11 |
12 | This document considers in scope scenarios and use cases for which all the following requirements apply:
13 | - must be in common use, represent a common practice, a behavior of products in widespread adoption, etc.
14 | - can be from any mainstream identity and authorization protocol specification, regardless of standard bodies affiliation: e.g. OAuth, OpenID Connect, SAML, etc.
15 | - 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.
16 | - can involve, but isn't limited to: establishing a user session, obtaining credentials and intermediate artifacts (e.g. OAuth2 authorization codes).
17 |
18 | The following is considered out of scope:
19 | - any scenario or protocol not currently in mainstream use, regardless of standardization status.
20 | - any scenario not using a web broweser in any capacity.
21 | - 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.
22 |
23 |
24 | # Conventions and Definitions
25 |
26 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
27 | "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
28 | document are to be interpreted as described in BCP 14 [@RFC2119] [@RFC8174]
29 | when, and only when, they appear in all capitals, as shown here.
30 |
31 | # Contribution Process {#contributionprocess}
32 |
33 | Before submitting feedback and contributions, please familiarize yourself with our current issues list and review the [working
34 | group home page](https://datatracker.ietf.org/wg/oauth/documents/). If you're
35 | new to this, you may also want to read the [Tao of the
36 | IETF](https://www.ietf.org/tao.html).
37 |
38 | Be aware that all contributions to the specification fall under the "NOTE WELL"
39 | terms outlined [here](https://www.ietf.org/about/note-well/).
40 |
41 | 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.
42 | 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.
43 | Most of the work will happen on https://github.com/IDBrowserUseCases/docs, a GitHub repository meant to facilitate contributions from the community as summarized below.
44 |
45 | ## Contributing Scenarios
46 |
47 | Each scenario is captured in a document following the template described in (#usecasestemplate).
48 | You can find all contributed scenarios in [docs/src/scenarios](https://github.com/IDBrowserUseCases/docs/tree/main/src/).
49 | If you want to contribute a new scenario:
50 | 1. Please read the preamble in this section and ensure that you meet all requirements
51 | 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).
52 | 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
53 | 4. Edit your local copy by filing the appropriate sections of the template, see (#usecasestemplate) for details.
54 | 5. Once you are ready, please submit a PR to add the new doc/reflect doc updates to the scenarios folder
55 | 6. Monitor the [mailing list](https://www.ietf.org/mailman/listinfo/oauth) for discussions and requests for clarification
56 |
57 |
58 | ## Discussing Scenarios Details and Inclusion
59 |
60 | 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.
61 |
62 | # The Use Case Template {#usecasestemplate}
63 |
64 | 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.
65 | Here's a quick description of each template section. For more details, please refer to the scenarios already captured.
66 |
67 | - Scenario Name
68 | Each scenario document opens with a concise description of the scenario.
69 |
70 | - Contributor
71 | This section captures the individual(s) contributing this scenario document and their affiliation.
72 |
73 | - Protocol
74 | 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.
75 | 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.
76 |
77 | - Browser Features Required
78 | This section provides a quick reference of the browser features that play a role in the correct execution of the scenario.
79 | Examples include 1st and 3rd party cookies, redirects with link decoration, form posts, access to local storage, iFrames, JavaScript, and so on.
80 |
81 | - Intended User Experience
82 | Description of the intended user experience, with particular attention on the desired outcomes (eg no visible prompt in SSO scenarios)
83 |
84 | - Description Of The Flow
85 | Description of the flow, including entities coming into play, begin state, end state, and sequence diagram when possible.
86 |
87 | - Privacy Considerations
88 | 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).
89 |
90 | - Target Audience
91 | 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.
92 |
93 | - Adoption
94 | If known or easy to assess, this session enumerates notable products, industries, vendors that rely on the scenario as described.
95 |
96 | - Miscellaneous
97 | Anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.
98 |
99 | {{scenarios.md}}
100 |
101 | # Acknowledgements {#Acknowledgements}
102 |
103 |
104 |
105 |
106 | # IANA Considerations {#IANA}
107 |
108 | This draft includes no request to IANA.
109 |
110 |
111 | # Security Considerations {#Security}
112 |
113 | This document has no security considerations. Readers should refer to the security considerations of the specifications references by each of the individual use cases.
--------------------------------------------------------------------------------
/src/references.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDBrowserUseCases/docs/bf89bf55f600fc9962136191be3222edef54a780/src/references.md
--------------------------------------------------------------------------------
/src/scenarios.md:
--------------------------------------------------------------------------------
1 | # Scenarios {#scenarios}
2 |
3 | {{scenarios/OIDC_RPSignOnFormPost.md}}
4 | {{scenarios/SCENARIOTEMPLATE.md}}
5 |
--------------------------------------------------------------------------------
/src/scenarios/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IDBrowserUseCases/docs/bf89bf55f600fc9962136191be3222edef54a780/src/scenarios/.DS_Store
--------------------------------------------------------------------------------
/src/scenarios/OIDC_RPSignOnFormPost.md:
--------------------------------------------------------------------------------
1 | ## OpenID Connect Redirect Based Sign in via Form POST
2 | 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..
3 |
4 | ### Summary
5 |
6 | #### Contributor
7 | - Name: Vittorio Bertocci
8 | - Organization: Auth0 Inc
9 | - Email: vittorio@auth0.com
10 |
11 | #### Protocol
12 | - Name: OpenID Connect
13 | - Grant/flow (if applicable): Implicit flow with form post
14 | - Reference: see the (OpenID Connect Implicit flow)[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].
15 |
16 | #### Browser Features Required
17 | Per legs of the flow:
18 | RP1->IP1
19 | - 1st party cookie (RP1 saves nonce)
20 | - Redirect
21 | - Decorated links
22 | - 1st party cookie (IP1 saves its session cookie upon successful authentication)
23 | IP1->RP1
24 | - Form post
25 | - 1st party cookie (nonce carrying cookie)
26 | - Javascript (autopost)
27 |
28 | ##### Target Audience
29 | This patters applies to every audience, across the board
30 |
31 | #### Adoption
32 | TODO Enumeration of products, industries, vendors that rely on this scenario as described.
33 |
34 | ### Description Of The Flow
35 | TODO long form description of the flow, including start state, end state, and sequence diagram when possible
36 | ### Intended User Experience
37 | 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.
38 |
39 | ### Privacy Considerations
40 | An ID token does transit thru the browser, however
41 | 1. It’s not meant for the browser. Format might change. It might be encrypted.
42 | 2. It might or might not contain profile user attributes
43 | ### Miscellaneous
44 | TODO anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.
--------------------------------------------------------------------------------
/src/scenarios/SCENARIOTEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## TODO Scenario Title
2 | TODO Brief description of the scenario. This is the template source.
3 |
4 | ### Summary
5 |
6 | #### Contributor
7 | - Name: TODO
8 | - Organization: TODO
9 | - Email: TODO
10 |
11 | #### Protocol
12 | - Name: TODO SAML|OIDC|OAUTH2|Other(specify)
13 | - Grant/flow (if applicable): TODO eg. Implicit|Hybrid|AuthCode|SAMLArtifact|etc
14 | - Reference: TODO aa https://linktospecandsection
15 |
16 | #### Browser Features Required
17 | todo: delete all the ones that don't apply, add anything not listed
18 | - 1st party Cookie
19 | - 3rd party cookies
20 | - Redirect with link decoration
21 | - Form post
22 | - Local Storage
23 | - IFrames
24 | - JavaScript
25 |
26 | ##### Target Audience
27 | todo: delete all the ones that don't apply, add anything not listed
28 | - B2C
29 | - B2E
30 | - B2B
31 | - G2C
32 |
33 | #### Adoption
34 | TODO Enumeration of products, industries, vendors that rely on this scenario as described.
35 |
36 | ### Description Of The Flow
37 | TODO long form description of the flow, including start state, end state, and sequence diagram when possible
38 | ### Intended User Experience
39 | TODO long form description of the intended user experience, with particular attention on the desired outcomes (eg no visible prompt in SSO scenarios)
40 | ### Privacy Considerations
41 | 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).
42 | ### Miscellaneous
43 | TODO anything not fitting any of the sections above that is relevant for understanding how the scenario might be affected by browser changes.
--------------------------------------------------------------------------------