Zappa icon indicating copy to clipboard operation
Zappa copied to clipboard

Add support for authorizer REQUEST type

Open ppartarr opened this issue 4 years ago • 5 comments

Description

AWS gateway supports the use of Lambda authorizers to perform authorization (grant access to certain resources) based on a given authentication strategy (OpenID connect, basic auth, SAML etc). AWS Gateway offers two kinds of authorizers: REQUEST & TOKEN.

TOKEN authorizers receive the bearer token, like a JWT or a OAuth token.

REQUEST authorizers receive a combination of headers, query strings, stage variables and context variables.

Zappa only supports TOKEN authorizers, which is quite limiting since some authentication schemes may depend on information provided in the request.

This PR adds support for REQUEST authorizers. The authorizer config now takes a new type field as well as an identity_sources object which can be a combination of the various request expressions needed for the REQUEST authorizer (header, query string, stage variable, or context). We don't explicity support multi stage variable since fields can appear multiple times e.g.

"authorizer": {
  "type": "REQUEST",
  "function": "auth.lambda_handler",
  "identity_sources": {
    "headers": ["Authorization", "Host"],
    "stage_variables": ["prod", "dev"]
  },
}

For backwards compatibility, if the type of an authorizer is not specified, it defaults to TOKEN.

GitHub Issues

https://github.com/zappa/Zappa/issues/847 https://github.com/Miserlou/Zappa/issues/1159

ppartarr avatar Feb 25 '22 16:02 ppartarr

@hellno @javulticat @wrboyce can this PR get a review?

ppartarr avatar Feb 28 '22 13:02 ppartarr

@ppartarr Can you check why this is failing? You may need need to run make isort / make black.

monkut avatar Nov 12 '22 01:11 monkut

Hi there! Unfortunately, this PR has not seen any activity for at least 90 days. If the PR is still relevant to the latest version of Zappa, please comment within the next 10 days if you wish to keep it open. Otherwise, it will be automatically closed.

github-actions[bot] avatar Apr 03 '24 18:04 github-actions[bot]

Hi there! Unfortunately, this PR was automatically closed as it had not seen any activity in at least 100 days. If the PR is still relevant to the latest version of Zappa, please open a new PR.

github-actions[bot] avatar Apr 13 '24 20:04 github-actions[bot]