Skip to content

Commit f390756

Browse files
committed
incorporated feedback from Shayne and Apoorva
1 parent dd60cac commit f390756

File tree

1 file changed

+32
-14
lines changed

1 file changed

+32
-14
lines changed

caep-interoperability-profile-1_0.md

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,15 @@ author:
2222
org: SGNL
2323
email: atul@sgnl.ai
2424

25+
contributor:
26+
-
27+
ins: A. Deshpande
28+
name: Apoorva Deshpande
29+
org: Okta
30+
email: apoorva.deshpande@okta.com
31+
2532
normative:
33+
RFC9493: # Subject Identifier Formats for SETs
2634
SSF:
2735
target: http://openid.net/specs/openid-sse-framework-1_0.html
2836
title: OpenID Shared Signals and Events Framework Specification 1.0
@@ -71,17 +79,10 @@ This document defines an interoperability profile for implementations of the Sha
7179
SSF and CAEP together enable improved session security outcomes. This specification defines the minimum required features from SSF and CAEP that an implementation MUST offer in order to be considered as an interoperable implementation. This document defines specific use cases. An implementation may support only a subset of the use cases defined herein, and SHALL be considered an interoperable implementation for the specific use-cases it supports. The following use-cases are considered as a part of this specification:
7280

7381
Session Revocation
74-
: A CAEP Transmitter or Receiver is able to respectively generate or respond to the CAEP session-revoked event
82+
: A SSF Transmitter or Receiver is able to respectively generate or respond to the CAEP session-revoked event
7583

7684
Credential Change
77-
: A CAEP Transmitter or Receiver is able to respectively generate or respond to the CAEP credential-change event
78-
79-
# Definitions
80-
CAEP Transmitter
81-
: A SSF Transmitter that supports generating least one event type defined in the CAEP specification.
82-
83-
CAEP Receiver
84-
: A SSF Receiver that supports receiving at least one event type defined in the CAEP specification.
85+
: A SSF Transmitter or Receiver is able to respectively generate or respond to the CAEP credential-change event
8586

8687
# Common Requirements {#common-requirements}
8788
The following requirements are common across all use-cases defined in this document.
@@ -93,7 +94,19 @@ Transmitters MUST implement the following features:
9394
The Transmitter Configuration Metadata MUST have a `spec_version` field, and its value MUST be `1_0-ID2` or greater
9495

9596
### Delivery Method {#delivery-method}
96-
The Transmitter Configuration Metadata MUST include the `delivery_methods_supported` field and its value MUST include the value `urn:ietf:rfc:8935` (i.e. the Push-Based Security Event Token (SET) Delivery Using HTTP specificaiton {{RFC8935}})
97+
The Transmitter Configuration Metadata MUST include the `delivery_methods_supported` field.
98+
99+
### JWKS URI {#jwks-uri}
100+
The Transmitter Configuration Metadata MUST include the `jwks_uri` field, and its value MUST provide the current signing key of the Transmitter.
101+
102+
### Configuration Endpoint {#configuration-endpoint}
103+
The Transmitter Configuration Metadata MUST include the `configuration_endpoint` field. The specified endpoint MUST provide a way to Create a Stream.
104+
105+
### Status Endpoint {#status-endpoint}
106+
The Transmitter Configuration Metadata MUST include the `status_endpoint` field. The specified endpoint MUST provide a way to Get and Update the Stream Status. The Transmitter MUST be able to pause and restart streams. For streams that are paused, the Transmitter MUST specify (offline) the resource constraints on how many events it can keep, or for how long. The way a Transmitter specifies this information is outside the scope of the SSF spec.
107+
108+
### Verification Endpoint {#verification-endpoint}
109+
The Transmitter Configuration Metadata MUST include the `verification_endpoint` field. The specified endpoint MUST provide a way to request verification events to be sent.
97110

98111
### Authorization Schemes
99112
The Transmitter Configuration Metadata MUST include the `authorization_schemes` field and its value MUST include the value
@@ -141,7 +154,12 @@ Receivers MUST be able to accept events using the Push-Based Security Event Toke
141154
Receivers MUST assume that all subjects are implicitly included in a Stream, without any `AddSubject` method invocations.
142155

143156
## Event Subjects {#common-event-subjects}
144-
Subjects of all events MUST support the `email` Simple Subject format.
157+
The following subject identifier formats from "Subject Identifiers for Security Event Tokens" {{RFC9493}} MUST be supported:
158+
159+
* `email`
160+
* `iss_sub`
161+
162+
Receivers MUST be prepared to accept events with any of the subject identifier formats specified in this section. Transmitters MUST be able to send events with at least one of subject identifier formats specified in this section.
145163

146164
## Event Signatures
147165
All events MUST be signed using the `RS256` algorithm using a minimum of 2048-bit keys.
@@ -150,7 +168,7 @@ All events MUST be signed using the `RS256` algorithm using a minimum of 2048-bi
150168
Implementations MAY choose to support one or more of the following use-cases in order to be considered interoperable implementations
151169

152170
## Session Revocation / Logout
153-
In order to support session revocation or logout, implementations MUST support the CAEP event type `session-revoked`.
171+
In order to support session revocation or logout, implementations MUST support the CAEP event type `session-revoked`. The `reason_admin` field of the event MUST be populated with a non-empty value.
154172

155173
## Credential Change
156174
In order to support notifying and responding to credential changes, implementations MUST support the CAEP event type `credential-change`.
@@ -168,6 +186,6 @@ Within the `credential-change` event, implementations MUST support the following
168186
* `fido2-roaming`
169187
* `fido2-u2f`
170188

171-
172-
189+
`reason_admin`
190+
: Transmitters MUST populate this value with a non-empty string.
173191

0 commit comments

Comments
 (0)