Skip to content
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

Discovery caps - Aka is the /mfa-capable endpoint really necessary? #121

Open
michielbdejong opened this issue Sep 5, 2024 · 3 comments · May be fixed by #136
Open

Discovery caps - Aka is the /mfa-capable endpoint really necessary? #121

michielbdejong opened this issue Sep 5, 2024 · 3 comments · May be fixed by #136

Comments

@michielbdejong
Copy link
Contributor

If '/mfa-capable' is listed as a capability in the Discovery Document, then that already states that MFA requirements are supported, right? So then why would a separate boolean endpoint at /mfa-capable be necessary?

@michielbdejong
Copy link
Contributor Author

I'm thinking maybe the capabilities should be more like

  • send/receive Share Creation Notification already implied by 'enabled'
  • the various protocols per resource type already implied by 'resourceTypes'
  • the ability to act as a WebDAV client using the old HTTP Basic auth header format -> implied
  • the ability to act as an API server using the old HTTP Basic auth header format -> implied
  • the ability to act as a WebDAV client hitting the WebDAV base URL -> implied
  • the ability to act as a WebDAV server serving the WebDAV base URL -> implied
  • the ability to act as a WebDAV client using the intermediate sharedSecret Bearer auth -> implied by API version
  • the ability to act as a WebDAV server using the intermediate sharedSecret Bearer auth -> implied by API version
  • the ability to act as a WebDAV client to the URI from the Share -> implied by API version
  • the ability to act as a WebDAV server for the URI from the Share -> implied by including it in a Share Creation Notification
  • the ability to act as a WebDAV client using the new code Bearer to the WebDAV base URL -> announce the 'code-client' cap
  • the ability to act as a WebDAV server using the new code Bearer to the WebDAV base URL -> announce the 'code-server' cap
  • the ability to sign its own http requests -> announce the 'http-request-signer' cap
  • the ability to verify incoming http request signatures -> announce the 'http-request-signature-verifier' cap
  • the ability to send an MFA requirement -> announce the 'mfa-requirement-sender' cap
  • the ability to receive and honour an MFA requirement -> announce the 'mfa-requirement-enforcer' cap

@glpatcern
Copy link
Member

The original idea was that the capabilities were endpoints, and the mfa-capable cap got a "trivial" endpoint. I agree though that caps do not necessarily match endpoints, and now with the recent addition of many more optional caps, it makes sense to expose a list of caps as above, with the endpoints implicitly defined by the specs.

I would support switching to a list of "abstract" caps, where we have to add:

  • the ability to receive invitations -> announce the 'invite-acceptor' cap
  • the ability to send invitations -> announce the 'invite-sender' cap

This would be a breaking change but limited to OCM 1.1 implementations - essentially only Reva and the ScienceMesh app - so relatively easy to port.

@glpatcern glpatcern changed the title Is the /mfa-capable endpoint really necessary? Discovery caps - Aka is the /mfa-capable endpoint really necessary? Sep 9, 2024
@glpatcern glpatcern linked a pull request Sep 25, 2024 that will close this issue
@glpatcern glpatcern linked a pull request Sep 25, 2024 that will close this issue
@mickenordin
Copy link
Collaborator

I like this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants