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

[EOEPCA/IAM] Integration of Resource Discovery BB / EOAPI (Q3) #42

Closed
2 tasks
w-jfe opened this issue Oct 5, 2024 · 6 comments
Closed
2 tasks

[EOEPCA/IAM] Integration of Resource Discovery BB / EOAPI (Q3) #42

w-jfe opened this issue Oct 5, 2024 · 6 comments
Assignees

Comments

@w-jfe
Copy link
Collaborator

w-jfe commented Oct 5, 2024

@w-jfe w-jfe added this to the Q3 - Release Beta #02 milestone Oct 5, 2024
@w-scho w-scho assigned w-mwo and w-scho and unassigned w-mwo Oct 28, 2024
@w-scho w-scho changed the title [EOEPCA/IAM] Integration of Resource Discovery BB [EOEPCA/IAM] Integration of Resource Discovery BB (Part 1) Nov 21, 2024
@w-scho w-scho changed the title [EOEPCA/IAM] Integration of Resource Discovery BB (Part 1) [EOEPCA/IAM] Integration of Resource Discovery BB Nov 21, 2024
@j08lue
Copy link
Contributor

j08lue commented Dec 6, 2024

@w-jfe, can you please confirm the rough implementation plan I wrote up here?

As noted, our team was unclear on the steps we would need to take on the BB side, once you implemented the control mechanism. We can get to that when you pick up this work.

@w-scho
Copy link
Collaborator

w-scho commented Dec 6, 2024

@j08lue I am currently working on the Workspace API route, trying out two different approaches (APISIX + Keycloak vs APISIX + OPA). Based on that, I'd create an APISIX route for eoAPI (probably at https://eoapi.**apx**.develop.eoepca.org/stac/collections). I hope that this will happen during the first half of next week.
I have some assumptions/ questions regarding this:

  • Does the term "open" mean that GET requests should be possible anonymously, i.e. even without authentication?
  • You only wrote that we have to distinguish between GET and POST. However, I assume that PUT, DELETE etc. should be handled in the same way as POST and also require authN/authZ. Is is sufficient to distinguish cases only by method or should the path also be considered, e.g. by preventing access to everything except the defined endpoints? It may make sense to limit access at least to the /stac or /stac/collections subtree.
  • I assume that eoAPI is actually an API in the sense of a machine-to-machine interface as its name suggests. Is it thus correct to assume that the caller will authenticate prior to calling the API and include a JWT in the call?

@j08lue
Copy link
Contributor

j08lue commented Dec 9, 2024

Thanks for the confirmation.

Our use case is this:

  1. A REST API (STAC API) serves public data, accessible anonymously via GET requests
  2. Some of the same endpoints as for data retrieval also allow for POST, DELETE, PUT requests to change the data (CRUD)

See these Transaction Extension docs: https://eoapi.develop.eoepca.org/stac/api.html#/Transaction%20Extension

Does the term "open" mean that GET requests should be possible anonymously, i.e. even without authentication?

Yes, anonymously.

Is is sufficient to distinguish cases only by method or should the path also be considered, e.g. by preventing access to everything except the defined endpoints? It may make sense to limit access at least to the /stac or /stac/collections subtree.

Only by method, please. All endpoints are open anonymously for GET requests but a few can also do POST, DELETE, POST, which require authentication + authorization.

I assume that eoAPI is actually an API in the sense of a machine-to-machine interface as its name suggests. Is it thus correct to assume that the caller will authenticate prior to calling the API and include a JWT in the call?

Not only machine-to-machine.

Expected clients:

  1. A web application (STAC Manager)
  2. Users in scripts or command-line tools such as Jupyter Notebooks or cURL
  3. A data registration service in the Resource Registration building block

These clients obviously have different auth flows.

  1. A JWT would be fine for the web application.
  2. Scripting users could also be asked to pass a JWT, maybe retrieved via a device auth flow or so?
  3. Not sure on this one.

@w-scho w-scho changed the title [EOEPCA/IAM] Integration of Resource Discovery BB [EOEPCA/IAM] Integration of Resource Discovery BB / STAC API (Q3) Jan 14, 2025
@w-scho w-scho changed the title [EOEPCA/IAM] Integration of Resource Discovery BB / STAC API (Q3) [EOEPCA/IAM] Integration of Resource Discovery BB / EOAPI (Q3) Jan 14, 2025
@w-scho
Copy link
Collaborator

w-scho commented Jan 14, 2025

A first APISIX route for the EOAPI has been provided. It contains subroutes to the four services that make up the EOAPI.
For the STAC API, it also distinguished between GET requests (unprotected) and other HTTP requests (protected).
The STAC API subroute has to be refined further, because not all non-GET requests should be protected. This refinement has been moved to Q4 and will be handled in a separate ticket.

@j08lue
Copy link
Contributor

j08lue commented Jan 14, 2025

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

No branches or pull requests

4 participants