git.iko.soy/typeable/oauth2-proxy
on v5.1.1 help sign in
typeable/oauth2-proxy/CHANGELOG.md
344 lines 23 kB history raw
1# Vx.x.x (Pre-release)
3## Release Hightlights
5## Important Notes
7## Breaking Changes
9## Changes since v5.1.1
11# v5.1.1
13## Release Highlights
15N/A
17## Important Notes
19- (Security) Fix for [open redirect vulnerability](https://github.com/oauth2-proxy/oauth2-proxy/security/advisories/GHSA-j7px-6hwj-hpjg).
20 - A bad actor using encoded whitespace in redirect URIs can redirect a session to another domain
22## Breaking Changes
24N/A
26## Changes since v5.1.0
28- [GHSA-j7px-6hwj-hpjg](https://github.com/oauth2-proxy/oauth2-proxy/security/advisories/GHSA-j7px-6hwj-hpjg) Fix Open Redirect Vulnerability with encoded Whitespace characters (@JoelSpeed)
30# v5.1.0
32## Release Hightlights
33- Bump to Go 1.14
34- Reduced number of Google API requests for group validation
35- Support for Redis Cluster
36- Support for overriding hosts in hosts file
38## Important Notes
39- [#335] The session expiry for the OIDC provider is now taken from the Token Response (expires_in) rather than from the id_token (exp)
41## Breaking Changes
42N/A
44## Changes since v5.0.0
46- [#450](https://github.com/pusher/oauth2_proxy/pull/450) Fix http.Cookie SameSite is not copied (@johejo)
47- [#445](https://github.com/pusher/oauth2_proxy/pull/445) Expose `acr_values` to all providers (@holyjak)
48- [#419](https://github.com/pusher/oauth2_proxy/pull/419) Support Go 1.14, upgrade dependencies, upgrade golangci-lint to 1.23.6 (@johejo)
49- [#444](https://github.com/pusher/oauth2_proxy/pull/444) Support prompt in addition to approval-prompt (@holyjak)
50- [#435](https://github.com/pusher/oauth2_proxy/pull/435) Fix issue with group validation calling google directory API on every HTTP request (@ericofusco)
51- [#400](https://github.com/pusher/oauth2_proxy/pull/400) Add `nsswitch.conf` to Docker image to allow hosts file to work (@luketainton)
52- [#385](https://github.com/pusher/oauth2_proxy/pull/385) Use the `Authorization` header instead of `access_token` for refreshing GitHub Provider sessions (@ibuclaw)
53- [#372](https://github.com/pusher/oauth2_proxy/pull/372) Allow fallback to secondary verified email address in GitHub provider (@dmnemec)
54- [#335](https://github.com/pusher/oauth2_proxy/pull/335) OIDC Provider support for empty id_tokens in the access token refresh response (@howzat)
55- [#363](https://github.com/pusher/oauth2_proxy/pull/363) Extension of Redis Session Store to Support Redis Cluster (@yan-dblinf)
56- [#353](https://github.com/pusher/oauth2_proxy/pull/353) Fix login page fragment handling after soft reload on Firefox (@ffdybuster)
57- [#355](https://github.com/pusher/oauth2_proxy/pull/355) Add Client Secret File support for providers that rotate client secret via file system (@pasha-r)
58- [#401](https://github.com/pusher/oauth2_proxy/pull/401) Give the option to pass email address in the Basic auth header instead of upstream usernames. (@Spindel)
59- [#405](https://github.com/pusher/oauth2_proxy/pull/405) The `/sign_in` page now honors the `rd` query parameter, fixing the redirect after a successful authentication (@ti-mo)
60- [#434](https://github.com/pusher/oauth2_proxy/pull/434) Give the option to prefer email address in the username header when using the -pass-user-headers option (@jordancrawfordnz)
62# v5.0.0
64## Release Hightlights
65- Disabled CGO (binaries will work regardless og glibc/musl)
66- Allow whitelisted redirect ports
67- Nextcloud provider support added
68- DigitalOcean provider support added
70## Important Notes
71- (Security) Fix for [open redirect vulnerability](https://github.com/pusher/oauth2_proxy/security/advisories/GHSA-qqxw-m5fj-f7gv).. a bad actor using `/\` in redirect URIs can redirect a session to another domain
73## Breaking Changes
75- [#321](https://github.com/pusher/oauth2_proxy/pull/331) Add reverse proxy boolean flag to control whether headers like `X-Real-Ip` are accepted.
76 This defaults to false. **Usage behind a reverse proxy will require this flag to be set to avoid logging the reverse proxy IP address**.
78## Changes since v4.1.0
80- [#331](https://github.com/pusher/oauth2_proxy/pull/331) Add reverse proxy setting (@martin-css)
81- [#365](https://github.com/pusher/oauth2_proxy/pull/365) Build with CGO=0 (@tomelliff)
82- [#339](https://github.com/pusher/oauth2_proxy/pull/339) Add configuration for cookie 'SameSite' value. (@pgroudas)
83- [#347](https://github.com/pusher/oauth2_proxy/pull/347) Update keycloak provider configuration documentation. (@sushiMix)
84- [#325](https://github.com/pusher/oauth2_proxy/pull/325) dist.sh: use sha256sum (@syscll)
85- [#179](https://github.com/pusher/oauth2_proxy/pull/179) Add Nextcloud provider (@Ramblurr)
86- [#280](https://github.com/pusher/oauth2_proxy/pull/280) whitelisted redirect domains: add support for whitelisting specific ports or allowing wildcard ports (@kamaln7)
87- [#351](https://github.com/pusher/oauth2_proxy/pull/351) Add DigitalOcean Auth provider (@kamaln7)
89# v4.1.0
91## Release Highlights
92- Added Keycloak provider
93- Build on Go 1.13
94- Upgrade Docker image to use Debian Buster
95- Added support for FreeBSD builds
96- Added new logo
97- Added support for GitHub teams
99## Important Notes
100N/A
102## Breaking Changes
103N/A
105## Changes since v4.0.0
106- [#292](https://github.com/pusher/oauth2_proxy/pull/292) Added bash >= 4.0 dependency to configure script (@jmfrank63)
107- [#227](https://github.com/pusher/oauth2_proxy/pull/227) Add Keycloak provider (@Ofinka)
108- [#259](https://github.com/pusher/oauth2_proxy/pull/259) Redirect to HTTPS (@jmickey)
109- [#273](https://github.com/pusher/oauth2_proxy/pull/273) Support Go 1.13 (@dio)
110- [#275](https://github.com/pusher/oauth2_proxy/pull/275) docker: build from debian buster (@syscll)
111- [#258](https://github.com/pusher/oauth2_proxy/pull/258) Add IDToken for Azure provider (@leyshon)
112 - This PR adds the IDToken into the session for the Azure provider allowing requests to a backend to be identified as a specific user. As a consequence, if you are using a cookie to store the session the cookie will now exceed the 4kb size limit and be split into multiple cookies. This can cause problems when using nginx as a proxy, resulting in no cookie being passed at all. Either increase the proxy_buffer_size in nginx or implement the redis session storage (see https://pusher.github.io/oauth2_proxy/configuration#redis-storage)
113- [#286](https://github.com/pusher/oauth2_proxy/pull/286) Requests.go updated with useful error messages (@biotom)
114- [#274](https://github.com/pusher/oauth2_proxy/pull/274) Supports many github teams with api pagination support (@toshi-miura, @apratina)
115- [#302](https://github.com/pusher/oauth2_proxy/pull/302) Rewrite dist script (@syscll)
116- [#304](https://github.com/pusher/oauth2_proxy/pull/304) Add new Logo! :tada: (@JoelSpeed)
117- [#300](https://github.com/pusher/oauth2_proxy/pull/300) Added userinfo endpoint (@kbabuadze)
118- [#309](https://github.com/pusher/oauth2_proxy/pull/309) Added support for custom CA when connecting to Redis cache (@lleszczu)
119- [#248](https://github.com/pusher/oauth2_proxy/pull/248) Fix issue with X-Auth-Request-Redirect header being ignored (@webnard)
120- [#314](https://github.com/pusher/oauth2_proxy/pull/314) Add redirect capability to sign_out (@costelmoraru)
121- [#265](https://github.com/pusher/oauth2_proxy/pull/265) Add upstream with static response (@cgroschupp)
122- [#317](https://github.com/pusher/oauth2_proxy/pull/317) Add build for FreeBSD (@fnkr)
123- [#296](https://github.com/pusher/oauth2_proxy/pull/296) Allow to override provider's name for sign-in page (@ffdybuster)
125# v4.0.0
127## Release Highlights
128- Documentation is now on a [microsite](https://pusher.github.io/oauth2_proxy/)
129- Health check logging can now be disabled for quieter logs
130- Authorization Header JWTs can now be verified by the proxy to skip authentication for machine users
131- Sessions can now be stored in Redis. This reduces refresh failures and uses smaller cookies (Recommended for those using OIDC refreshing)
132- Logging overhaul allows customisable logging formats
134## Important Notes
135- This release includes a number of breaking changes that will require users to
136reconfigure their proxies. Please read the Breaking Changes below thoroughly.
138## Breaking Changes
140- [#231](https://github.com/pusher/oauth2_proxy/pull/231) Rework GitLab provider
141 - This PR changes the configuration options for the GitLab provider to use
142 a self-hosted instance. You now need to specify a `-oidc-issuer-url` rather than
143 explicit `-login-url`, `-redeem-url` and `-validate-url` parameters.
144- [#186](https://github.com/pusher/oauth2_proxy/pull/186) Make config consistent
145 - This PR changes configuration options so that all flags have a config counterpart
146 of the same name but with underscores (`_`) in place of hyphens (`-`).
147 This change affects the following flags:
148 - The `--tls-key` flag is now `--tls-key-file` to be consistent with existing
149 file flags and the existing config and environment settings
150 - The `--tls-cert` flag is now `--tls-cert-file` to be consistent with existing
151 file flags and the existing config and environment settings
152 This change affects the following existing configuration options:
153 - The `proxy-prefix` option is now `proxy_prefix`.
154 This PR changes environment variables so that all flags have an environment
155 counterpart of the same name but capitalised, with underscores (`_`) in place
156 of hyphens (`-`) and with the prefix `OAUTH2_PROXY_`.
157 This change affects the following existing environment variables:
158 - The `OAUTH2_SKIP_OIDC_DISCOVERY` environment variable is now `OAUTH2_PROXY_SKIP_OIDC_DISCOVERY`.
159 - The `OAUTH2_OIDC_JWKS_URL` environment variable is now `OAUTH2_PROXY_OIDC_JWKS_URL`.
160- [#146](https://github.com/pusher/oauth2_proxy/pull/146) Use full email address as `User` if the auth response did not contain a `User` field
161 - This change modifies the contents of the `X-Forwarded-User` header supplied by the proxy for users where the auth response from the IdP did not contain
162 a username.
163 In that case, this header used to only contain the local part of the user's email address (e.g. `john.doe` for `john.doe@example.com`) but now contains
164 the user's full email address instead.
165- [#170](https://github.com/pusher/oauth2_proxy/pull/170) Pre-built binary tarballs changed format
166 - The pre-built binary tarballs again match the format of the [bitly](https://github.com/bitly/oauth2_proxy) repository, where the unpacked directory
167 has the same name as the tarball and the binary is always named `oauth2_proxy`. This was done to restore compatibility with third-party automation
168 recipes like https://github.com/jhoblitt/puppet-oauth2_proxy.
170## Changes since v3.2.0
172- [#234](https://github.com/pusher/oauth2_proxy/pull/234) Added option `-ssl-upstream-insecure-skip-validation` to skip validation of upstream SSL certificates (@jansinger)
173- [#224](https://github.com/pusher/oauth2_proxy/pull/224) Check Google group membership using hasMember to support nested groups and external users (@jpalpant)
174- [#231](https://github.com/pusher/oauth2_proxy/pull/231) Add optional group membership and email domain checks to the GitLab provider (@Overv)
175- [#226](https://github.com/pusher/oauth2_proxy/pull/226) Made setting of proxied headers deterministic based on configuration alone (@aeijdenberg)
176- [#178](https://github.com/pusher/oauth2_proxy/pull/178) Add Silence Ping Logging and Exclude Logging Paths flags (@kskewes)
177- [#209](https://github.com/pusher/oauth2_proxy/pull/209) Improve docker build caching of layers (@dekimsey)
178- [#186](https://github.com/pusher/oauth2_proxy/pull/186) Make config consistent (@JoelSpeed)
179- [#187](https://github.com/pusher/oauth2_proxy/pull/187) Move root packages to pkg folder (@JoelSpeed)
180- [#65](https://github.com/pusher/oauth2_proxy/pull/65) Improvements to authenticate requests with a JWT bearer token in the `Authorization` header via
181 the `-skip-jwt-bearer-token` options. (@brianv0)
182 - Additional verifiers can be configured via the `-extra-jwt-issuers` flag if the JWT issuers is either an OpenID provider or has a JWKS URL
183 (e.g. `https://example.com/.well-known/jwks.json`).
184- [#180](https://github.com/pusher/oauth2_proxy/pull/180) Minor refactor of core proxying path (@aeijdenberg).
185- [#175](https://github.com/pusher/oauth2_proxy/pull/175) Bump go-oidc to v2.0.0 (@aeijdenberg).
186 - Includes fix for potential signature checking issue when OIDC discovery is skipped.
187- [#155](https://github.com/pusher/oauth2_proxy/pull/155) Add RedisSessionStore implementation (@brianv0, @JoelSpeed)
188 - Implement flags to configure the redis session store
189 - `-session-store-type=redis` Sets the store type to redis
190 - `-redis-connection-url` Sets the Redis connection URL
191 - `-redis-use-sentinel=true` Enables Redis Sentinel support
192 - `-redis-sentinel-master-name` Sets the Sentinel master name, if sentinel is enabled
193 - `-redis-sentinel-connection-urls` Defines the Redis Sentinel Connection URLs, if sentinel is enabled
194 - Introduces the concept of a session ticket. Tickets are composed of the cookie name, a session ID, and a secret.
195 - Redis Sessions are stored encrypted with a per-session secret
196 - Added tests for server based session stores
197- [#168](https://github.com/pusher/oauth2_proxy/pull/168) Drop Go 1.11 support in Travis (@JoelSpeed)
198- [#169](https://github.com/pusher/oauth2_proxy/pull/169) Update Alpine to 3.9 (@kskewes)
199- [#148](https://github.com/pusher/oauth2_proxy/pull/148) Implement SessionStore interface within proxy (@JoelSpeed)
200- [#147](https://github.com/pusher/oauth2_proxy/pull/147) Add SessionStore interfaces and initial implementation (@JoelSpeed)
201 - Allows for multiple different session storage implementations including client and server side
202 - Adds tests suite for interface to ensure consistency across implementations
203 - Refactor some configuration options (around cookies) into packages
204- [#114](https://github.com/pusher/oauth2_proxy/pull/114), [#154](https://github.com/pusher/oauth2_proxy/pull/154) Documentation is now available live at our [docs website](https://pusher.github.io/oauth2_proxy/) (@JoelSpeed, @icelynjennings)
205- [#146](https://github.com/pusher/oauth2_proxy/pull/146) Use full email address as `User` if the auth response did not contain a `User` field (@gargath)
206- [#144](https://github.com/pusher/oauth2_proxy/pull/144) Use GO 1.12 for ARM builds (@kskewes)
207- [#142](https://github.com/pusher/oauth2_proxy/pull/142) ARM Docker USER fix (@kskewes)
208- [#52](https://github.com/pusher/oauth2_proxy/pull/52) Logging Improvements (@MisterWil)
209 - Implement flags to configure file logging
210 - `-logging-filename` Defines the filename to log to
211 - `-logging-max-size` Defines the maximum
212 - `-logging-max-age` Defines the maximum age of backups to retain
213 - `-logging-max-backups` Defines the maximum number of rollover log files to retain
214 - `-logging-compress` Defines if rollover log files should be compressed
215 - `-logging-local-time` Defines if logging date and time should be local or UTC
216 - Implement two new flags to enable or disable specific logging types
217 - `-standard-logging` Enables or disables standard (not request or auth) logging
218 - `-auth-logging` Enables or disables auth logging
219 - Implement two new flags to customize the logging format
220 - `-standard-logging-format` Sets the format for standard logging
221 - `-auth-logging-format` Sets the format for auth logging
222- [#111](https://github.com/pusher/oauth2_proxy/pull/111) Add option for telling where to find a login.gov JWT key file (@timothy-spencer)
223- [#170](https://github.com/pusher/oauth2_proxy/pull/170) Restore binary tarball contents to be compatible with bitlys original tarballs (@zeha)
224- [#185](https://github.com/pusher/oauth2_proxy/pull/185) Fix an unsupported protocol scheme error during token validation when using the Azure provider (@jonas)
225- [#141](https://github.com/pusher/oauth2_proxy/pull/141) Check google group membership based on email address (@bchess)
226 - Google Group membership is additionally checked via email address, allowing users outside a GSuite domain to be authorized.
227- [#195](https://github.com/pusher/oauth2_proxy/pull/195) Add `-banner` flag for overriding the banner line that is displayed (@steakunderscore)
228- [#198](https://github.com/pusher/oauth2_proxy/pull/198) Switch from gometalinter to golangci-lint (@steakunderscore)
229- [#159](https://github.com/pusher/oauth2_proxy/pull/159) Add option to skip the OIDC provider verified email check: `--insecure-oidc-allow-unverified-email` (@djfinlay)
230- [#210](https://github.com/pusher/oauth2_proxy/pull/210) Update base image from Alpine 3.9 to 3.10 (@steakunderscore)
231- [#201](https://github.com/pusher/oauth2_proxy/pull/201) Add Bitbucket as new OAuth2 provider, accepts email, team and repository permissions to determine authorization (@aledeganopix4d)
232 - Implement flags to enable Bitbucket authentication:
233 - `-bitbucket-repository` Restrict authorization to users that can access this repository
234 - `-bitbucket-team` Restrict authorization to users that are part of this Bitbucket team
235- [#211](https://github.com/pusher/oauth2_proxy/pull/211) Switch from dep to go modules (@steakunderscore)
236- [#145](https://github.com/pusher/oauth2_proxy/pull/145) Add support for OIDC UserInfo endpoint email verification (@rtluckie)
238# v3.2.0
240## Release highlights
241- Internal restructure of session state storage to use JSON rather than proprietary scheme
242- Added health check options for running on GCP behind a load balancer
243- Improved support for protecting websockets
244- Added provider for login.gov
245- Allow manual configuration of OIDC providers
247## Important notes
248- Dockerfile user is now non-root, this may break your existing deployment
249- In the OIDC provider, when no email is returned, the ID Token subject will be used
250instead of returning an error
251- GitHub user emails must now be primary and verified before authenticating
253## Changes since v3.1.0
255- [#96](https://github.com/bitly/oauth2_proxy/pull/96) Check if email is verified on GitHub (@caarlos0)
256- [#110](https://github.com/pusher/oauth2_proxy/pull/110) Added GCP healthcheck option (@timothy-spencer)
257- [#112](https://github.com/pusher/oauth2_proxy/pull/112) Improve websocket support (@gyson)
258- [#63](https://github.com/pusher/oauth2_proxy/pull/63) Use encoding/json for SessionState serialization (@yaegashi)
259 - Use JSON to encode session state to be stored in browser cookies
260 - Implement legacy decode function to support existing cookies generated by older versions
261 - Add detailed table driven tests in session_state_test.go
262- [#120](https://github.com/pusher/oauth2_proxy/pull/120) Encrypting user/email from cookie (@costelmoraru)
263- [#55](https://github.com/pusher/oauth2_proxy/pull/55) Added login.gov provider (@timothy-spencer)
264- [#55](https://github.com/pusher/oauth2_proxy/pull/55) Added environment variables for all config options (@timothy-spencer)
265- [#70](https://github.com/pusher/oauth2_proxy/pull/70) Fix handling of splitted cookies (@einfachchr)
266- [#92](https://github.com/pusher/oauth2_proxy/pull/92) Merge websocket proxy feature from openshift/oauth-proxy (@butzist)
267- [#57](https://github.com/pusher/oauth2_proxy/pull/57) Fall back to using OIDC Subject instead of Email (@aigarius)
268- [#85](https://github.com/pusher/oauth2_proxy/pull/85) Use non-root user in docker images (@kskewes)
269- [#68](https://github.com/pusher/oauth2_proxy/pull/68) forward X-Auth-Access-Token header (@davidholsgrove)
270- [#41](https://github.com/pusher/oauth2_proxy/pull/41) Added option to manually specify OIDC endpoints instead of relying on discovery
271- [#83](https://github.com/pusher/oauth2_proxy/pull/83) Add `id_token` refresh to Google provider (@leki75)
272- [#10](https://github.com/pusher/oauth2_proxy/pull/10) fix redirect url param handling (@dt-rush)
273- [#122](https://github.com/pusher/oauth2_proxy/pull/122) Expose -cookie-path as configuration parameter (@costelmoraru)
274- [#124](https://github.com/pusher/oauth2_proxy/pull/124) Use Go 1.12 for testing and build environments (@syscll)
276# v3.1.0
278## Release highlights
280- Introduction of ARM releases and and general improvements to Docker builds
281- Improvements to OIDC provider allowing pass-through of ID Tokens
282- Multiple redirect domains can now be whitelisted
283- Streamed responses are now flushed periodically
285## Important notes
287- If you have been using [#bitly/621](https://github.com/bitly/oauth2_proxy/pull/621)
288 and have cookies larger than the 4kb limit,
289 the cookie splitting pattern has changed and now uses `_` in place of `-` when
290 indexing cookies.
291 This will force users to reauthenticate the first time they use `v3.1.0`.
292- Streamed responses will now be flushed every 1 second by default.
293 Previously streamed responses were flushed only when the buffer was full.
294 To retain the old behaviour set `--flush-interval=0`.
295 See [#23](https://github.com/pusher/oauth2_proxy/pull/23) for further details.
297## Changes since v3.0.0
299- [#14](https://github.com/pusher/oauth2_proxy/pull/14) OIDC ID Token, Authorization Headers, Refreshing and Verification (@joelspeed)
300 - Implement `pass-authorization-header` and `set-authorization-header` flags
301 - Implement token refreshing in OIDC provider
302 - Split cookies larger than 4k limit into multiple cookies
303 - Implement token validation in OIDC provider
304- [#15](https://github.com/pusher/oauth2_proxy/pull/15) WhitelistDomains (@joelspeed)
305 - Add `--whitelist-domain` flag to allow redirection to approved domains after OAuth flow
306- [#21](https://github.com/pusher/oauth2_proxy/pull/21) Docker Improvement (@yaegashi)
307 - Move Docker base image from debian to alpine
308 - Install ca-certificates in docker image
309- [#23](https://github.com/pusher/oauth2_proxy/pull/23) Flushed streaming responses
310 - Long-running upstream responses will get flushed every <timeperiod> (1 second by default)
311- [#24](https://github.com/pusher/oauth2_proxy/pull/24) Redirect fix (@agentgonzo)
312 - After a successful login, you will be redirected to your original URL rather than /
313- [#35](https://github.com/pusher/oauth2_proxy/pull/35) arm and arm64 binary releases (@kskewes)
314 - Add armv6 and arm64 to Makefile `release` target
315- [#37](https://github.com/pusher/oauth2_proxy/pull/37) cross build arm and arm64 docker images (@kskewes)
317# v3.0.0
319Adoption of OAuth2_Proxy by Pusher.
320Project was hard forked and tidied however no logical changes have occurred since
321v2.2 as released by Bitly.
323## Changes since v2.2:
325- [#7](https://github.com/pusher/oauth2_proxy/pull/7) Migration to Pusher (@joelspeed)
326 - Move automated build to debian base image
327 - Add Makefile
328 - Update CI to run `make test`
329 - Update Dockerfile to use `make clean oauth2_proxy`
330 - Update `VERSION` parameter to be set by `ldflags` from Git Status
331 - Remove lint and test scripts
332 - Remove Go v1.8.x from Travis CI testing
333 - Add CODEOWNERS file
334 - Add CONTRIBUTING guide
335 - Add Issue and Pull Request templates
336 - Add Dockerfile
337 - Fix fsnotify import
338 - Update README to reflect new repository ownership
339 - Update CI scripts to separate linting and testing
340 - Now using `gometalinter` for linting
341 - Move Go import path from `github.com/bitly/oauth2_proxy` to `github.com/pusher/oauth2_proxy`
342 - Repository forked on 27/11/18
343 - README updated to include note that this repository is forked
344 - CHANGLOG created to track changes to repository from original fork