You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -54,23 +54,21 @@ and engineers implementing cross-device flows.
54
54
{mainmatter}
55
55
56
56
# Introduction {#Introduction}
57
-
Cross-device flows allow a user to start a flow on one device (e.g., a SmartTV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to perform an action such as authenticating or granting authorization, before passing control back to the first device, or to access the service that was running on the first device on the second device.
57
+
Protocol flows that span multiple end-user devices are in widespread use today. These flows are often referred to as cross-device flows. A common example is a user that uses their mobile phone to scan a QR code from their SmartTV, giving an app on the TV access to their video streaming service. Besides QR codes, other mechanisms are often used such as PIN codes that the user has to enter on one of the devices, or push notifications to a mobile app that the user has to approve.
58
58
59
-
These flows typically involve using a mobile phone to scan a QR code
60
-
or enter a user code displayed on the first device (e.g., Smart
61
-
TV, Kiosk, Personal Computer etc).
59
+
In all cases, it is up to the user to decide whether to grant the authorization or not. However, the transfer the QR code or PIN are transferred via an unauthorized channel and the user cannot always decide in which context an authorization is requested. This may be exploited by attackers to gain unauthorized access to a user's resources.
62
60
63
-
When the user is required to scan a QR code or enter a user code, the channel between the first and second device is unauthenticated. It is up to the user to decide whether to trust the QR code or user code. This lack of an authenticated channel may be exploited by attackers to gain unauthorized access to a user's resources.
61
+
To accommodate the various nuances of cross-device flows, this document distinguished between cases where the cross-device flow is used to authorize access to a resource (cross-device authorization flows) and cases where the cross-device flow is used to transfer an existing session (cross-device session transfer flows).
64
62
65
63
## Cross-Device Authorization
66
64
Cross-device authorization flows enable a user to initiate an authorization
67
65
flow on one device (the Consumption Device) and then use a second, personally
68
66
trusted, device (Authorization Device) to authorize the Consumption
69
67
Device to access a resource (e.g., access to a service). The Device
70
-
Authorization Grant ([@RFC8628]) and ClientInitiated Backchannel
71
-
Authentication [@CIBA] are two examples of popular cross-device flows.
68
+
Authorization Grant [@RFC8628] and Client-Initiated Backchannel
69
+
Authentication [@CIBA] are two examples of popular cross-device authorization flows.
72
70
73
-
In these cross-device authorization flows, the channel between the Consumption Device and the Authorization Device is unauthenticated. It is up to the user to decide whether to trust a QR code, user code, or the authorization request pushed to their Authorization Device.
71
+
In these flows, it is the user's decision whether to continue the session by scanning a QR code, entering a user code, or accepting an authorization request pushed to their Authorization Device.
74
72
75
73
Cross-Device Consent Phishing (CDCP) attacks exploit the unauthenticated channel
76
74
between the Consumption Device and Authorization Device using social engineering
@@ -90,12 +88,12 @@ selling them. These attacks are effective even when multi-factor authentication
90
88
is deployed, since the attacker's aim is not to capture and replay the credentials,
91
89
but rather to persuade the user to grant authorization.
92
90
93
-
## Cross-Device Service Transfer
94
-
Service transfer flows enable a user to transfer access to a service or network from a device on which the user is already authenticated to a second device such as a mobile phone. In these flows the user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).
91
+
## Cross-Device Session Transfer
92
+
Session transfer flows enable a user to transfer access to a service or network from a device on which the user is already authenticated to a second device such as a mobile phone. In these flows, the user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).
95
93
96
94
The session may be transferred by showing the user a session transfer code on the Authorization Device, which is then entered on the Consumption Device. This flow may be streamlined by rendering the session transfer code as a QR code on the Authorization Device and scanned by the Consumption Device.
97
95
98
-
The session transfer may preserve state information, including authentication state, to the second device to avoid additional configuration and optimise the user experience. These flows are often used to add new devices to a network, onboard customers to a mobile application or provision new credentials (e.g., [@OpenID.SIOPV2]).
96
+
The session transfer may preserve state information, including authentication state, to the second device to avoid additional configuration and optimize the user experience. These flows are often used to add new devices to a network, onboard customers to a mobile application, or provision new credentials (e.g., [@OpenID.SIOPV2]).
99
97
100
98
In these cross-device session transfer flows, the channel between the Authorization Device and the Consumption Device is unauthenticated.
101
99
@@ -121,16 +119,15 @@ appear in all capitals, as shown here.
121
119
122
120
This specification uses the terms "access token", "refresh token",
"grant type", "access token request", "access token response", and
122
+
"authorization request", and
126
123
"client" defined by The OAuth 2.0 Authorization Framework [@!RFC6749].
127
124
128
-
# Cross-Device Flow Concepts
129
-
Cross-device flows allow a user to start a flow on one device (e.g., a SmartTV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to perform an action on the second deviceto complete a task such as authenticating or granting authorization, before passing control back to the first device, or to access the service that was running on the first device on the second device.
125
+
# Cross-Device Flow Patterns
126
+
Cross-device flows allow a user to start a flow on one device (e.g., a SmartTV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to access the service that was running on the first device, or to perform an action such as authenticating or granting authorization before passing control back to the first device.
130
127
131
128
These flows typically involve using a mobile phone to scan a QR code
132
129
or enter a user code displayed on the first device (e.g., Smart
133
-
TV, Kiosk, Personal Computer etc).
130
+
TV, Kiosk, Personal Computer etc.).
134
131
135
132
## Cross-Device Authorization
136
133
In a cross-device authorization flow, a user attempts to access a service on one device, referred to as the Consumption Device, (e.g., a smart TV) and then uses a second device, referred to as the Authorization Device (e.g., a smartphone), to authorize access to a resource (e.g., access to a streaming service) on
@@ -157,6 +154,8 @@ There are three cross-device flow patterns for transferring the authorization re
157
154
- Backchannel-Transferred Session Pattern: In the second pattern, the OAuth client on the Consumption Device is responsible for transferring the session and initiating authorization on the Authorization Device via a backchannel with the Authorization Server. For example the user may attempt an online purchase on a Consumption Device (e.g. a personal computer) and receive an authorization request on their Authentication Device (e.g. mobile phone). The Client Initiated Backchannel Authentication [@CIBA] is an example of a cross-device flow that follow this pattern.
158
155
- User-Transferred Authorization Data Pattern: In the third pattern, the OAuth client on the Consumption Device triggers the authorization request via a backchannel with the Authorization Server. Authorization data (e.g. a 6 digit authorization code) is displayed on the Authorization Device, which the user transfers to Consumption Device (e.g., by manually entering it). For example the user may attempt to access data in an enterprise application and receive a 6 digit authorization code on their Authentication Device (e.g. mobile phone) that they enter on Consumption Device.
159
156
157
+
In these flows, it is the user's decision whether to continue the session by scanning a QR code, entering a user code, or accepting an authorization request pushed to their Authorization Device.
158
+
160
159
### User-Transferred Session Data Pattern
161
160
The Device Authorization Grant ([@RFC8628]) is an example of a cross-device flow that relies on the user copying information from the Consumption Device to the Authorization Device. The figure below shows a typical example of this flow:
The Authorization Server may choose to authenticate the user before sending the authorization data. The authorization data may be delivered as a text message or through a mobile application.
256
255
257
256
## Cross-Device Session Transfer
258
-
In a cross-device service transfer flow, a user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).
259
-
260
-
Cross-device session transfer flows enables users to transfer state information, including the authentication and authorization state of the current session to a second device without having to re-enter configuration, authentication or authorization information. This allows users to seamlessly:
257
+
Session transfer flows enable a user to transfer access to a service or network from a device on which the user is already authenticated to a second device such as a mobile phone. In these flows, the user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).
261
258
262
-
* Add new devices to a network.
263
-
* Onboard to a mobile application.
264
-
* Provision new credentials (e.g. [@OpenID.VCI]).
259
+
The session transfer may preserve state information, including authentication state, to the second device to avoid additional configuration and optimize the user experience. These flows are often used to add new devices to a network, onboard customers to a mobile application, or provision new credentials (e.g., [@OpenID.SIOPV2]).
265
260
266
261
### Cross-Device Session Transfer Pattern
267
262
In this flow, the user is authenticated and starts the flow by authorizing the transfer of the session on the Authorization Device. The Authorization Device requests a session transfer code that may be rendered as a QR code on the Authorization Device. When the user scans the QR code or enters it on the Consumption Device where they would like the session to continue, the Consumption Device presents it to the Authorization Server. The Authorization Server then transfers the session to the Consumption Device. This may include transferring authentication and authorization state to optimise the user experience. This type of flow is used for adding new devices to networks, bootstrapping new applications or provisioning new credentials. The Pre-Authorized Code Flow in ([@OpenID.VCI])) is an example of using this pattern to provision a new credential. The figure below shows an example of this flow.
0 commit comments