From 9f9d91e07749ba487861d5233f1a00809560994c Mon Sep 17 00:00:00 2001
From: MichiRecRoom <1008889+LikeLakers2@users.noreply.github.com>
Date: Wed, 4 Nov 2020 19:07:01 -0500
Subject: [PATCH 1/3] Add Device Code authorization to the supported OAuth
Flows
---
versions/3.1.0.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/versions/3.1.0.md b/versions/3.1.0.md
index 53f48be6c2..e6b397539c 100644
--- a/versions/3.1.0.md
+++ b/versions/3.1.0.md
@@ -3264,6 +3264,7 @@ Field Name | Type | Description
password| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Resource Owner Password flow
clientCredentials| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Client Credentials flow. Previously called `application` in OpenAPI 2.0.
authorizationCode| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Authorization Code flow. Previously called `accessCode` in OpenAPI 2.0.
+deviceCode| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Device Code flow.
This object MAY be extended with [Specification Extensions](#specificationExtensions).
@@ -3275,7 +3276,8 @@ Configuration details for a supported OAuth Flow
Field Name | Type | Applies To | Description
---|:---:|---|---
authorizationUrl | `string` | `oauth2` (`"implicit"`, `"authorizationCode"`) | **REQUIRED**. The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
-tokenUrl | `string` | `oauth2` (`"password"`, `"clientCredentials"`, `"authorizationCode"`) | **REQUIRED**. The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
+deviceAuthorizationUrl | `string` | `oauth2` (`"deviceCode"`) | **REQUIRED**. The device authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
+tokenUrl | `string` | `oauth2` (`"password"`, `"clientCredentials"`, `"authorizationCode"`, `"deviceCode"`) | **REQUIRED**. The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
refreshUrl | `string` | `oauth2` | The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
scopes | Map[`string`, `string`] | `oauth2` | **REQUIRED**. The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.
From 7558891764ae040a21e10c07f370947e64309d65 Mon Sep 17 00:00:00 2001
From: MichiRecRoom <1008889+LikeLakers2@users.noreply.github.com>
Date: Thu, 5 Nov 2020 03:04:15 -0500
Subject: [PATCH 2/3] Update L:3164 with the new flow; also rename the fields
to avoid confusion
---
versions/3.1.0.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/versions/3.1.0.md b/versions/3.1.0.md
index e6b397539c..66cf217b85 100644
--- a/versions/3.1.0.md
+++ b/versions/3.1.0.md
@@ -3161,7 +3161,7 @@ animals:
Defines a security scheme that can be used by the operations.
-Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, client credentials and authorization code) as defined in [RFC6749](https://tools.ietf.org/html/rfc6749), and [OpenID Connect Discovery](https://tools.ietf.org/html/draft-ietf-oauth-discovery-06).
+Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, client credentials and authorization code) as defined in [RFC6749](https://tools.ietf.org/html/rfc6749), OAuth2 device authorization flow as defined in [RFC8628](https://tools.ietf.org/html/rfc8628), and [OpenID Connect Discovery](https://tools.ietf.org/html/draft-ietf-oauth-discovery-06).
Please note that currently (2019) the implicit flow is about to be deprecated [OAuth 2.0 Security Best Current Practice](https://tools.ietf.org/id/draft-ietf-oauth-security-topics). Recommended for most use case is Authorization Code Grant flow with PKCE.
##### Fixed Fields
@@ -3264,7 +3264,7 @@ Field Name | Type | Description
password| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Resource Owner Password flow
clientCredentials| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Client Credentials flow. Previously called `application` in OpenAPI 2.0.
authorizationCode| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Authorization Code flow. Previously called `accessCode` in OpenAPI 2.0.
-deviceCode| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Device Code flow.
+deviceAuthorization| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Device Authorization flow.
This object MAY be extended with [Specification Extensions](#specificationExtensions).
@@ -3276,7 +3276,7 @@ Configuration details for a supported OAuth Flow
Field Name | Type | Applies To | Description
---|:---:|---|---
authorizationUrl | `string` | `oauth2` (`"implicit"`, `"authorizationCode"`) | **REQUIRED**. The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
-deviceAuthorizationUrl | `string` | `oauth2` (`"deviceCode"`) | **REQUIRED**. The device authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
+deviceAuthorizationUrl | `string` | `oauth2` (`"deviceAuthorization"`) | **REQUIRED**. The device authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
tokenUrl | `string` | `oauth2` (`"password"`, `"clientCredentials"`, `"authorizationCode"`, `"deviceCode"`) | **REQUIRED**. The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
refreshUrl | `string` | `oauth2` | The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
scopes | Map[`string`, `string`] | `oauth2` | **REQUIRED**. The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.
From 68a297f09474fd5ddbae7295b967715a62a16b81 Mon Sep 17 00:00:00 2001
From: MichiRecRoom <1008889+LikeLakers2@users.noreply.github.com>
Date: Thu, 5 Nov 2020 03:07:55 -0500
Subject: [PATCH 3/3] Missed a bit. Woops.
---
versions/3.1.0.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/versions/3.1.0.md b/versions/3.1.0.md
index 66cf217b85..c930e66de0 100644
--- a/versions/3.1.0.md
+++ b/versions/3.1.0.md
@@ -3277,7 +3277,7 @@ Field Name | Type | Applies To | Description
---|:---:|---|---
authorizationUrl | `string` | `oauth2` (`"implicit"`, `"authorizationCode"`) | **REQUIRED**. The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
deviceAuthorizationUrl | `string` | `oauth2` (`"deviceAuthorization"`) | **REQUIRED**. The device authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
-tokenUrl | `string` | `oauth2` (`"password"`, `"clientCredentials"`, `"authorizationCode"`, `"deviceCode"`) | **REQUIRED**. The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
+tokenUrl | `string` | `oauth2` (`"password"`, `"clientCredentials"`, `"authorizationCode"`, `"deviceAuthorization"`) | **REQUIRED**. The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
refreshUrl | `string` | `oauth2` | The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
scopes | Map[`string`, `string`] | `oauth2` | **REQUIRED**. The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.