Skip to content

Commit 8b9a743

Browse files
KrausMatthiasMatthias Krausglpatcern
authored
Proposal for the OCM Address format (#268)
* Specify the OCM Address format Following discussion in #237 and #244 * Note explicitly there might be multiple @ signs in an OCM Address * Fix to upper case UTF-8 Co-authored-by: Giuseppe Lo Presti <giuseppe.lopresti@cern.ch> * Add Opt-In http discovery as fallback for testing setups * Drop mention of omitting default ports in favor of mention in Discovery Process Co-authored-by: Giuseppe Lo Presti <giuseppe.lopresti@cern.ch> * Drop suggestion to allow http fallback only as Opt-In Co-authored-by: Giuseppe Lo Presti <giuseppe.lopresti@cern.ch> --------- Co-authored-by: Matthias Kraus <info@opengeomesh.org> Co-authored-by: Giuseppe Lo Presti <giuseppe.lopresti@cern.ch>
1 parent 54f1dd2 commit 8b9a743

File tree

1 file changed

+37
-9
lines changed

1 file changed

+37
-9
lines changed

IETF-RFC.md

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,33 @@ related concepts from OAuth [RFC6749] and elsewhere:
139139
OCM API Discovery.
140140
* __Discoverable Server__ - A server that tries to supply information in
141141
OCM API Discovery.
142-
* __OCM Address__ - A string of the form
143-
`<Receiving Party's identifier>@<fqdn>` which can be used to uniquely
144-
identify a user or group "at" an OCM Server and MAY be referred to as
145-
Federated Cloud ID.
146-
`<Receiving Party's identifier>` is an opaque string, unique at the
147-
server. `<fqdn>` is the Fully Qualified Domain Name by which the
148-
server is identified. This MUST be the domain at which the
149-
`/.well-known/ocm` endpoint of that server is hosted.
142+
* __OCM Address__ - identifies a user or group "at" an OCM Server.
143+
The OCM Address contains a server specific Party identifier, a host
144+
locating the OCM Server and an optional port. The OCM Address is not a
145+
URI as it does not have scheme and the identifier may contain reserved
146+
characters.
147+
148+
ocm-address = identifier "@" host [ ":" port]
149+
150+
The identifier is an opaque, case-sensitive UTF-8 string. It is
151+
separated from the host by the last "@" in the OCM Address. It is
152+
possible to have multiple @-signs in a OCM-address, e.g. when an
153+
email address is the local part of the address like
154+
`nomen.nescio@example.org@ocm.example.org`.
155+
156+
host is an IP literal encapsulated within square brackets, an IPv4
157+
address in dotted decimal form, or a registered name as described in
158+
[RFC3986].
159+
160+
host = IP-literal / IPv4address / reg-name
161+
162+
The optional port subcomponent can be used to specify a port to use
163+
for discovery (see Discovery Process).
164+
165+
The OCM Server MUST be discoverable at the given host and optional
166+
port via the Well-Known [RFC8615] path `/.well-known/ocm`. The OCM
167+
Address MUST NOT contain a path.
168+
150169
* __OCM Notification__ - A message from the Receiving Server to the
151170
Sending Server or vice versa, using the OCM Notifications endpoint.
152171
* __Invite Message__ - Out-of-band message used to establish contact
@@ -495,7 +514,9 @@ Step 4: If not, try a HTTP GET with `https://<fqdn>/ocm-provider` as
495514
the URL instead.
496515
Step 5: If that results in a valid HTTP response with a valid JSON
497516
response body within reasonable time, go to step 7.
498-
Step 6: If not, fail.
517+
Step 6: If not, fail. Implementations MAY fallback to HTTP instead
518+
of HTTPS in testing setups and retry steps 2-5, in particular when
519+
an optional port is given in the address.
499520
Step 7: The JSON response body is the data that was discovered.
500521

501522
## Fields
@@ -1000,6 +1021,13 @@ Key Words](https://datatracker.ietf.org/html/rfc8174)", May 2017.
10001021
[RFC9421] Backman, A., Richer, J. and Sporny, M. "[HTTP Message
10011022
Signatures](https://tools.ietf.org/html/rfc9421)", February 2024.
10021023

1024+
[RFC3986] Berners-Lee, T., Fielding, R. and Masinter, L.
1025+
"[Uniform Resource Identifier (URI): Generic Syntax
1026+
](https://datatracker.ietf.org/doc/html/rfc3986)", January 2005
1027+
1028+
[RFC8615] Nottingham, M. "[Well-Known Uniform Resource Identifiers
1029+
(URIs)](https://datatracker.ietf.org/doc/html/rfc8615)", May 2019
1030+
10031031

10041032
## Informative References
10051033

0 commit comments

Comments
 (0)