Skip to content

Commit 16145ce

Browse files
Address feedback from Guiseppe
Co-authored-by: Giuseppe Lo Presti <[email protected]>
1 parent d90e0d6 commit 16145ce

File tree

1 file changed

+47
-47
lines changed

1 file changed

+47
-47
lines changed

IETF-RFC.md

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ have separate implementations for different functions.
9494
### OCM Provider
9595

9696
An OCM Provider is an entity that can take on the two _roles_ of a
97-
_Sending Server_ and a _Receiving Server_. An OCM Provider MUST be a
97+
_Sending Server_ and a _Receiving Server_. An OCM Provider MUST be a
9898
_Discoverable Server_ and SHOULD be able to receive _Notifications_.
9999

100100
### OCM Directory Service
@@ -111,10 +111,10 @@ take on: the _Sending Server_ role and the _Receiving Server_ role.
111111

112112
A Sending Server is an OCM Provider that holds Resources and exposes
113113
APIs to allow access to them. It allows its users to create _Shares_
114-
to give other users access to those Resources. A Sending Server MAY
114+
to give other users access to those Resources. A Sending Server MAY
115115
provide its users with the ability to generate _Invites_ to establish
116-
contact with other users on other OCM Providers. When doing so it MAY
117-
provide a _WAYF Page_ to facilitate the Invite Flow. The WAYF page MAY
116+
contact with other users on other OCM Providers. When doing so it MAY
117+
provide a _WAYF Page_ to facilitate the Invite Flow. The WAYF page MAY
118118
be limited to a set of trusted OCM Providers, for instance those in the
119119
same _Federation_.
120120

@@ -124,7 +124,7 @@ same _Federation_.
124124
A Receiving Server is an OCM Provider that receives _Share_ Creation
125125
Notifications from Sending Servers, notifies its users about incoming
126126
_Shares_, and acts as an API client to allow its users to access Remote
127-
Resources. It MAY provide it's users with an _Address Book_ of
127+
Resources. It MAY provide its users with an _Address Book_ of
128128
_Contacts_ and the ability to accept _Invites_.
129129

130130

@@ -139,7 +139,7 @@ elsewhere:
139139
* __Discoverable Server__ - A server that tries to supply information in
140140
OCM API Discovery.
141141
* __Federation__ - A group of OCM Providers that have established
142-
mutual trust and agree on certain policies for interaction. A
142+
mutual trust and agree on certain policies for interaction. A
143143
Federation MAY be facilitated by a Directory Service.
144144
* __FQDN__ - Fully Qualified Domain Name, such as `"cloud.example.com"`.
145145
* __Invite Acceptance Gesture__ - Gesture from the Invite Receiver to
@@ -177,19 +177,19 @@ elsewhere:
177177
Invite Sender's OCM Address.
178178
* __OCM Address__ - identifies a user or group "at" an OCM Server.
179179
The OCM Address contains a server specific Party identifier, a host
180-
locating the OCM Server and an optional port. The OCM Address is not a
180+
locating the OCM Server and an optional port. The OCM Address is not a
181181
URI as it does not have scheme and the identifier may contain reserved
182182
characters.
183183

184184
ocm-address = identifier "@" host [ ":" port]
185185

186-
The identifier is an opaque, case-sensitive UTF-8 string. It is
187-
separated from the host by the last "@" in the OCM Address. It is
188-
possible to have multiple @-signs in a OCM-address, e.g. when an
189-
email address is the local part of the address like
186+
The identifier is an opaque, case-sensitive UTF-8 string. It is
187+
separated from the host by the last "@" in the OCM Address. It is
188+
possible to have multiple @-signs in a OCM-address, e.g. when an
189+
email address is the local part of the address like
190190
`[email protected]@ocm.example.org`.
191191

192-
host is an IP literal encapsulated within square brackets, an IPv4
192+
host is an IP literal encapsulated within square brackets, an IPv4
193193
address in dotted decimal form, or a registered name as described in
194194
[RFC3986].
195195

@@ -198,8 +198,8 @@ characters.
198198
The optional port subcomponent can be used to specify a port to use
199199
for discovery (see Discovery Process).
200200

201-
The OCM Server MUST be discoverable at the given host and optional
202-
port via the Well-Known [RFC8615] path `/.well-known/ocm`. The OCM
201+
The OCM Server MUST be discoverable at the given host and optional
202+
port via the Well-Known [RFC8615] path `/.well-known/ocm`. The OCM
203203
Address MUST NOT contain a path.
204204

205205
* __OCM API Discovery__ - Process of evaluating properties of a Remote
@@ -262,15 +262,15 @@ characters.
262262
another OCM Server, based on out-of-band information, federation
263263
membership or prior interactions, SHOULD be recorded in an internal
264264
registry of trusted servers, that SHOULD be updated over time based
265-
on new information. The registry SHOULD include the FQDN of the
266-
trusted server and the Public Key used for HTTP Signatures. It MAY
265+
on new information. The registry SHOULD include the FQDN of the
266+
trusted server and the Public Key used for HTTP Signatures. It MAY
267267
also include additional metadata such as the inviteAcceptDialog URL
268268
or supported capabilities.
269269
* __WAYF Page__ - A Where-Are-You-From page is a discovery service used
270270
to identify the OCM Server of an Invite Receiver.
271271

272272
In Appendix D, an object model is presented as a non-normative guide for
273-
implementators to understand the relationships between these terms.
273+
implementers to understand the relationships between these terms.
274274

275275
# General Flow
276276

@@ -476,11 +476,11 @@ time without notifying them.
476476

477477
### Invite format
478478
To accept an invite, two pieces of information are required: a `token`
479-
and a `provider`. There are two recognized formats:
479+
and a `provider`. There are two recognized formats:
480480

481481
* **Invite string format:**
482482
A base64-encoded string containing the token and the provider’s FQDN,
483-
joined by an `@` sign. Example:
483+
joined by an `@` sign. Example:
484484

485485
If the `token` is `a55a966e-15c1-4cb9-a39d-4e4c54399baf` and the
486486
`provider` is `my-cloud-storage.org`, the combined string is
@@ -495,7 +495,7 @@ and a `provider`. There are two recognized formats:
495495

496496
* **Link format:**
497497
If the inviting OCM Server supports a WAYF page, the invite may be
498-
provided as a link with the token as a request parameter. Example:
498+
provided as a link with the token as a request parameter. Example:
499499

500500
`https://my-cloud-storage.org/wayf?token=
501501
a55a966e-15c1-4cb9-a39d-4e4c54399baf`
@@ -611,7 +611,7 @@ Step 4: If not, try a HTTP GET with `https://<fqdn>/ocm-provider` as
611611
the URL instead.
612612
Step 5: If that results in a valid HTTP response with a valid JSON
613613
response body within reasonable time, go to step 7.
614-
Step 6: If not, fail. Implementations MAY fallback to HTTP instead
614+
Step 6: If not, fail. Implementations MAY fallback to HTTP instead
615615
of HTTPS in testing setups and retry steps 2-5, in particular when
616616
an optional port is given in the address.
617617
Step 7: The JSON response body is the data that was discovered.
@@ -988,7 +988,7 @@ with any related share.
988988
Notifications from Sending Server to Receiving Server SHOULD use
989989
httpsig [RFC9421] so the Receiving Server can authenticate the origin
990990
of the notification. Receiving Servers SHOULD decline notifications
991-
from Sending Servers without httpsig as it can't identify where the
991+
from Sending Servers without httpsig as it can't identify where the
992992
notification is coming from.
993993

994994
### Receiving Party Notification
@@ -1076,7 +1076,7 @@ Date: Wed, 05 Nov 2025 14:00:00 GMT
10761076
Content-Type: application/x-www-form-urlencoded
10771077
Digest: SHA-256=ok6mQ3WZzKc8nb7s/Jt2yY1uK7d2n8Zq7dhl3Q0s1xk=
10781078
Content-Length: 101
1079-
Signature-Input:
1079+
Signature-Input:
10801080
sig1=("@method" "@target-uri" "content-digest" "date"); \
10811081
created=1730815200; keyid="receiver.example.org#2025"; \
10821082
alg="rsa-sha256"
@@ -1207,7 +1207,7 @@ Implementers SHOULD NOT use it and prefer short-lived tokens instead.
12071207
## Code Flow
12081208

12091209
All `{tokenEndPoint}` requests MUST be transmitted over HTTPS and
1210-
signed using HTTP Signatures. Bearer tokens MUST be treated as
1210+
signed using HTTP Signatures. Bearer tokens MUST be treated as
12111211
confidential and never logged, persisted beyond their lifetime, or
12121212
transmitted over unsecured channels.
12131213

@@ -1231,14 +1231,14 @@ Key Words](https://datatracker.ietf.org/html/rfc8174)", May 2017.
12311231
[RFC9421] Backman, A., Richer, J. and Sporny, M. "[HTTP Message
12321232
Signatures](https://tools.ietf.org/html/rfc9421)", February 2024.
12331233

1234-
[RFC3986] Berners-Lee, T., Fielding, R. and Masinter, L.
1234+
[RFC3986] Berners-Lee, T., Fielding, R. and Masinter, L.
12351235
"[Uniform Resource Identifier (URI): Generic Syntax
12361236
](https://datatracker.ietf.org/doc/html/rfc3986)", January 2005
12371237

12381238
[RFC6749] Hardt, D. (ed), "[The OAuth 2.0 Authorization Framework](
12391239
https://datatracker.ietf.org/html/rfc6749)", October 2012.
12401240

1241-
[RFC8615] Nottingham, M. "[Well-Known Uniform Resource Identifiers
1241+
[RFC8615] Nottingham, M. "[Well-Known Uniform Resource Identifiers
12421242
(URIs)](https://datatracker.ietf.org/doc/html/rfc8615)", May 2019
12431243

12441244

@@ -1444,7 +1444,7 @@ format:
14441444

14451445
An implementor of OCM MAY choose any internal object model to represent
14461446
an _Address Book_, a _Contact_, an _Invite_, a _Provider_, a _Share_,
1447-
and a _User_. However, the following diagrams are provided to clarify
1447+
and a _User_. The following diagrams are provided to clarify
14481448
the concepts and their relationships, as a guide for implementors.
14491449

14501450
## Address Book
@@ -1456,12 +1456,12 @@ the Sending Server's database from the selection of the _Receiving
14561456
Party_ in preparation for Share Creation.
14571457

14581458
The Address Book entity maintains a collection of contacts for a user
1459-
within the OCM provider. It serves as the primary mechanism for managing
1460-
federated relationships between users across different OCM Servers.
1461-
_Contacts_ may be added to the Address Book through the Invite flow or
1462-
direct entry. It provides a convenient way for users to organize and
1463-
access their federated contacts, and MAY allow users to generate
1464-
_Invites_.
1459+
within the OCM provider. It serves as the primary mechanism for
1460+
managing federated relationships between users across different OCM
1461+
Servers. _Contacts_ may be added to the Address Book through the Invite
1462+
flow or direct entry. It provides a convenient way for users to
1463+
organize and access their federated contacts, and MAY allow users to
1464+
generate _Invites_.
14651465

14661466
```
14671467
+-----------------+
@@ -1491,8 +1491,8 @@ _Invites_.
14911491

14921492
## Contact
14931493
A Contact represents a federated user relationship established through
1494-
the OCM protocol. Contacts are stored in _Address Books_ and may be
1495-
created through the Invite process or via direct entry. A Contact MAY
1494+
the OCM protocol. Contacts are stored in _Address Books_ and may be
1495+
created through the Invite process or via direct entry. A Contact MAY
14961496
of course contain much more detailed information about the referenced
14971497
user such as if it was added via _Invites_ or direct entry.
14981498

@@ -1528,7 +1528,7 @@ user such as if it was added via _Invites_ or direct entry.
15281528
## Invite
15291529

15301530
The Invite entity represents the bidirectional trust establishment
1531-
mechanism in OCM. It facilitates secure contact exchange between users
1531+
mechanism in OCM. It facilitates secure contact exchange between users
15321532
on different OCM Servers.
15331533

15341534
```
@@ -1564,7 +1564,7 @@ on different OCM Servers.
15641564
## Provider
15651565

15661566
The Provider entity represents an OCM Server's capabilities and
1567-
configuration as discovered through the OCM API Discovery process. It
1567+
configuration as discovered through the OCM API Discovery process. It
15681568
represents both the Sending Server and Receiving Server roles, and an
15691569
implementor might find it useful to have a Provider object model to
15701570
store the discovered information about federation peers or other remote
@@ -1588,19 +1588,19 @@ OCM Providers.
15881588
|
15891589
+---------+---------+----------------------+
15901590
| | |
1591-
v v v
1592-
+------------------+ +------------------+ +------------------+
1593-
| ResourceTypes[] | | Capabilities[] | | Criteria[] |
1591+
v v v
1592+
+------------------+ +------------------+ +------------------+
1593+
| ResourceTypes[] | | Capabilities[] | | Criteria[] |
15941594
+------------------+ +------------------+ +------------------+
15951595
| - name | | - enforce-mfa | | - allowlist |
15961596
| - shareTypes[] | | - exchange-token | | - denylist |
15971597
| - protocols{} | | - invite-wayf | | - http-signatures|
15981598
+------------------+ | - invites | | - invite |
15991599
| | - webdav-uri | | - token-exchange |
16001600
| +------------------+ +------------------+
1601-
| supports
1602-
v
1603-
+------------------+
1601+
| supports
1602+
v
1603+
+------------------+
16041604
| Protocols |
16051605
+------------------+
16061606
| - datatx |
@@ -1634,10 +1634,10 @@ from a Sending Party to a Receiving Party.
16341634
| |
16351635
| creates | accesses
16361636
v v
1637-
+------------------+ notification +------------------+
1637+
+------------------+ notification +------------------+
16381638
| Share |-------------------->| Receiving Server |
16391639
+------------------+ +------------------+
1640-
| - expiration | |
1640+
| - expiration | |
16411641
| - name | | mediates access to
16421642
| - owner | v
16431643
| - protocol | +------------------+
@@ -1736,8 +1736,8 @@ Shares and Invites and manage Contacts, and interact with Resources.
17361736
## Resource
17371737

17381738
The Resource entity represents the data or service being shared between
1739-
OCM Providers. It is the target of Shares and is accessed by the
1740-
Receiving Party through the Sending Server's API. In general a Resource
1739+
OCM Providers. It is the target of Shares and is accessed by the
1740+
Receiving Party through the Sending Server's API. In general a Resource
17411741
is a much more complex entity, but for the purpose of OCM we only need
17421742
to model a few key properties.
17431743

0 commit comments

Comments
 (0)