snapp-incubator / forward-ext-authz-service

A forward authentication / authorisation (authN) implementation of Envoy External Authorization (ext_authz), built with Contour, and Pomerium in mind.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

forward-ext-authz-service

A forward authentication / authorisation (authN) implementation of Envoy External Authorization (ext_authz), built with Contour, and Pomerium in mind.

This is still under development. It works, but use at your own risk.


Why do I need this?

  1. You are using an ingress controller
  2. You want to delegate authN to an external Identity and Access Management (IAM) solution (e.g. Keycloak, OAuth2 Proxy, Pomerium), and have it handle the entire authN flow (with redirects)
  3. The ingress controller does not directly support OAuth2, OpenID Connect (OIDC) OR any other integration with an external IAM solution you want to use (e.g. it may not implement ext_authz)
  4. The external IAM solution you want to use supports forward authN

If the answer is "yes" to all the above, this is where forward-ext-authz-service comes in.

It bridges the gap between an ingress controller which only supports ext_authz, and an external IAM solution that does not support ext_authz, but does support forward authN. Specifically, it was built with Contour, and Pomerium in mind.

Even if your ingress controller does support other non-Envoy authN options, you may want to consider using this as an alternative solution so that you can leverage the often simpler ext_authz integration instead.

TODO

  • Publish Docker image
  • Create sample Kubernetes manifests
  • Expand docs with diagram of authN flow

About

A forward authentication / authorisation (authN) implementation of Envoy External Authorization (ext_authz), built with Contour, and Pomerium in mind.

License:Other


Languages

Language:Go 94.8%Language:Dockerfile 5.2%