-
Notifications
You must be signed in to change notification settings - Fork 1
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
Implement ingress control distinguishing between GET and POST to eoapi/stac/collections #102
Comments
OK @j08lue , let's continue the Slack discussion here. |
The route returns correctly formatted JSON from the upstream service, so that is ok. But the garbled self links break clients that want to traverse the STAC object graph, like STAC Browser: https://radiantearth.github.io/stac-browser/#/external/eoapi.apx.develop.eoepca.org/stac/. I ticketed the issue here: But I think that is a STAC API specific thing and should not affect
No, all methods should remain open for |
Hi @j08lue. I just added |
Excellent, thank you! 💯 Let us know when there is any auth we can test for https://eoapi.apx.develop.eoepca.org/stac/api.html#/Transaction%20Extension |
The route config had a typo in the client name that broke the |
These actions on the We could either have a general "Platform Admin" group that could grant access to a lot of data and configuration management across building blocks. Or a "Data Access Admin" specific to this building block. Or "STAC Editor" just for this one purpose. Whatever feels most appropriate at this point. |
I think the most natural choice would be to create a "Data Access Admin" group and an associated "STAC Editor" role. This allows adding, removing or restructuring relevant groups without touching the ingress/ route and authZ configuration. I'll try to create an example setup this afternoon. |
I created a group called "Data Access Admin" and added user "eric" to it. I also created a client role named |
This sounds great, thanks! Btw, I realized that "Data Access Admin" is not accurate, since STAC administration is perhaps even more closely related to the Resource Discovery building block. So maybe "Resource Admin" would be better. But what you set up is fine for now. The next question is: What authN/authZ mechanisms are currently available to enable a user to There are two services that already want to try out connecting to the protected service - or at least plan how to do that:
Let us discuss this further on the relevant tickets. Are you planning to make any more changes to the current setup or will you document it anywhere, @w-scho? Otherwise, I'd consider this done! |
Well, and another next step would be to expand this auth to more routes and methods on the same |
The current status is that everything under the I renamed the group "Data Access Admin" to "Resource Admin." Regarding authentication: |
Right, yes, that needs to be more fine-grained to match the routes mentioned in the above ticket.
Yes, that OIDC / Authorization Code Flow sounds straightforward (for example here and here). Can we get permissions to register our client in KeyCloak, when our app is ready? Is the KeyCloak URL still https://iam-auth.apx.develop.eoepca.org? |
I think that I need some more details about the routes to protect or more exactly about the routes that are not listed in the ticket.
The overall complexity has an impact on the solution to be used. So far, we implemented a simple solution only based on APISIX capabilities, but we will probably have to change to an OPA- or Keycloak-based solution like the ones I suggested for the Workspace API. My preliminary assumption is that the OPA-/policy-based approach could work quite well. The Keycloak URL you mentioned is correct. So far Keycloak still redirects to https://iam-auth.develop.eoepca.org (without I can create/ register a client for you or I can grant permission for this to an existing user or client (like already done for Workspace BB). In order to grant permissions to a GitHub user, this user must have logged in to the IAM at least once so that Keycloak can map their identity. |
We want to try out how we can use the IAM building block to add authorization to relevant methods in the STAC API Transaction Extension.
The first step is to achieve the following behavior on the
eoapi/stac/collections
endpoint, using the tools available in the IAM building block (KeyCloak, API Gateway, policies):GET
requests are allowed anonymouslyPOST
requests require some form of authentication and authorizationAcceptance criteria
The text was updated successfully, but these errors were encountered: