-
Notifications
You must be signed in to change notification settings - Fork 17
Proposal for the OCM Address format #268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
glpatcern
merged 6 commits into
cs3org:develop
from
KrausMatthias:feature/ocm-address-scheme
Sep 9, 2025
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
f104d19
Specify the OCM Address format
00d807c
Note explicitly there might be multiple @ signs in an OCM Address
87ad6c5
Fix to upper case UTF-8
KrausMatthias f38d6af
Add Opt-In http discovery as fallback for testing setups
2729d73
Drop mention of omitting default ports in favor of mention in Discove…
KrausMatthias 97e7c4d
Drop suggestion to allow http fallback only as Opt-In
KrausMatthias File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -139,14 +139,33 @@ related concepts from OAuth [RFC6749] and elsewhere: | |
| OCM API Discovery. | ||
| * __Discoverable Server__ - A server that tries to supply information in | ||
| OCM API Discovery. | ||
| * __OCM Address__ - A string of the form | ||
| `<Receiving Party's identifier>@<fqdn>` which can be used to uniquely | ||
| identify a user or group "at" an OCM Server and MAY be referred to as | ||
| Federated Cloud ID. | ||
| `<Receiving Party's identifier>` is an opaque string, unique at the | ||
| server. `<fqdn>` is the Fully Qualified Domain Name by which the | ||
| server is identified. This MUST be the domain at which the | ||
| `/.well-known/ocm` endpoint of that server is hosted. | ||
| * __OCM Address__ - identifies a user or group "at" an OCM Server. | ||
| The OCM Address contains a server specific Party identifier, a host | ||
| locating the OCM Server and an optional port. The OCM Address is not a | ||
| URI as it does not have scheme and the identifier may contain reserved | ||
| characters. | ||
|
|
||
| ocm-address = identifier "@" host [ ":" port] | ||
|
|
||
| The identifier is an opaque, case-sensitive UTF-8 string. It is | ||
| separated from the host by the last "@" in the OCM Address. It is | ||
| possible to have multiple @-signs in a OCM-address, e.g. when an | ||
| email address is the local part of the address like | ||
| `[email protected]@ocm.example.org`. | ||
|
|
||
| host is an IP literal encapsulated within square brackets, an IPv4 | ||
| address in dotted decimal form, or a registered name as described in | ||
| [RFC3986]. | ||
|
|
||
| host = IP-literal / IPv4address / reg-name | ||
|
|
||
| The optional port subcomponent can be used to specify a port to use | ||
| for discovery (see Discovery Process). | ||
|
|
||
| The OCM Server MUST be discoverable at the given host and optional | ||
| port via the Well-Known [RFC8615] path `/.well-known/ocm`. The OCM | ||
| Address MUST NOT contain a path. | ||
|
|
||
| * __OCM Notification__ - A message from the Receiving Server to the | ||
| Sending Server or vice versa, using the OCM Notifications endpoint. | ||
| * __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 | |
| the URL instead. | ||
| Step 5: If that results in a valid HTTP response with a valid JSON | ||
| response body within reasonable time, go to step 7. | ||
| Step 6: If not, fail. | ||
| Step 6: If not, fail. Implementations MAY fallback to HTTP instead | ||
| of HTTPS in testing setups and retry steps 2-5, in particular when | ||
| an optional port is given in the address. | ||
| Step 7: The JSON response body is the data that was discovered. | ||
|
|
||
| ## Fields | ||
|
|
@@ -1001,6 +1022,13 @@ Key Words](https://datatracker.ietf.org/html/rfc8174)", May 2017. | |
| [RFC9421] Backman, A., Richer, J. and Sporny, M. "[HTTP Message | ||
| Signatures](https://tools.ietf.org/html/rfc9421)", February 2024. | ||
|
|
||
| [RFC3986] Berners-Lee, T., Fielding, R. and Masinter, L. | ||
| "[Uniform Resource Identifier (URI): Generic Syntax | ||
| ](https://datatracker.ietf.org/doc/html/rfc3986)", January 2005 | ||
|
|
||
| [RFC8615] Nottingham, M. "[Well-Known Uniform Resource Identifiers | ||
| (URIs)](https://datatracker.ietf.org/doc/html/rfc8615)", May 2019 | ||
|
|
||
|
|
||
| ## Informative References | ||
|
|
||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.