git.iko.soy/typeable/oauth2-proxy
on v4.1.0 help sign in
typeable/oauth2-proxy/CHANGELOG.md
264 lines 19 kB history raw
1# Vx.x.x (Pre-release)
3## Important Notes
5## Breaking Changes
7## Changes since v4.1.0
9# v4.1.0
11## Release Highlights
12- Added Keycloak provider
13- Build on Go 1.13
14- Upgrade Docker image to use Debian Buster
15- Added support for FreeBSD builds
16- Added new logo
17- Added support for GitHub teams
19## Important Notes
20N/A
22## Breaking Changes
23N/A
25## Changes since v4.0.0
26- [#292](https://github.com/pusher/oauth2_proxy/pull/292) Added bash >= 4.0 dependency to configure script (@jmfrank63)
27- [#227](https://github.com/pusher/oauth2_proxy/pull/227) Add Keycloak provider (@Ofinka)
28- [#259](https://github.com/pusher/oauth2_proxy/pull/259) Redirect to HTTPS (@jmickey)
29- [#273](https://github.com/pusher/oauth2_proxy/pull/273) Support Go 1.13 (@dio)
30- [#275](https://github.com/pusher/oauth2_proxy/pull/275) docker: build from debian buster (@syscll)
31- [#258](https://github.com/pusher/oauth2_proxy/pull/258) Add IDToken for Azure provider (@leyshon)
32 - 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)
33- [#286](https://github.com/pusher/oauth2_proxy/pull/286) Requests.go updated with useful error messages (@biotom)
34- [#274](https://github.com/pusher/oauth2_proxy/pull/274) Supports many github teams with api pagination support (@toshi-miura, @apratina)
35- [#302](https://github.com/pusher/oauth2_proxy/pull/302) Rewrite dist script (@syscll)
36- [#304](https://github.com/pusher/oauth2_proxy/pull/304) Add new Logo! :tada: (@JoelSpeed)
37- [#300](https://github.com/pusher/oauth2_proxy/pull/300) Added userinfo endpoint (@kbabuadze)
38- [#309](https://github.com/pusher/oauth2_proxy/pull/309) Added support for custom CA when connecting to Redis cache (@lleszczu)
39- [#248](https://github.com/pusher/oauth2_proxy/pull/248) Fix issue with X-Auth-Request-Redirect header being ignored (@webnard)
40- [#314](https://github.com/pusher/oauth2_proxy/pull/314) Add redirect capability to sign_out (@costelmoraru)
41- [#265](https://github.com/pusher/oauth2_proxy/pull/265) Add upstream with static response (@cgroschupp)
42- [#317](https://github.com/pusher/oauth2_proxy/pull/317) Add build for FreeBSD (@fnkr)
43- [#296](https://github.com/pusher/oauth2_proxy/pull/296) Allow to override provider's name for sign-in page (@ffdybuster)
45# v4.0.0
47## Release Highlights
48- Documentation is now on a [microsite](https://pusher.github.io/oauth2_proxy/)
49- Health check logging can now be disabled for quieter logs
50- Authorization Header JWTs can now be verified by the proxy to skip authentication for machine users
51- Sessions can now be stored in Redis. This reduces refresh failures and uses smaller cookies (Recommended for those using OIDC refreshing)
52- Logging overhaul allows customisable logging formats
54## Important Notes
55- This release includes a number of breaking changes that will require users to
56reconfigure their proxies. Please read the Breaking Changes below thoroughly.
58## Breaking Changes
60- [#231](https://github.com/pusher/oauth2_proxy/pull/231) Rework GitLab provider
61 - This PR changes the configuration options for the GitLab provider to use
62 a self-hosted instance. You now need to specify a `-oidc-issuer-url` rather than
63 explicit `-login-url`, `-redeem-url` and `-validate-url` parameters.
64- [#186](https://github.com/pusher/oauth2_proxy/pull/186) Make config consistent
65 - This PR changes configuration options so that all flags have a config counterpart
66 of the same name but with underscores (`_`) in place of hyphens (`-`).
67 This change affects the following flags:
68 - The `--tls-key` flag is now `--tls-key-file` to be consistent with existing
69 file flags and the existing config and environment settings
70 - The `--tls-cert` flag is now `--tls-cert-file` to be consistent with existing
71 file flags and the existing config and environment settings
72 This change affects the following existing configuration options:
73 - The `proxy-prefix` option is now `proxy_prefix`.
74 This PR changes environment variables so that all flags have an environment
75 counterpart of the same name but capitalised, with underscores (`_`) in place
76 of hyphens (`-`) and with the prefix `OAUTH2_PROXY_`.
77 This change affects the following existing environment variables:
78 - The `OAUTH2_SKIP_OIDC_DISCOVERY` environment variable is now `OAUTH2_PROXY_SKIP_OIDC_DISCOVERY`.
79 - The `OAUTH2_OIDC_JWKS_URL` environment variable is now `OAUTH2_PROXY_OIDC_JWKS_URL`.
80- [#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
81 - 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
82 a username.
83 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
84 the user's full email address instead.
85- [#170](https://github.com/pusher/oauth2_proxy/pull/170) Pre-built binary tarballs changed format
86 - The pre-built binary tarballs again match the format of the [bitly](https://github.com/bitly/oauth2_proxy) repository, where the unpacked directory
87 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
88 recipes like https://github.com/jhoblitt/puppet-oauth2_proxy.
90## Changes since v3.2.0
92- [#234](https://github.com/pusher/oauth2_proxy/pull/234) Added option `-ssl-upstream-insecure-skip-validation` to skip validation of upstream SSL certificates (@jansinger)
93- [#224](https://github.com/pusher/oauth2_proxy/pull/224) Check Google group membership using hasMember to support nested groups and external users (@jpalpant)
94- [#231](https://github.com/pusher/oauth2_proxy/pull/231) Add optional group membership and email domain checks to the GitLab provider (@Overv)
95- [#226](https://github.com/pusher/oauth2_proxy/pull/226) Made setting of proxied headers deterministic based on configuration alone (@aeijdenberg)
96- [#178](https://github.com/pusher/oauth2_proxy/pull/178) Add Silence Ping Logging and Exclude Logging Paths flags (@kskewes)
97- [#209](https://github.com/pusher/oauth2_proxy/pull/209) Improve docker build caching of layers (@dekimsey)
98- [#186](https://github.com/pusher/oauth2_proxy/pull/186) Make config consistent (@JoelSpeed)
99- [#187](https://github.com/pusher/oauth2_proxy/pull/187) Move root packages to pkg folder (@JoelSpeed)
100- [#65](https://github.com/pusher/oauth2_proxy/pull/65) Improvements to authenticate requests with a JWT bearer token in the `Authorization` header via
101 the `-skip-jwt-bearer-token` options. (@brianv0)
102 - 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
103 (e.g. `https://example.com/.well-known/jwks.json`).
104- [#180](https://github.com/pusher/oauth2_proxy/pull/180) Minor refactor of core proxying path (@aeijdenberg).
105- [#175](https://github.com/pusher/oauth2_proxy/pull/175) Bump go-oidc to v2.0.0 (@aeijdenberg).
106 - Includes fix for potential signature checking issue when OIDC discovery is skipped.
107- [#155](https://github.com/pusher/oauth2_proxy/pull/155) Add RedisSessionStore implementation (@brianv0, @JoelSpeed)
108 - Implement flags to configure the redis session store
109 - `-session-store-type=redis` Sets the store type to redis
110 - `-redis-connection-url` Sets the Redis connection URL
111 - `-redis-use-sentinel=true` Enables Redis Sentinel support
112 - `-redis-sentinel-master-name` Sets the Sentinel master name, if sentinel is enabled
113 - `-redis-sentinel-connection-urls` Defines the Redis Sentinel Connection URLs, if sentinel is enabled
114 - Introduces the concept of a session ticket. Tickets are composed of the cookie name, a session ID, and a secret.
115 - Redis Sessions are stored encrypted with a per-session secret
116 - Added tests for server based session stores
117- [#168](https://github.com/pusher/oauth2_proxy/pull/168) Drop Go 1.11 support in Travis (@JoelSpeed)
118- [#169](https://github.com/pusher/oauth2_proxy/pull/169) Update Alpine to 3.9 (@kskewes)
119- [#148](https://github.com/pusher/oauth2_proxy/pull/148) Implement SessionStore interface within proxy (@JoelSpeed)
120- [#147](https://github.com/pusher/oauth2_proxy/pull/147) Add SessionStore interfaces and initial implementation (@JoelSpeed)
121 - Allows for multiple different session storage implementations including client and server side
122 - Adds tests suite for interface to ensure consistency across implementations
123 - Refactor some configuration options (around cookies) into packages
124- [#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)
125- [#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)
126- [#144](https://github.com/pusher/oauth2_proxy/pull/144) Use GO 1.12 for ARM builds (@kskewes)
127- [#142](https://github.com/pusher/oauth2_proxy/pull/142) ARM Docker USER fix (@kskewes)
128- [#52](https://github.com/pusher/oauth2_proxy/pull/52) Logging Improvements (@MisterWil)
129 - Implement flags to configure file logging
130 - `-logging-filename` Defines the filename to log to
131 - `-logging-max-size` Defines the maximum
132 - `-logging-max-age` Defines the maximum age of backups to retain
133 - `-logging-max-backups` Defines the maximum number of rollover log files to retain
134 - `-logging-compress` Defines if rollover log files should be compressed
135 - `-logging-local-time` Defines if logging date and time should be local or UTC
136 - Implement two new flags to enable or disable specific logging types
137 - `-standard-logging` Enables or disables standard (not request or auth) logging
138 - `-auth-logging` Enables or disables auth logging
139 - Implement two new flags to customize the logging format
140 - `-standard-logging-format` Sets the format for standard logging
141 - `-auth-logging-format` Sets the format for auth logging
142- [#111](https://github.com/pusher/oauth2_proxy/pull/111) Add option for telling where to find a login.gov JWT key file (@timothy-spencer)
143- [#170](https://github.com/pusher/oauth2_proxy/pull/170) Restore binary tarball contents to be compatible with bitlys original tarballs (@zeha)
144- [#185](https://github.com/pusher/oauth2_proxy/pull/185) Fix an unsupported protocol scheme error during token validation when using the Azure provider (@jonas)
145- [#141](https://github.com/pusher/oauth2_proxy/pull/141) Check google group membership based on email address (@bchess)
146 - Google Group membership is additionally checked via email address, allowing users outside a GSuite domain to be authorized.
147- [#195](https://github.com/pusher/oauth2_proxy/pull/195) Add `-banner` flag for overriding the banner line that is displayed (@steakunderscore)
148- [#198](https://github.com/pusher/oauth2_proxy/pull/198) Switch from gometalinter to golangci-lint (@steakunderscore)
149- [#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)
150- [#210](https://github.com/pusher/oauth2_proxy/pull/210) Update base image from Alpine 3.9 to 3.10 (@steakunderscore)
151- [#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)
152 - Implement flags to enable Bitbucket authentication:
153 - `-bitbucket-repository` Restrict authorization to users that can access this repository
154 - `-bitbucket-team` Restrict authorization to users that are part of this Bitbucket team
155- [#211](https://github.com/pusher/oauth2_proxy/pull/211) Switch from dep to go modules (@steakunderscore)
156- [#145](https://github.com/pusher/oauth2_proxy/pull/145) Add support for OIDC UserInfo endpoint email verification (@rtluckie)
158# v3.2.0
160## Release highlights
161- Internal restructure of session state storage to use JSON rather than proprietary scheme
162- Added health check options for running on GCP behind a load balancer
163- Improved support for protecting websockets
164- Added provider for login.gov
165- Allow manual configuration of OIDC providers
167## Important notes
168- Dockerfile user is now non-root, this may break your existing deployment
169- In the OIDC provider, when no email is returned, the ID Token subject will be used
170instead of returning an error
171- GitHub user emails must now be primary and verified before authenticating
173## Changes since v3.1.0
175- [#96](https://github.com/bitly/oauth2_proxy/pull/96) Check if email is verified on GitHub (@caarlos0)
176- [#110](https://github.com/pusher/oauth2_proxy/pull/110) Added GCP healthcheck option (@timothy-spencer)
177- [#112](https://github.com/pusher/oauth2_proxy/pull/112) Improve websocket support (@gyson)
178- [#63](https://github.com/pusher/oauth2_proxy/pull/63) Use encoding/json for SessionState serialization (@yaegashi)
179 - Use JSON to encode session state to be stored in browser cookies
180 - Implement legacy decode function to support existing cookies generated by older versions
181 - Add detailed table driven tests in session_state_test.go
182- [#120](https://github.com/pusher/oauth2_proxy/pull/120) Encrypting user/email from cookie (@costelmoraru)
183- [#55](https://github.com/pusher/oauth2_proxy/pull/55) Added login.gov provider (@timothy-spencer)
184- [#55](https://github.com/pusher/oauth2_proxy/pull/55) Added environment variables for all config options (@timothy-spencer)
185- [#70](https://github.com/pusher/oauth2_proxy/pull/70) Fix handling of splitted cookies (@einfachchr)
186- [#92](https://github.com/pusher/oauth2_proxy/pull/92) Merge websocket proxy feature from openshift/oauth-proxy (@butzist)
187- [#57](https://github.com/pusher/oauth2_proxy/pull/57) Fall back to using OIDC Subject instead of Email (@aigarius)
188- [#85](https://github.com/pusher/oauth2_proxy/pull/85) Use non-root user in docker images (@kskewes)
189- [#68](https://github.com/pusher/oauth2_proxy/pull/68) forward X-Auth-Access-Token header (@davidholsgrove)
190- [#41](https://github.com/pusher/oauth2_proxy/pull/41) Added option to manually specify OIDC endpoints instead of relying on discovery
191- [#83](https://github.com/pusher/oauth2_proxy/pull/83) Add `id_token` refresh to Google provider (@leki75)
192- [#10](https://github.com/pusher/oauth2_proxy/pull/10) fix redirect url param handling (@dt-rush)
193- [#122](https://github.com/pusher/oauth2_proxy/pull/122) Expose -cookie-path as configuration parameter (@costelmoraru)
194- [#124](https://github.com/pusher/oauth2_proxy/pull/124) Use Go 1.12 for testing and build environments (@syscll)
196# v3.1.0
198## Release highlights
200- Introduction of ARM releases and and general improvements to Docker builds
201- Improvements to OIDC provider allowing pass-through of ID Tokens
202- Multiple redirect domains can now be whitelisted
203- Streamed responses are now flushed periodically
205## Important notes
207- If you have been using [#bitly/621](https://github.com/bitly/oauth2_proxy/pull/621)
208 and have cookies larger than the 4kb limit,
209 the cookie splitting pattern has changed and now uses `_` in place of `-` when
210 indexing cookies.
211 This will force users to reauthenticate the first time they use `v3.1.0`.
212- Streamed responses will now be flushed every 1 second by default.
213 Previously streamed responses were flushed only when the buffer was full.
214 To retain the old behaviour set `--flush-interval=0`.
215 See [#23](https://github.com/pusher/oauth2_proxy/pull/23) for further details.
217## Changes since v3.0.0
219- [#14](https://github.com/pusher/oauth2_proxy/pull/14) OIDC ID Token, Authorization Headers, Refreshing and Verification (@joelspeed)
220 - Implement `pass-authorization-header` and `set-authorization-header` flags
221 - Implement token refreshing in OIDC provider
222 - Split cookies larger than 4k limit into multiple cookies
223 - Implement token validation in OIDC provider
224- [#15](https://github.com/pusher/oauth2_proxy/pull/15) WhitelistDomains (@joelspeed)
225 - Add `--whitelist-domain` flag to allow redirection to approved domains after OAuth flow
226- [#21](https://github.com/pusher/oauth2_proxy/pull/21) Docker Improvement (@yaegashi)
227 - Move Docker base image from debian to alpine
228 - Install ca-certificates in docker image
229- [#23](https://github.com/pusher/oauth2_proxy/pull/23) Flushed streaming responses
230 - Long-running upstream responses will get flushed every <timeperiod> (1 second by default)
231- [#24](https://github.com/pusher/oauth2_proxy/pull/24) Redirect fix (@agentgonzo)
232 - After a successful login, you will be redirected to your original URL rather than /
233- [#35](https://github.com/pusher/oauth2_proxy/pull/35) arm and arm64 binary releases (@kskewes)
234 - Add armv6 and arm64 to Makefile `release` target
235- [#37](https://github.com/pusher/oauth2_proxy/pull/37) cross build arm and arm64 docker images (@kskewes)
237# v3.0.0
239Adoption of OAuth2_Proxy by Pusher.
240Project was hard forked and tidied however no logical changes have occurred since
241v2.2 as released by Bitly.
243## Changes since v2.2:
245- [#7](https://github.com/pusher/oauth2_proxy/pull/7) Migration to Pusher (@joelspeed)
246 - Move automated build to debian base image
247 - Add Makefile
248 - Update CI to run `make test`
249 - Update Dockerfile to use `make clean oauth2_proxy`
250 - Update `VERSION` parameter to be set by `ldflags` from Git Status
251 - Remove lint and test scripts
252 - Remove Go v1.8.x from Travis CI testing
253 - Add CODEOWNERS file
254 - Add CONTRIBUTING guide
255 - Add Issue and Pull Request templates
256 - Add Dockerfile
257 - Fix fsnotify import
258 - Update README to reflect new repository ownership
259 - Update CI scripts to separate linting and testing
260 - Now using `gometalinter` for linting
261 - Move Go import path from `github.com/bitly/oauth2_proxy` to `github.com/pusher/oauth2_proxy`
262 - Repository forked on 27/11/18
263 - README updated to include note that this repository is forked
264 - CHANGLOG created to track changes to repository from original fork