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
Include OAuth specifics in the interop spec (#134)
* Include OAuth specifics in the interop spec
Include OAuth specifics in the interop spec
* Atul's feedback
* Include OAuth specifics in the interop spec
Include OAuth specifics in the interop spec
* Include OAuth specifics in the interop spec
Include OAuth specifics in the interop spec
* Updates
1. Shayne's suggestion
2. CAEP version
* Update openid-caep-interoperability-profile-1_0.md
* Update openid-caep-interoperability-profile-1_0.md
* Atul's feedback
Atul's feedback
* Feedback addressed
* More changes
* Update openid-caep-interoperability-profile-1_0.md
Co-authored-by: Shayne Miel (he/him) <[email protected]>
---------
Co-authored-by: Apoorva Deshpande <[email protected]>
Co-authored-by: Shayne Miel (he/him) <[email protected]>
This document defines an interoperability profile for implementations of the Shared Signals Framework (SSF) {{SSF}} and the Continuous Access Evaluation Profile (CAEP) {{CAEP}}. It is organized around use-cases that improve security of authenticated sessions. It specifies certain optional elements from within the SSF and CAEP specifications as being required to be supported in order to be considered as an interoperable implementation.
98
+
This document defines an interoperability profile for implementations of the Shared Signals Framework (SSF) {{SSF}} and the Continuous Access Evaluation Profile (CAEP) {{CAEP}}. This also profiles The OAuth 2.0 Authorization Framework {{RFC6749}} usage in the context of the SSF framework. The interoperability profile is organized around use-cases that improve security of authenticated sessions. It specifies certain optional elements from within the SSF and CAEP specifications as being required to be supported in order to be considered as an interoperable implementation.
99
+
100
+
Interoperability between SSF and CAEP, leveraging OAuth {{RFC6749}} provides greater assurance to implementers that their implementations will work out of the box with others.
81
101
82
102
--- middle
83
103
@@ -93,6 +113,14 @@ Credential Change
93
113
# Common Requirements {#common-requirements}
94
114
The following requirements are common across all use-cases defined in this document.
95
115
116
+
## Network layer protection
117
+
* The SSF transmitter MUST offer TLS protected endpoints and MUST establish connections to other servers using TLS. TLS connections MUST be set up to use TLS version 1.2 or later.
118
+
* When using TLS 1.2, follow the recommendations for Secure Use of Transport Layer Security in [RFC7525]{{RFC7525}}.
119
+
* The SSF receiver MUST perform a TLS server certificate signature checks, chain of trust validations, expiry and revocation status checks before calling the SSF transmitter APIs, as per [RFC6125]{{RFC6125}}.
120
+
121
+
## CAEP specification version
122
+
This specification supports CAEP {{CAEP}} events from Implementer's Draft 2
123
+
96
124
## Transmitters {#common-transmitters}
97
125
Transmitters MUST implement the following features:
98
126
@@ -176,6 +204,34 @@ Receivers MUST be prepared to accept events with any of the subject identifier f
176
204
## Event Signatures
177
205
All events MUST be signed using the `RS256` algorithm using a minimum of 2048-bit keys.
178
206
207
+
## OAuth Service
208
+
209
+
### Authorization Server
210
+
* MAY distribute discovery metadata (such as the authorization endpoint) via the metadata document as specified in [RFC8414]{{RFC8414}}
211
+
* MUST support at least one of the following to obtain a short-lived access token. For example, a short lived access token could be defined as one in which the value of the `exp` claim is not longer than 60 mins after `nbf` claim. Please refer to Access token lifetimes in the security considerations of {{FAPI}} for additional considerations.
212
+
** client credential grant flow {{RFC6749}} section 4.4
Depending on the features supported by the OAuth service and the SSF APIs, the client SHALL discover the OAuth scopes as follows:
217
+
218
+
1. If the Resource Server, hosting SSF configuration APIs, supports OAuth Protected Resource Metadata {{OPRM}} then the client MUST obtain the required scopes by using it.
219
+
220
+
2. If the Resource Server does not support {{OPRM}}, then the following scopes MUST be supported -
221
+
* An OAuth {{RFC6749}} authorization server that is used to issue tokens to SSF Receivers, MUST reserve the scopes for the SSF endpoints with the prefix of `ssf`
222
+
* All the SSF stream configuration management API operations MUST accept `ssf.manage` scope
223
+
* All the SSF stream configuration Read API operations MUST accept `ssf.read` scope
224
+
* Authorization server MAY postfix scope names with more granular operations eg. `ssf.manage.create`, `ssf.manage.update` etc.
225
+
* Transmitter managed poll endpoint MAY support the postfix scopes in the same nomenclature as `ssf.manage.poll`
226
+
227
+
### The SSF Transmitter as a Resource Server
228
+
* MUST accept access tokens in the HTTP header as in Section 2.1 of OAuth 2.0 Bearer Token Usage [RFC6750]{{RFC6750}}
229
+
* MUST NOT accept access tokens in the query parameters stated in Section 2.3 of OAuth 2.0 Bearer Token Usage [RFC6750]{{RFC6750}}
230
+
* MUST verify the validity, integrity, expiration and revocation status of access tokens
231
+
* MUST verify that the authorization represented by the access token is sufficient for the requested resource access.
232
+
* If the access token is not sufficient for the requested action, the Resource server MUST return errors as per section 3.1 of [RFC6750]{{RFC6750}}
233
+
* MAY publish the {{OPRM}} to describe the metadata needed to interact with the protected resource.
0 commit comments