- align/generic all features/documentation
- prometheus
- refactor naming of store/cache/etc
- force
EAS_ENCRYPT_IV_SECRET
parameter and document (FLUSHDB
in redis to clear all old sessions) - Add
EAS_ONE_POINT_ZERO
env var to ensure users have dealt with deprecated features
-
helm repo analogy for server-side config tokens store IDs
-
explore client-side
config_token
encryption (ie: pki encryption ofconfig_tokens
) -
look into support multiple
config_token
keys (ie: run external server as a service style setup) -
look into 'proper'
config_token
jwt encryption -
explore setting required scopes on a per-endpoint/verb basis (outside the backing service) and allowing the auth service to conditionally assert based on scopes in the jwt token
-
support better logic for original URI detection
Forwarded
header andX-Forwarded-For
, etc -
ensure sessions (guid) does not already exist however unlikely
-
implement logout (both local and with provider)
-
allow for run-time (ie: URL params) assertions
-
configuration for turning on/off redirects (probably a query param like
redirect_http_code
) (this may simply be a verify_strategy) -
nonce?
-
document proper annotations for common ingress controllers (traefik, nginx, ambassador, etc)
-
support for encyprted cookie
-
cookie as struct {id: foo, storage_type: cookie|backend}?
-
update to 3.x
openid-client
-
replace
jsonwebtoken
with@panva/jose
-
ensure empty body in responses
-
email link plugin
-
email code plugin
-
support for POST callback providers (can accept post requests on the
/oauth/callback
route and translate toGET
params) -
oauth2 providers
- Google default
- Azure
GitHub- GitLab
-
required plugins (ie: support multi-success pipepline)
-
update docker hub description/details/homepage/etc
-
note about contributing to the project
-
link to examples (config store/auth plugin) with simple explanation about requirements
-
redis config_token store
-
try/catch in invalid responseCode getting sent by a plugin
-
introduce options for csrf handling in
oauth2
/oidc
plugins? currently disabling csrf deletion due to bad nginx/envoy behavior -
endpoint where config data can be sent and the backend will sign/encrypt and respond with newly minted
config_token
(need to consider security implications etc of this) -
give a nice overview of architecture with a pretty graphic to give newcomers a easier overview
-
allow specifying a redirect URL for error response codes (ie: 404 -> some self hosted location, 503 -> some location with a pretty space etc)
-
https://www.npmjs.com/package/jq.node (new query engine for better performance than jq)
-
generic structure for various things
-
request data
-
auth data
-
config data
-
opa plugin
-
opa assertions
-
NODE_JQ_SKIP_INSTALL_BINARY=true
-
pass previous response to subsequent plugins' verify method
- further data available to header injection (
req
andparentRequestInfo
) - update header injection to use generic query function
- only get parentRequestInfo once in server.js and more performance enhancements
- store
state
server-side inoauth2
/oidc
plugins
Released 2022-01-11
- more robust control of
envoy
grpc
behavior (setting config_token/ports/proto via trusted metadata) - bump node version to
v16
(fromv12
)
Released 2021-07-29
- support for
envoy
(contour, etc) grpc external auth - support for running the http and grpc servers with native ssl
- support
handlebars
syntax for the variouscustom_foo_parameters
inoauth2
/oidc
- support
handlebars
as a newquery_engine
- bump various deps
- minor bug fixes
Released 2021-04-04
- fix scenario where
scope
property is not present intokenSet
#107
Released 2021-04-03
- support
filtered_service_headers
to remove some hard-coded default response headers
Released 2021-04-03
- support
custom_authorization_code_parameters
inoauth2
/oidc
- support
custom_refresh_parameters
inoauth2
/oidc
- support
custom_revoke_parameters
inoauth2
/oidc
- support
oauth2
/oidc
single logout (SLO)- revoke tokens when logout initiated within
eas
- end the session with the provider when logout initiated within
eas
backchannel_logout
support for logouts triggered at the provider
- revoke tokens when logout initiated within
- use multistage docker build process to shrink image size
- support
oidc
logic in thejwt
plugin - bump dependencies
Released 2020-08-17
fix issue with oidc introspection (see #84)dependency updates
Released 2020-04-16
update all dependenciesuse the same library foroauth2
/oidc
pluginsintroduceEAS_ENCRYPT_IV_SECRET
environment variable to addresscrypto.createCipher is deprecated.
update to node 12assertions onoidc
access_token
support token generation using docker
Released 2020-03-06
implementuse_referer_as_redirect_uri
foroidc
/oauth2
xhr
scenariosbetter support ingress-nginxdocument nginx-ingress-controller and ingress-nginx
Released 2020-02-29
support server-side tokens being stored decryptedsupport setting thehttpOnly
,secure
, andsameSite
flags onoauth2
/oidc
session/csrf cookiesallow for disabling thecsrf
cookie onoauth2
/oidc
support custom authorization URL parameters foroauth2
/oidc
support new endpoint to destroyoidc
/oauth2
sessions witheas
multi-arch docker imagessupport custom_error_headerssupport for custom redirect code for xhr requests inoidc
/oauth2
Released 2019-10-29
support dynamic server-side token/store id generationintroduce 2 newquery_engine
s -js
andjsonata
introducerequest_js
as new pluginensure helm chart only mounts specific file in /tmp leaving it writable (currently the node ca certs are being mounted and rendering it ro)new env variableEAS_ALLOW_EVAL
which enables the usage ofrequest_js
plugin and/or thejs
query_engine
Released 2019-08-19
support jwks forjwt
plugincache jwks keysdeprecate the/ambasador/*
endpoints and replace with/envoy/*
document warnings about exposing the service in service meshes where the service itself becomes fronted with authentication by itselfsupport specifying server-side tokens with URL params in addition to 'pointer' token
Released 2019-07-02
various ldap improvementsldap userinfo assertionssupport annotations for helm serviceinitial support for ambassador configurationupdate HOWTO helm example
Released 2019-06-26
fix ldap success response not setting http code properly
Released 2019-06-18
better helm example incorportatingredis-ha
explicitly disablenonce
checking foroidc
better parent request URI reconstruction for traefik edge-cases (prefix replacement, regex alterations)better documentation aroundoidc
andoauth2
sessions
Released 2019-06-15
support self-signed certsredis integration into helm chartnoop plugin to support simply doing header injectionconfig_token revocation (revoke specific jti's)
Released 2019-06-11
custom service headersserver-sideconfig_token
(s) to overcome URL length limits and centrally manage/updatefirebase_jwt pluginprometheus statssupport for arbitrary header names for thejwt
plugin (ie: non Authorization headers)
Released 2019-05-21
plugin pipelinemultiple authentication pluginscache discovery/issuer details(this is automatically handled by the client lib)support custom issuer endpointsuse key prefix for discovery and sessionssupport manual issuer configurationsupport client registrationrefresh access tokenchecks to see if refresh token is present or notconfiguration to enable refreshing access tokenconfiguration to enable userinfoconfiguration to enable refreshing userInfoconfiguration for cookie domainconfiguration for cookie pathconfiguration for scopesproper ttl for cached sessionsstate csrf cookie checksupport redis configurationbuild docker images and publish to docker hubsupport staticredirect_uri
for providers that do not support wildcardssupport/oauth/callback
handler for the staticredirect_uri
fixup refresh_access_token config option namefixup introspect access_token config option name?figure out why discovery requests are not being cached by the clientcache issuer and client objectsfigure out refresh token when URL has changedsupportuserinfo
for variousoauth2
providers using some kind of plugin systemallow for built-in assertions (config_token
,userinfo
)configuration for custom assertionsimplement proper logger solutionAuthorization header with id_token for kube-dashboardsupport static redirect URI (https://gitlab.com/gitlab-org/gitlab-ce/issues/48707)support RSA signing in addition to signing keyappropriately handle invalid/changed secrets for signing/encryptionsession expiry (true/false/seconds)userinfo expiry (true/false/seconds)cookie expiry (true/false/seconds)ldap pluginhtpasswd pluginrequest param/header pluginsjwt pluginensure all features are documenteddocument limitations when service provier only allows 1 active token per client_idactivity based session expiry (floating window sessions)jwt assertionsforward auth pluginassertion query enginespipeline circuit breakers (pcb
)