Skip to content

Latest commit

 

History

History
129 lines (93 loc) · 5.04 KB

DEVELOPMENT.md

File metadata and controls

129 lines (93 loc) · 5.04 KB

Plugins

Creating new plugins requires minimal effort. See the example for details.

Design

Really tring to alleviate the following primary challenges:

  • needing to deploy an additional proxy (oauth2_proxy, keycloak-gatekeeper, etc)
  • static configurations
  • issuer/provider specific implementations
  • reverse proxy specific implementations
  • inability to make complex assertions on the claims/tokens

Development goals:

  • maintain original host/port/path for all callbacks to ensure return to the proper location (callbacks detected by setting GET param on original URI with query stripped)
  • signed: ensures only trusted apps/proxies can use the service
  • encrypted: allows for identity operators to hide client_{id,secret} (and other configuration options) from reverse proxy operators
  • config aud: ensures users cannot use token (cookie) from one configuration/site and use it with another

https://medium.com/hal24k-techblog/multitenancy-on-kubernetes-with-istio-external-authentication-server-and-openid-connect-33e02544e0db

Challenges

kong-oidc

  • not cache'ing the discovery docs
  • does not allow for deeper validation on iss/groups/other attrs/etc
  • redirect_uri when set on multiple hosts/routes becomes difficult (nokia/kong-oidc#118)
  • not generic to work with all proxies

oauth2_proxy

  • cumbersome to deploy and intrusive to the overall process (sidecars in kubernetes, etc)
  • must be deployed unique to each service (ie, new deployment of the proxy for each client_id and client_secret etc)

Ideas

Links

contour

ambassador

ingress-nginx

nginx-ingress-controller