authorization | URI of the authorization server.
+If no scopes are defined in the SecurityScheme then they are considered to be empty.
+The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows, and it might be possible for a developer to confuse the two. However, since the device flow does not use the regular authorization endpoint there should be no ambiguity. We are considering however an alternative design where there is a separate member, device_authorization , which MUST be included for the device flow (and then the regular auhtoriation endpoint then MUST NOT be used).
+
+Vocabulary term | Description | Assignment | Type |
---|
authorization | URI of the authorization server.
In the case of the device flow, the URI provided for the authorization value refers to the device authorization endpoint [[!RFC8628]].
| optional | anyURI |
token | URI of the token server. | optional | anyURI |
diff --git a/index.template.html b/index.template.html
index 9ba6af54e..cf45a194d 100644
--- a/index.template.html
+++ b/index.template.html
@@ -1319,14 +1319,17 @@ Security Vocabulary Definitions
For the client flow token MUST be included.
For the client flow authorization MUST NOT be included.
For the device flow both authorization and token MUST be included.
-If multiple flows are available (for example, multiple security schemes are given for a Form) then only
+If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
one may be selected for use by a Consumer.
If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used.
This includes the password and implicit flows, which are no longer considered best practice [[WOT-SECURITY-GUIDELINES]].
This also applies to flows that are similar at the protocol level but do
not exactly follow the OAuth 2.0 specification,
for example by automating grants rather than invoking a user agent to interact with a human resource owner.
-If no scopes are defined in the SecurityScheme then they are considered to be empty.Vocabulary term | Description | Assignment | Type |
---|
authorization | URI of the authorization server.
+If no scopes are defined in the SecurityScheme then they are considered to be empty.
+The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows, and it might be possible for a developer to confuse the two. However, since the device flow does not use the regular authorization endpoint there should be no ambiguity. We are considering however an alternative design where there is a separate member, device_authorization , which MUST be included for the device flow (and then the regular auhtoriation endpoint then MUST NOT be used).
+
+Vocabulary term | Description | Assignment | Type |
---|
authorization | URI of the authorization server.
In the case of the device flow, the URI provided for the authorization value refers to the device authorization endpoint [[!RFC8628]].
| optional | anyURI |
token | URI of the token server. | optional | anyURI |
From 75a49fb0e058ac4f8140c0a12b42e6b06f963a49 Mon Sep 17 00:00:00 2001
From: Michael McCool
Date: Mon, 3 Aug 2020 10:23:00 -0300
Subject: [PATCH 09/13] fix typo
---
index.html | 8 +++++++-
index.template.html | 8 +++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/index.html b/index.html
index 59b371704..b69e9999e 100644
--- a/index.html
+++ b/index.html
@@ -1378,7 +1378,13 @@ Security Vocabulary Definitions
not exactly follow the OAuth 2.0 specification,
for example by automating grants rather than invoking a user agent to interact with a human resource owner.
If no scopes are defined in the SecurityScheme then they are considered to be empty.
-The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows, and it might be possible for a developer to confuse the two. However, since the device flow does not use the regular authorization endpoint there should be no ambiguity. We are considering however an alternative design where there is a separate member, device_authorization , which MUST be included for the device flow (and then the regular auhtoriation endpoint then MUST NOT be used).
+The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows,
+and it might be possible for a developer to confuse the two.
+However, since the device flow does not use the regular authorization endpoint there should be no ambiguity.
+We are considering however an alternative design where there is a separate element,
+device_authorization ,
+which MUST be included for the device flow (and then the regular authorization endpoint then MUST NOT be used).
+
Vocabulary term | Description | Assignment | Type |
---|
authorization | URI of the authorization server.
In the case of the device flow, the URI provided for the authorization value refers to the device authorization endpoint [[!RFC8628]].
diff --git a/index.template.html b/index.template.html
index cf45a194d..d28e5b659 100644
--- a/index.template.html
+++ b/index.template.html
@@ -1327,7 +1327,13 @@ Security Vocabulary Definitions
not exactly follow the OAuth 2.0 specification,
for example by automating grants rather than invoking a user agent to interact with a human resource owner.
If no scopes are defined in the SecurityScheme then they are considered to be empty.
-The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows, and it might be possible for a developer to confuse the two. However, since the device flow does not use the regular authorization endpoint there should be no ambiguity. We are considering however an alternative design where there is a separate member, device_authorization , which MUST be included for the device flow (and then the regular auhtoriation endpoint then MUST NOT be used).
+The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows,
+and it might be possible for a developer to confuse the two.
+However, since the device flow does not use the regular authorization endpoint there should be no ambiguity.
+We are considering however an alternative design where there is a separate element,
+device_authorization ,
+which MUST be included for the device flow (and then the regular authorization endpoint then MUST NOT be used).
+
Vocabulary term | Description | Assignment | Type |
---|
authorization | URI of the authorization server.
In the case of the device flow, the URI provided for the authorization value refers to the device authorization endpoint [[!RFC8628]].
From e9bacd9a53bfd626b553398a9beb34971ecbfbb3 Mon Sep 17 00:00:00 2001
From: Michael McCool
Date: Mon, 3 Aug 2020 10:35:02 -0300
Subject: [PATCH 10/13] add table
---
index.html | 9 ++++++++-
index.template.html | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/index.html b/index.html
index b69e9999e..4504050b4 100644
--- a/index.html
+++ b/index.html
@@ -1370,7 +1370,14 @@ Security Vocabulary Definitions
For the client flow token MUST be included.
For the client flow authorization MUST NOT be included.
For the device flow both authorization and token MUST be included.
-If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
+The required elements for each flow are summarized in the following table:
+
+Element | code | client | device |
+authorization | required | omit | required; refers to device authorization endpoint |
+token | required | required | required |
+
+
+If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
one may be selected for use by a Consumer.
If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used.
This includes the password and implicit flows, which are no longer considered best practice [[WOT-SECURITY-GUIDELINES]].
diff --git a/index.template.html b/index.template.html
index d28e5b659..b03d060ea 100644
--- a/index.template.html
+++ b/index.template.html
@@ -1319,7 +1319,14 @@ Security Vocabulary Definitions
For the client flow token MUST be included.
For the client flow authorization MUST NOT be included.
For the device flow both authorization and token MUST be included.
-If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
+The required elements for each flow are summarized in the following table:
+
+Element | code | client | device |
+authorization | required | omit | required; refers to device authorization endpoint |
+token | required | required | required |
+
+
+If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
one may be selected for use by a Consumer.
If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used.
This includes the password and implicit flows, which are no longer considered best practice [[WOT-SECURITY-GUIDELINES]].
From e8552ff9d63cdec8d4ffa0a9d4420637b4202833 Mon Sep 17 00:00:00 2001
From: Michael McCool
Date: Mon, 3 Aug 2020 10:46:42 -0300
Subject: [PATCH 11/13] add ed note
---
index.html | 16 ++++++++++++----
index.template.html | 16 ++++++++++++----
2 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/index.html b/index.html
index 4504050b4..34efc5f61 100644
--- a/index.html
+++ b/index.html
@@ -1370,13 +1370,21 @@ Security Vocabulary Definitions
For the client flow token MUST be included.
For the client flow authorization MUST NOT be included.
For the device flow both authorization and token MUST be included.
-The required elements for each flow are summarized in the following table:
-
+In the case of the device flow
+the value provided for authorization refers to the device authorization endpoint defined in [[!RFC8628]].
+The mandatory elements for each flow are summarized in the following table:
+
Element | code | client | device |
-authorization | required | omit | required; refers to device authorization endpoint |
-token | required | required | required |
+authorization | mandatory | omit | mandatory; refers to device authorization endpoint |
+token | mandatory | mandatory | mandatory |
+
+Note that the table below lists these elements as "optional". In fact whether they are mandatory or not depends on the flow.
+The token element is listed as optional even though it is mandatory for all predefined flows since it might
+not be mandatory for some flows defined in an extension. We should investigate whether there is a better way to express these
+"variant record" constraints.
+
If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
one may be selected for use by a Consumer.
If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used.
diff --git a/index.template.html b/index.template.html
index b03d060ea..e41002a7d 100644
--- a/index.template.html
+++ b/index.template.html
@@ -1319,13 +1319,21 @@ Security Vocabulary Definitions
For the client flow token MUST be included.
For the client flow authorization MUST NOT be included.
For the device flow both authorization and token MUST be included.
-The required elements for each flow are summarized in the following table:
-
+In the case of the device flow
+the value provided for authorization refers to the device authorization endpoint defined in [[!RFC8628]].
+The mandatory elements for each flow are summarized in the following table:
+
Element | code | client | device |
-authorization | required | omit | required; refers to device authorization endpoint |
-token | required | required | required |
+authorization | mandatory | omit | mandatory; refers to device authorization endpoint |
+token | mandatory | mandatory | mandatory |
+
+Note that the table below lists these elements as "optional". In fact whether they are mandatory or not depends on the flow.
+The token element is listed as optional even though it is mandatory for all predefined flows since it might
+not be mandatory for some flows defined in an extension. We should investigate whether there is a better way to express these
+"variant record" constraints.
+
If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only
one may be selected for use by a Consumer.
If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used.
From 0fdc5e5d2fef0279e7f4c400ac128b5fdb04358d Mon Sep 17 00:00:00 2001
From: Michael McCool
Date: Mon, 3 Aug 2020 10:50:01 -0300
Subject: [PATCH 12/13] add refresh to table
---
index.html | 1 +
index.template.html | 1 +
2 files changed, 2 insertions(+)
diff --git a/index.html b/index.html
index 34efc5f61..be3404c87 100644
--- a/index.html
+++ b/index.html
@@ -1377,6 +1377,7 @@ Security Vocabulary Definitions
Element | code | client | device |
authorization | mandatory | omit | mandatory; refers to device authorization endpoint |
token | mandatory | mandatory | mandatory |
+refresh | optional | optional | optional |
diff --git a/index.template.html b/index.template.html
index e41002a7d..1767f3f78 100644
--- a/index.template.html
+++ b/index.template.html
@@ -1326,6 +1326,7 @@ Security Vocabulary Definitions
Element | code | client | device |
authorization | mandatory | omit | mandatory; refers to device authorization endpoint |
token | mandatory | mandatory | mandatory |
+refresh | optional | optional | optional |
From b4f4228c607e0b0b494a5beeb6a3156b28d6bc03 Mon Sep 17 00:00:00 2001
From: Michael McCool
Date: Mon, 10 Aug 2020 20:49:38 -0300
Subject: [PATCH 13/13] make comment in security ontology consistent with text
---
ontology/wot-security.ttl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ontology/wot-security.ttl b/ontology/wot-security.ttl
index 582bc45b7..4eb66bc86 100644
--- a/ontology/wot-security.ttl
+++ b/ontology/wot-security.ttl
@@ -114,7 +114,7 @@
:OAuth2SecurityScheme rdf:type rdfs:Class, owl:Class ;
rdfs:label "OAuth2SecurityScheme" ;
rdfs:subClassOf :SecurityScheme ;
- rdfs:comment "FIX - INCONSISTENT WITH BODY. OAuth 2.0 authentication security configuration for systems conformant with [[!RFC6749]], [[!RFC8252]] and (for the device flow) [[!RFC8628]], identified by the Vocabulary Term oauth2 (i.e., \"scheme\": \"oauth2\" ). For the code flow both authorization and token MUST be included. For the client flow both authorization and token MUST be included. For the device flow both authorization and token MUST be included. If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used. This includes the password and implicit flows, which are no longer considered best practice. This also applies to flows that are similar at the protocol level but do not exactly follow the OAuth 2.0 specification, for example by automating grants rather than invoking a user agent to interact with a human resource owner. If no scopes are defined in the SecurityScheme then they are considered to be empty. "@en .
+ rdfs:comment "OAuth 2.0 authentication security configuration for systems conformant with [[!RFC6749]], [[!RFC8252]] and (for the device flow) [[!RFC8628]], identified by the Vocabulary Term oauth2 (i.e., "scheme": "oauth2" ). For the code flow both authorization and token MUST be included. For the client flow token MUST be included. For the client flow authorization MUST NOT be included. For the device flow both authorization and token MUST be included. In the case of the device flow the value provided for authorization refers to the device authorization endpoint defined in [[!RFC8628]]. The mandatory elements for each flow are summarized in the following table: Element | code | client | device | authorization | mandatory | omit | mandatory; refers to device authorization endpoint | token | mandatory | mandatory | mandatory | refresh | optional | optional | optional | Note that the table below lists these elements as "optional". In fact whether they are mandatory or not depends on the flow. The token element is listed as optional even though it is mandatory for all predefined flows since it might not be mandatory for some flows defined in an extension. We should investigate whether there is a better way to express these "variant record" constraints. If multiple flows are available (for example, multiple OAuth 2.0 security schemes with different flows are given for a Form ) then only one may be selected for use by a Consumer. If an OAuth 2.0 flow other than code , client or device needs to be specified an extension vocabulary MUST be used. This includes the password and implicit flows, which are no longer considered best practice [[WOT-SECURITY-GUIDELINES]]. This also applies to flows that are similar at the protocol level but do not exactly follow the OAuth 2.0 specification, for example by automating grants rather than invoking a user agent to interact with a human resource owner. If no scopes are defined in the SecurityScheme then they are considered to be empty. The device authorization endpoint technically uses a different protocol than the authorization endpoint used by other flows, and it might be possible for a developer to confuse the two. However, since the device flow does not use the regular authorization endpoint there should be no ambiguity. We are considering however an alternative design where there is a separate element, device_authorization , which MUST be included for the device flow (and then the regular authorization endpoint then MUST NOT be used). "@en .
:PSKSecurityScheme rdf:type rdfs:Class, owl:Class ;
rdfs:label "PSKSecurityScheme" ;
|
|
|
|