-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add MFA capability and permission #79
Conversation
This PR is a proposal to add a capability `/mfa-enforcing` as well as a permission `mfa-enforced` to the specification. The version of the specification is bumped to 1.2.0. If an OCM provider has the capability `/mfa-enforcing` it will respond with a boolean on the endpoint /mfa-enforcing to indicate whether or not it will try to comply with a MFA requirement set as a permission on a share. If the sharer OCM provider trusts the sharee OCM provider the sharer MAY set the permission `mfa-enforced` on a share. A complient OCM provider that signals mfa-enforcing `true` MUST not allow access to a resource to a user that has not provided a second factor to establish the identity of the user with greater confidence. Since there is no way to guarantee that the sharee OCM provider will actually enforce the MFA requirement, it is up to the sharer OCM provider to establish a trust with the OCM sharee provider such that it is reasonable to assume that the sharee OCM provider will honor the MFA requirement. This establishment of trust will inevitably be implementation dependent, and can be done for example using a pre approved allow list of trusted OCM providers. The procedure of establishing trust is out of scope for this specification.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the approach, including the additional capability a provider is expected to implement.
I think part of the description in this PR could be fed into the README.md
. Otherwise, I left a couple of comments.
This patch adds information about MFA to the readme-file and renames `mfa-enforcing` to `mfa-capable`. The respons is simplified from a boolean response on the endpoint to an empty HTTP 200 OK response. Version is reset to 1.1.0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! @smesterheide and/or @michielbdejong any further thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should maybe have a more generic way to discover capabilities.
In practice, current implementations rely on /ocm-provider
I think.
Did we want to move away from that?
In any case, shouldn't we use something like /.well-known/ocm-configuration
?
I remember that |
Does it look like you expected now @glpatcern? I am not sure I did the right thing when merging your changes... |
Yes, I think this is OK (modulo one spurious thing easy to fix). For the discovery endpoint, that's something that was discussed in #37 (comment) and at the time it was decided NOT to go to |
Co-authored-by: Giuseppe Lo Presti <giuseppe.lopresti@cern.ch>
Co-authored-by: Giuseppe Lo Presti <giuseppe.lopresti@cern.ch>
This PR is a proposal to add a capability
/mfa-enforcing
as well as a permissionmfa-enforced
to the specification. The version of the specification is bumped to 1.2.0.If an OCM provider has the capability
/mfa-enforcing
it will respond with a boolean on the endpoint /mfa-enforcing to indicate whether or not it will try to comply with a MFA requirement set as a permission on a share. If the sharer OCM provider trusts the sharee OCM provider the sharer MAY set the permissionmfa-enforced
on a share.A complient OCM provider that signals mfa-enforcing
true
MUST not allow access to a resource to a user that has not provided a second factor to establish the identity of the user with greater confidence.Since there is no way to guarantee that the sharee OCM provider will actually enforce the MFA requirement, it is up to the sharer OCM provider to establish a trust with the OCM sharee provider such that it is reasonable to assume that the sharee OCM provider will honor the MFA requirement. This establishment of trust will inevitably be implementation dependent, and can be done for example using a pre approved allow list of trusted OCM providers. The procedure of establishing trust is out of scope for this specification.