Skip to content

Commit 538277f

Browse files
appsdeshapoorvadeshpande-oktaFragLegs
authored
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]>
1 parent d2607b9 commit 538277f

File tree

1 file changed

+59
-3
lines changed

1 file changed

+59
-3
lines changed

openid-caep-interoperability-profile-1_0.md

+59-3
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ author:
2121
name: Atul Tulshibagwale
2222
org: SGNL
2323
24-
25-
contributor:
2624
-
2725
ins: A. Deshpande
2826
name: Apoorva Deshpande
@@ -74,10 +72,32 @@ normative:
7472
ins: A. Tulshibagwale
7573
name: Atul Tulshibagwale
7674
org: SGNL
75+
RFC7525: # Recommendations for Secure Use of Transport Layer Security
76+
RFC6125: # Representation and Verification of Domain-Based Application Service Identity within Internet Public Key
77+
# Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)
78+
RFC6750: # The OAuth 2.0 Authorization Framework: Bearer Token Usage
79+
RFC8414: # OAuth 2.0 Authorization Server Metadata
80+
RFC6749:
81+
FAPI:
82+
target: https://openid.bitbucket.io/fapi/fapi-2_0-security-profile.html
83+
title: FAPI 2.0 Security Profile — draft
84+
author:
85+
- ins: D. Fett
86+
- ins: D. Tonge
87+
- ins: J. Heenan
88+
OPRM:
89+
target: https://www.ietf.org/archive/id/draft-ietf-oauth-resource-metadata-03.html
90+
title: OAuth 2.0 Protected Resource Metadata
91+
author:
92+
-ins: M.B. Jones
93+
-ins: P. Hunt
94+
-ins: A. Parecki
7795

7896

7997
--- abstract
80-
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.
81101

82102
--- middle
83103

@@ -93,6 +113,14 @@ Credential Change
93113
# Common Requirements {#common-requirements}
94114
The following requirements are common across all use-cases defined in this document.
95115

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+
96124
## Transmitters {#common-transmitters}
97125
Transmitters MUST implement the following features:
98126

@@ -176,6 +204,34 @@ Receivers MUST be prepared to accept events with any of the subject identifier f
176204
## Event Signatures
177205
All events MUST be signed using the `RS256` algorithm using a minimum of 2048-bit keys.
178206

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
213+
** authorization code flow {{RFC6749}} section 4.1
214+
215+
### OAuth Scopes
216+
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.
234+
179235
## Security Event Token
180236

181237
### The "events" claim

0 commit comments

Comments
 (0)