CSCfi / rems

Resource Entitlement Management System is a tool for managing access rights to resources, such as research datasets.
MIT License
52 stars 23 forks source link

Bona fide referer workflow; implement bonafidebot #1523

Closed opqdonut closed 3 years ago

opqdonut commented 5 years ago

We need to support applying for a bona fide status. The application should work roughly like this:

Plan:

Notes and questions:

opqdonut commented 5 years ago

Awaiting decision / spec.

Macroz commented 5 years ago

Let's plan this further by splitting into separate tasks. Not blocked i.e. required feature and planning can proceed and waits implementation.

Bot can be suitable for this.

Should decision request (or comment request) always allow adding by email that sends an invitation to REMS? It is likely that at the beginning of any REMS instance, the people have not yet logged in to REMS so won't be available in the autocomplete because they are not in the users table.

opqdonut commented 4 years ago

Architecture idea:

bonafidebot can either be in REMS, or an external intergration that uses event notifications (#2095)

Other ideas:

mikael-linden commented 4 years ago

For good usability, REMS should not allow the decider to approve an application if they don't have the bona fide status themselves. Instead, it should provide an informative message to the user why they can't approve the application.

Notice also that there are two ways to receive the bona fide status: (1) User's Home Organisation (its IdP) tells the user is a researcher. (2) A user qualifying to (1) vouches for the bona fide status (via this REMS feature) In other words, the endorsement chain has just one link; a person who has received their bona fide qualifications via endorsement in REMS cannot endorse other persons. This feature is done by the IdP releasing proper bona fide status attribute. The REMS implementation must just check the endorser's bona fide status from the IdP's attribute and not from its internal database.

opqdonut commented 4 years ago

Yes, thanks for the clarification, that was our understanding too.

The message is also a good point.

Macroz commented 4 years ago

Waiting for a couple tasks and review in meeting this week. Plan seems possible with no big issues. I updated the task to reflect the general understanding.

jaakkocsc commented 3 years ago

We've now received API credentials on ELIXIR AAI for pushing the bona fide grants. But no clear spec on what to push yet.

jaakkocsc commented 3 years ago

An example content to push: { "jku": "https://login.elixir-czech.org/oidc/jwk", "kid": "rsa1", "typ": "JWT", "alg": "RS256" } { "sub": "370fa949dd5cac7906dde14164545c64a908ec92@elixir-europe.org", "ga4gh_visa_v1": { "asserted": 1588240500, "by": "peer", "source": "https://elixir-europe.org/", "type": "ResearcherStatus", "value": "https://doi.org/10.1038/s41431-018-0219-y" }, "iss": "https://login.elixir-czech.org/oidc/", "exp": 1639478414, "iat": 1607942414, "jti": "1f2aec8f-7a5b-4200-8dbb-23048f8fb420" }

jaakkocsc commented 3 years ago

Approved push spec is very simple: we just pass the elixir-id as an URL parameter and that's it: https://perun.elixir-czech.cz/rems/?elixirid={elixir_user_id}

opqdonut commented 3 years ago

moved leftovers to #2511 #2513