opengeospatial / opengeospatial/ogcapi-processes

Ideas on providing authorization to access inputs

Open
#312 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
AsciiDoc
Stars
63
Forks
46
Avg merge
2d 1h
Merged PRs (30d)
8

Description

Description

I would like to gather ideas on how process inputs could be defined during execution to support authorization to access remote URL or S3 buckets.

When a process is protected by some policy enforcement point, the usual approach is to send HTTP Authorization or Set-Cookie headers to grant access. However, after the POST /processes/{id}/execution request was authorized, the inputs defined in the execution body could themselves be href to other locations that also require authorization, and which doesn't necessarily match the same HTTP authorization used to POST the execution. An obvious example would be a protected S3 bucket with files that would almost certainly have different access credentials than the server running the OGC API - Processes service.

One quick fix approach could be to employ additionalParameters in the corresponding input that requires this kind of authorization. The necessary structure of additional parameters is not obvious (nor standardized) however, considering there are also multiple ways to define authorizations (basic, bearer token, cookies, etc.). There is no clear way how those parameters should be defined and handled to form some HTTP Authorization header when requesting the file.
https://github.com/opengeospatial/ogcapi-processes/blob/bfaf8f087f554eba7b3d3ebe05a6eb138bf06d84/openapi/schemas/processes-core/descriptionType.yaml#L15-L23

Open Questions

  1. Would additionalParameters be the best strategy?
  2. If so, could OGC API - Processes provide recommendations and OpenAPI schema definitions on the expected formats?
  3. Has anybody used this additionalParameters approach to confirm it is viable?
  4. Otherwise, what other alternative would be possible, and what are the tradeoffs of their advantages/disadvantages?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with openapi/schemas/processes-core/descriptionType.yaml at the linked definition, then review how POST /processes/{id}/execution represents href inputs and additionalParameters. The issue asks for alternatives, authorization formats, schema recommendations, and tradeoffs, but does not define an implementation target or tests; done would require an agreed approach and explicit scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
openapi
Domain
api, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.