From 90a6915ab15a92793d44b00a3b9a79b4633e7799 Mon Sep 17 00:00:00 2001 From: Dan Bond Date: Fri, 25 Oct 2019 13:47:28 -0700 Subject: [PATCH 01/15] fix bad grammar in upstreams configuration docs --- docs/configuration/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration/configuration.md b/docs/configuration/configuration.md index 332c2238..2f5d049a 100644 --- a/docs/configuration/configuration.md +++ b/docs/configuration/configuration.md @@ -117,7 +117,7 @@ See below for provider specific options ### Upstreams Configuration -`oauth2_proxy` supports having multiple upstreams, and has the option to pass requests on to HTTP(S) servers or serve static files from the file system. HTTP and HTTPS upstreams are configured by providing a URL such as `http://127.0.0.1:8080/` for the upstream parameter, that will forward all authenticated requests to be forwarded to the upstream server. If you instead provide `http://127.0.0.1:8080/some/path/` then it will only be requests that start with `/some/path/` which are forwarded to the upstream. +`oauth2_proxy` supports having multiple upstreams, and has the option to pass requests on to HTTP(S) servers or serve static files from the file system. HTTP and HTTPS upstreams are configured by providing a URL such as `http://127.0.0.1:8080/` for the upstream parameter, this will forward all authenticated requests to the upstream server. If you instead provide `http://127.0.0.1:8080/some/path/` then it will only be requests that start with `/some/path/` which are forwarded to the upstream. Static file paths are configured as a file:// URL. `file:///var/www/static/` will serve the files from that directory at `http://[oauth2_proxy url]/var/www/static/`, which may not be what you want. You can provide the path to where the files should be available by adding a fragment to the configured URL. The value of the fragment will then be used to specify which path the files are available at. `file:///var/www/static/#/static/` will ie. make `/var/www/static/` available at `http://[oauth2_proxy url]/static/`. From 292d2dc639368e2f969132e11b03b0ec05498cb2 Mon Sep 17 00:00:00 2001 From: Johannes-Maria Frank Date: Mon, 28 Oct 2019 16:39:22 +0000 Subject: [PATCH 02/15] Added version check for bash version gteq 4 (#292) * Added version check for bash version gteq 4 * Added entry to CHANGELOG for bash 4.0 configure script dependency * Corrected changelog entry to right format * Fixed link in changelog entry * Remove uneeded new line. --- CHANGELOG.md | 2 +- configure | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a3281f1..0dab5dea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Vx.x.x (Pre-release) ## Changes since v4.0.0 - +- [#291][https://github.com/pusher/oauth2_proxy/pull/291] Added bash >= 4.0 dependency to configure script (@jmfrank63) - [#227](https://github.com/pusher/oauth2_proxy/pull/227) Add Keycloak provider (@Ofinka) - [#259](https://github.com/pusher/oauth2_proxy/pull/259) Redirect to HTTPS (@jmickey) - [#273](https://github.com/pusher/oauth2_proxy/pull/273) Support Go 1.13 (@dio) diff --git a/configure b/configure index 26db8fea..10af15e6 100755 --- a/configure +++ b/configure @@ -5,6 +5,10 @@ GREEN='\033[0;32m' BLUE='\033[0;34m' NC='\033[0m' +if [ -z "${BASH_VERSINFO}" ] || [ -z "${BASH_VERSINFO[0]}" ] || [ ${BASH_VERSINFO[0]} -lt 4 ]; then + echo "This script requires Bash version >= 4"; exit 1; +fi + declare -A tools=() declare -A desired=() From ba21c90c7a8fa2a780991fd61a218cc91a859b27 Mon Sep 17 00:00:00 2001 From: Dan Bond Date: Mon, 28 Oct 2019 10:42:43 -0700 Subject: [PATCH 03/15] fix broken changelog link (#301) * fix broken changelog link * Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dab5dea..730ee08e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Vx.x.x (Pre-release) ## Changes since v4.0.0 -- [#291][https://github.com/pusher/oauth2_proxy/pull/291] Added bash >= 4.0 dependency to configure script (@jmfrank63) +- [#292](https://github.com/pusher/oauth2_proxy/pull/292) Added bash >= 4.0 dependency to configure script (@jmfrank63) - [#227](https://github.com/pusher/oauth2_proxy/pull/227) Add Keycloak provider (@Ofinka) - [#259](https://github.com/pusher/oauth2_proxy/pull/259) Redirect to HTTPS (@jmickey) - [#273](https://github.com/pusher/oauth2_proxy/pull/273) Support Go 1.13 (@dio) From f40dab87480d9a140fe9098e21dc928eade98c63 Mon Sep 17 00:00:00 2001 From: Dan Bond Date: Tue, 29 Oct 2019 10:27:08 -0700 Subject: [PATCH 04/15] Rewrite dist script (#302) * Rewrite dist scripts * add changelog entry * remove multiple loops in dist * styling --- CHANGELOG.md | 1 + Makefile | 27 +------------- dist.sh | 83 +++++++++++++++++++++--------------------- docs/1_installation.md | 6 +-- 4 files changed, 47 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 730ee08e..87a6c5ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - [#258](https://github.com/pusher/oauth2_proxy/pull/258) Add IDToken for Azure provider - 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) - [#286](https://github.com/pusher/oauth2_proxy/pull/286) Requests.go updated with useful error messages (@biotom) +- [#302](https://github.com/pusher/oauth2_proxy/pull/302) Rewrite dist script (@syscll) # v4.0.0 diff --git a/Makefile b/Makefile index 18283f94..f0f83b44 100644 --- a/Makefile +++ b/Makefile @@ -61,29 +61,4 @@ test: lint .PHONY: release release: lint test - mkdir release - mkdir release/$(BINARY)-$(VERSION).darwin-amd64.$(GO_VERSION) - mkdir release/$(BINARY)-$(VERSION).linux-amd64.$(GO_VERSION) - mkdir release/$(BINARY)-$(VERSION).linux-arm64.$(GO_VERSION) - mkdir release/$(BINARY)-$(VERSION).linux-armv6.$(GO_VERSION) - mkdir release/$(BINARY)-$(VERSION).windows-amd64.$(GO_VERSION) - GO111MODULE=on GOOS=darwin GOARCH=amd64 go build -ldflags="-X main.VERSION=${VERSION}" \ - -o release/$(BINARY)-$(VERSION).darwin-amd64.$(GO_VERSION)/$(BINARY) github.com/pusher/oauth2_proxy - GO111MODULE=on GOOS=linux GOARCH=amd64 go build -ldflags="-X main.VERSION=${VERSION}" \ - -o release/$(BINARY)-$(VERSION).linux-amd64.$(GO_VERSION)/$(BINARY) github.com/pusher/oauth2_proxy - GO111MODULE=on GOOS=linux GOARCH=arm64 go build -ldflags="-X main.VERSION=${VERSION}" \ - -o release/$(BINARY)-$(VERSION).linux-arm64.$(GO_VERSION)/$(BINARY) github.com/pusher/oauth2_proxy - GO111MODULE=on GOOS=linux GOARCH=arm GOARM=6 go build -ldflags="-X main.VERSION=${VERSION}" \ - -o release/$(BINARY)-$(VERSION).linux-armv6.$(GO_VERSION)/$(BINARY) github.com/pusher/oauth2_proxy - GO111MODULE=on GOOS=windows GOARCH=amd64 go build -ldflags="-X main.VERSION=${VERSION}" \ - -o release/$(BINARY)-$(VERSION).windows-amd64.$(GO_VERSION)/$(BINARY) github.com/pusher/oauth2_proxy - shasum -a 256 release/$(BINARY)-$(VERSION).darwin-amd64.$(GO_VERSION)/$(BINARY) > release/$(BINARY)-$(VERSION).darwin-amd64-sha256sum.txt - shasum -a 256 release/$(BINARY)-$(VERSION).linux-amd64.$(GO_VERSION)/$(BINARY) > release/$(BINARY)-$(VERSION).linux-amd64-sha256sum.txt - shasum -a 256 release/$(BINARY)-$(VERSION).linux-arm64.$(GO_VERSION)/$(BINARY) > release/$(BINARY)-$(VERSION).linux-arm64-sha256sum.txt - shasum -a 256 release/$(BINARY)-$(VERSION).linux-armv6.$(GO_VERSION)/$(BINARY) > release/$(BINARY)-$(VERSION).linux-armv6-sha256sum.txt - shasum -a 256 release/$(BINARY)-$(VERSION).windows-amd64.$(GO_VERSION)/$(BINARY) > release/$(BINARY)-$(VERSION).windows-amd64-sha256sum.txt - tar -C release -czvf release/$(BINARY)-$(VERSION).darwin-amd64.$(GO_VERSION).tar.gz $(BINARY)-$(VERSION).darwin-amd64.$(GO_VERSION) - tar -C release -czvf release/$(BINARY)-$(VERSION).linux-amd64.$(GO_VERSION).tar.gz $(BINARY)-$(VERSION).linux-amd64.$(GO_VERSION) - tar -C release -czvf release/$(BINARY)-$(VERSION).linux-arm64.$(GO_VERSION).tar.gz $(BINARY)-$(VERSION).linux-arm64.$(GO_VERSION) - tar -C release -czvf release/$(BINARY)-$(VERSION).linux-armv6.$(GO_VERSION).tar.gz $(BINARY)-$(VERSION).linux-armv6.$(GO_VERSION) - tar -C release -czvf release/$(BINARY)-$(VERSION).windows-amd64.$(GO_VERSION).tar.gz $(BINARY)-$(VERSION).windows-amd64.$(GO_VERSION) + BINARY=${BINARY} VERSION=${VERSION} ./dist.sh diff --git a/dist.sh b/dist.sh index a00318bb..e5be8180 100755 --- a/dist.sh +++ b/dist.sh @@ -1,45 +1,46 @@ -#!/bin/bash -# build binary distributions for linux/amd64 and darwin/amd64 -set -e +#!/usr/bin/env bash -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -echo "working dir $DIR" -mkdir -p $DIR/dist -dep ensure || exit 1 +set -o errexit -os=$(go env GOOS) -arch=$(go env GOARCH) -version=$(cat $DIR/version.go | grep "const VERSION" | awk '{print $NF}' | sed 's/"//g') -goversion=$(go version | awk '{print $3}') -sha256sum=() - -echo "... running tests" -./test.sh - -for os in windows linux darwin; do - echo "... building v$version for $os/$arch" - EXT= - if [ $os = windows ]; then - EXT=".exe" - fi - BUILD=$(mktemp -d ${TMPDIR:-/tmp}/oauth2_proxy.XXXXXX) - TARGET="oauth2_proxy-$version.$os-$arch.$goversion" - FILENAME="oauth2_proxy-$version.$os-$arch$EXT" - GOOS=$os GOARCH=$arch CGO_ENABLED=0 \ - go build -ldflags="-s -w" -o $BUILD/$TARGET/$FILENAME || exit 1 - pushd $BUILD/$TARGET - sha256sum+=("$(shasum -a 256 $FILENAME || exit 1)") - cd .. && tar czvf $TARGET.tar.gz $TARGET - mv $TARGET.tar.gz $DIR/dist - popd -done - -checksum_file="sha256sum.txt" -cd $DIR/dist -if [ -f $checksum_file ]; then - rm $checksum_file +if [[ -z ${BINARY} ]] || [[ -z ${VERSION} ]]; then + echo "Missing required env var: BINARY=X VERSION=X $(basename $0)" + exit 1 fi -touch $checksum_file -for checksum in "${sha256sum[@]}"; do - echo "$checksum" >> $checksum_file + +# Check for Go version 1.13.* +GO_VERSION=$(go version | awk '{print $3}') +if [[ ! "${GO_VERSION}" =~ ^go1.13.* ]]; then + echo "Go version must be >= go1.13" + exit 1 +fi + +ARCHS=(darwin-amd64 linux-amd64 linux-arm64 linux-armv6 windows-amd64) + +mkdir -p release + +# Create architecture specific release dirs +for ARCH in "${ARCHS[@]}"; do + mkdir -p release/${BINARY}-${VERSION}.${ARCH}.${GO_VERSION} + + GO_OS=$(echo $ARCH | awk -F- '{print $1}') + GO_ARCH=$(echo $ARCH | awk -F- '{print $2}') + + # Create architecture specific binaries + if [[ ${GO_ARCH} == "armv6" ]]; then + GO111MODULE=on GOOS=${GO_OS} GOARCH=arm GOARM=6 go build -ldflags="-X main.VERSION=${VERSION}" \ + -o release/${BINARY}-${VERSION}.${ARCH}.${GO_VERSION}/${BINARY} github.com/pusher/oauth2_proxy + else + GO111MODULE=on GOOS=${GO_OS} GOARCH=${GO_ARCH} go build -ldflags="-X main.VERSION=${VERSION}" \ + -o release/${BINARY}-${VERSION}.${ARCH}.${GO_VERSION}/${BINARY} github.com/pusher/oauth2_proxy + fi + + cd release + + # Create sha256sum for architecture specific binary + shasum -a 256 ${BINARY}-${VERSION}.${ARCH}.${GO_VERSION}/${BINARY} > ${BINARY}-${VERSION}.${ARCH}-sha256sum.txt + + # Create tar file for architecture specific binary + tar -czvf ${BINARY}-${VERSION}.${ARCH}.${GO_VERSION}.tar.gz ${BINARY}-${VERSION}.${ARCH}.${GO_VERSION} + + cd .. done diff --git a/docs/1_installation.md b/docs/1_installation.md index 9eb3939f..8ed72b81 100644 --- a/docs/1_installation.md +++ b/docs/1_installation.md @@ -9,7 +9,7 @@ nav_order: 1 1. Choose how to deploy: - a. Download [Prebuilt Binary](https://github.com/pusher/oauth2_proxy/releases) (current release is `v3.2.0`) + a. Download [Prebuilt Binary](https://github.com/pusher/oauth2_proxy/releases) (current release is `v4.0.0`) b. Build with `$ go get github.com/pusher/oauth2_proxy` which will put the binary in `$GOROOT/bin` @@ -18,8 +18,8 @@ nav_order: 1 Prebuilt binaries can be validated by extracting the file and verifying it against the `sha256sum.txt` checksum file provided for each release starting with version `v3.0.0`. ``` -sha256sum -c sha256sum.txt 2>&1 | grep OK -oauth2_proxy-3.2.0.linux-amd64: OK +$ sha256sum -c sha256sum.txt 2>&1 | grep OK +oauth2_proxy-4.0.0.linux-amd64: OK ``` 2. [Select a Provider and Register an OAuth Application with a Provider](auth-configuration) From 14601093c4f783d75ef580b8fac1b85a7f235c3f Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Wed, 30 Oct 2019 09:57:24 +0000 Subject: [PATCH 05/15] Add logos to docs folder --- docs/logos/OAuth2_Proxy_horizontal.png | Bin 0 -> 110827 bytes docs/logos/OAuth2_Proxy_horizontal.svg | 1 + docs/logos/OAuth2_Proxy_icon.png | Bin 0 -> 47842 bytes docs/logos/OAuth2_Proxy_icon.svg | 1 + docs/logos/OAuth2_Proxy_vertical.png | Bin 0 -> 56575 bytes docs/logos/OAuth2_Proxy_vertical.svg | 1 + 6 files changed, 3 insertions(+) create mode 100644 docs/logos/OAuth2_Proxy_horizontal.png create mode 100644 docs/logos/OAuth2_Proxy_horizontal.svg create mode 100644 docs/logos/OAuth2_Proxy_icon.png create mode 100644 docs/logos/OAuth2_Proxy_icon.svg create mode 100644 docs/logos/OAuth2_Proxy_vertical.png create mode 100644 docs/logos/OAuth2_Proxy_vertical.svg diff --git a/docs/logos/OAuth2_Proxy_horizontal.png b/docs/logos/OAuth2_Proxy_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..1020c52db79ad511ad06af09328b65b8653e7cdc GIT binary patch literal 110827 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 \ No newline at end of file diff --git a/docs/logos/OAuth2_Proxy_icon.png b/docs/logos/OAuth2_Proxy_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..720f4ce367043774a480fc634d9cafb6dc499c4b GIT binary patch literal 47842 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 K#<_<{5&r{1W>;hY literal 0 HcmV?d00001 diff --git a/docs/logos/OAuth2_Proxy_icon.svg b/docs/logos/OAuth2_Proxy_icon.svg new file mode 100644 index 00000000..5b0837f9 --- /dev/null +++ b/docs/logos/OAuth2_Proxy_icon.svg @@ -0,0 +1 @@ +OAuth2_Proxy_logo_v3 \ No newline at end of file diff --git a/docs/logos/OAuth2_Proxy_vertical.png b/docs/logos/OAuth2_Proxy_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..994cd0b7c99d028b24e93dc43b82c31180bc8ec1 GIT binary patch literal 56575 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 YZm3jh@7~&pB$DF3hR&T5b(_%t16v24P5=M^ literal 0 HcmV?d00001 diff --git a/docs/logos/OAuth2_Proxy_vertical.svg b/docs/logos/OAuth2_Proxy_vertical.svg new file mode 100644 index 00000000..bf48ab0f --- /dev/null +++ b/docs/logos/OAuth2_Proxy_vertical.svg @@ -0,0 +1 @@ +OAuth2_Proxy_logo_v3 \ No newline at end of file From acb0d3ab797be699912aeef50212c273cb79913e Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Wed, 30 Oct 2019 10:04:29 +0000 Subject: [PATCH 06/15] Add logo to docs site --- docs/0_index.md | 2 +- docs/_config.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/0_index.md b/docs/0_index.md index 376bd754..e0e3227d 100644 --- a/docs/0_index.md +++ b/docs/0_index.md @@ -5,7 +5,7 @@ permalink: / nav_order: 0 --- -# oauth2_proxy +![OAuth2 Proxy](/logos/OAuth2_Proxy_horizontal.svg) A reverse proxy and static file server that provides authentication using Providers (Google, GitHub, and others) to validate accounts by email, domain or group. diff --git a/docs/_config.yml b/docs/_config.yml index 87f026c8..a53e9e14 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -14,6 +14,7 @@ # You can create any custom variable you would like, and they will be accessible # in the templates via {{ site.myvariable }}. title: OAuth2_Proxy +logo: /logos/OAuth2_Proxy_horizontal.svg description: >- # this means to ignore newlines until "baseurl:" OAuth2_Proxy documentation site baseurl: "/oauth2_proxy" # the subpath of your site, e.g. /blog From bb8b6c0d51deee4d3f50a19d38c0f1f878869c6f Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Wed, 30 Oct 2019 10:04:41 +0000 Subject: [PATCH 07/15] Add logo to ReadMe --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 09fde41e..daae04cc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# oauth2_proxy +![OAuth2 Proxy](/docs/logos/OAuth2_Proxy_horizontal.svg) [![Build Status](https://secure.travis-ci.org/pusher/oauth2_proxy.svg?branch=master)](http://travis-ci.org/pusher/oauth2_proxy) [![Go Report Card](https://goreportcard.com/badge/github.com/pusher/oauth2_proxy)](https://goreportcard.com/report/github.com/pusher/oauth2_proxy) From 0df5a77c53aa413cfe119ac02514e322d3bb2eca Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Wed, 30 Oct 2019 10:25:51 +0000 Subject: [PATCH 08/15] Update changlog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87a6c5ac..d72f4565 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - 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) - [#286](https://github.com/pusher/oauth2_proxy/pull/286) Requests.go updated with useful error messages (@biotom) - [#302](https://github.com/pusher/oauth2_proxy/pull/302) Rewrite dist script (@syscll) +- [#304](https://github.com/pusher/oauth2_proxy/pull/304) Add new Logo! :tada: (@JoelSpeed) # v4.0.0 From 2a07983a36d3eef9d1ddd80a54440fc01d4e084c Mon Sep 17 00:00:00 2001 From: Kimball Leavitt Date: Tue, 5 Nov 2019 19:39:10 -0700 Subject: [PATCH 09/15] Add bash completion script (#307) * added bash completion script * added install instructions for bash completion --- contrib/oauth2_proxy_autocomplete.sh | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 contrib/oauth2_proxy_autocomplete.sh diff --git a/contrib/oauth2_proxy_autocomplete.sh b/contrib/oauth2_proxy_autocomplete.sh new file mode 100644 index 00000000..fd9d87a4 --- /dev/null +++ b/contrib/oauth2_proxy_autocomplete.sh @@ -0,0 +1,30 @@ +# +# Autocompletion for oauth2_proxy +# +# To install this, copy/move this file to /etc/bash.completion.d/ +# or add a line to your ~/.bashrc | ~/.bash_profile that says ". /path/to/oauth2_proxy/contrib/oauth2_proxy_autocomplete.sh" +# + +_oauth2_proxy() { + _oauth2_proxy_commands=$(oauth2_proxy -h 2>&1 | sed -n '/^\s*-/s/ \+/ /gp' | awk '{print $1}' | tr '\n' ' ') + local cur prev + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + case "$prev" in + -@(config|tls-cert-file|tls-key-file|authenticated-emails-file|htpasswd-file|custom-templates-dir|logging-filename|jwt-key-file)) + _filedir + return 0 + ;; + -provider) + COMPREPLY=( $(compgen -W "google azure facebook github keycloak gitlab linkedin login.gov" -- ${cur}) ) + return 0 + ;; + -@(http-address|https-address|redirect-url|upstream|basic-auth-password|skip-auth-regex|flush-interval|extra-jwt-issuers|email-domain|whitelist-domain|keycloak-group|azure-tenant|bitbucket-team|bitbucket-repository|github-org|github-team|gitlab-group|google-group|google-admin-email|google-service-account-json|client-id|client_secret|banner|footer|proxy-prefix|ping-path|cookie-name|cookie-secret|cookie-domain|cookie-path|cookie-expire|cookie-refresh|redist-sentinel-master-name|redist-sentinel-connection-urls|logging-max-size|logging-max-age|logging-max-backups|standard-logging-format|request-logging-format|exclude-logging-paths|auth-logging-format|oidc-issuer-url|oidc-jwks-url|login-url|redeem-url|profile-url|resource|validate-url|scope|approval-prompt|signature-key|acr-values|jwt-key|pubjwk-url)) + return 0 + ;; + esac + COMPREPLY=( $(compgen -W "${_oauth2_proxy_commands}" -- ${cur}) ) + return 0; +} +complete -F _oauth2_proxy oauth2_proxy From fef940da9a9034ff296d999c3e377a33c20359fa Mon Sep 17 00:00:00 2001 From: Konstantine Date: Fri, 8 Nov 2019 00:38:36 +0200 Subject: [PATCH 10/15] Added userinfo endpoint (#300) * Added userinfo endpoint * Added documentation for the userinfo endpoint * Update oauthproxy.go Co-Authored-By: Dan Bond * Suggested fixes : Streaming json to rw , header set after error check * Update oauthproxy.go Co-Authored-By: Dan Bond * fix session.Email * Ported tests and updated changelog --- CHANGELOG.md | 1 + docs/5_endpoints.md | 1 + oauthproxy.go | 21 +++++++++++++++++++++ oauthproxy_test.go | 26 ++++++++++++++++++++++++++ 4 files changed, 49 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d72f4565..556beca4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - [#286](https://github.com/pusher/oauth2_proxy/pull/286) Requests.go updated with useful error messages (@biotom) - [#302](https://github.com/pusher/oauth2_proxy/pull/302) Rewrite dist script (@syscll) - [#304](https://github.com/pusher/oauth2_proxy/pull/304) Add new Logo! :tada: (@JoelSpeed) +- [#300](https://github.com/pusher/oauth2_proxy/pull/300) Added userinfo endpoint (@kbabuadze) # v4.0.0 diff --git a/docs/5_endpoints.md b/docs/5_endpoints.md index 6733cb14..75b8f16f 100644 --- a/docs/5_endpoints.md +++ b/docs/5_endpoints.md @@ -14,4 +14,5 @@ OAuth2 Proxy responds directly to the following endpoints. All other endpoints w - /oauth2/sign_in - the login page, which also doubles as a sign out page (it clears cookies) - /oauth2/start - a URL that will redirect to start the OAuth cycle - /oauth2/callback - the URL used at the end of the OAuth cycle. The oauth app will be configured with this as the callback url. +- /oauth2/userinfo - the URL is used to return user's email from the session in JSON format. - /oauth2/auth - only returns a 202 Accepted response or a 401 Unauthorized response; for use with the [Nginx `auth_request` directive](#nginx-auth-request) diff --git a/oauthproxy.go b/oauthproxy.go index 01c18c39..3c665db7 100644 --- a/oauthproxy.go +++ b/oauthproxy.go @@ -4,6 +4,7 @@ import ( "context" "crypto/tls" b64 "encoding/base64" + "encoding/json" "errors" "fmt" "html/template" @@ -75,6 +76,7 @@ type OAuthProxy struct { OAuthStartPath string OAuthCallbackPath string AuthOnlyPath string + UserInfoPath string redirectURL *url.URL // the url to receive requests at whitelistDomains []string @@ -266,6 +268,7 @@ func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthProxy { OAuthStartPath: fmt.Sprintf("%s/start", opts.ProxyPrefix), OAuthCallbackPath: fmt.Sprintf("%s/callback", opts.ProxyPrefix), AuthOnlyPath: fmt.Sprintf("%s/auth", opts.ProxyPrefix), + UserInfoPath: fmt.Sprintf("%s/userinfo", opts.ProxyPrefix), ProxyPrefix: opts.ProxyPrefix, provider: opts.provider, @@ -557,6 +560,8 @@ func (p *OAuthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { p.OAuthCallback(rw, req) case path == p.AuthOnlyPath: p.AuthenticateOnly(rw, req) + case path == p.UserInfoPath: + p.UserInfo(rw, req) default: p.Proxy(rw, req) } @@ -585,6 +590,22 @@ func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) { } } +//UserInfo endpoint outputs session email in JSON format +func (p *OAuthProxy) UserInfo(rw http.ResponseWriter, req *http.Request) { + + session, err := p.getAuthenticatedSession(rw, req) + if err != nil { + http.Error(rw, http.StatusText(http.StatusUnauthorized), http.StatusUnauthorized) + return + } + userInfo := struct { + Email string `json:"email"` + }{session.Email} + rw.Header().Set("Content-Type", "application/json") + rw.WriteHeader(http.StatusOK) + json.NewEncoder(rw).Encode(userInfo) +} + // SignOut sends a response to clear the authentication cookie func (p *OAuthProxy) SignOut(rw http.ResponseWriter, req *http.Request) { p.ClearSessionCookie(rw, req) diff --git a/oauthproxy_test.go b/oauthproxy_test.go index 8dd3adfb..ce56e8a3 100644 --- a/oauthproxy_test.go +++ b/oauthproxy_test.go @@ -746,6 +746,32 @@ func TestProcessCookieFailIfRefreshSetAndCookieExpired(t *testing.T) { } } +func NewUserInfoEndpointTest() *ProcessCookieTest { + pcTest := NewProcessCookieTestWithDefaults() + pcTest.req, _ = http.NewRequest("GET", + pcTest.opts.ProxyPrefix+"/userinfo", nil) + return pcTest +} + +func TestUserInfoEndpointAccepted(t *testing.T) { + test := NewUserInfoEndpointTest() + startSession := &sessions.SessionState{ + Email: "john.doe@example.com", AccessToken: "my_access_token"} + test.SaveSession(startSession) + + test.proxy.ServeHTTP(test.rw, test.req) + assert.Equal(t, http.StatusOK, test.rw.Code) + bodyBytes, _ := ioutil.ReadAll(test.rw.Body) + assert.Equal(t, "{\"email\":\"john.doe@example.com\"}\n", string(bodyBytes)) +} + +func TestUserInfoEndpointUnauthorizedOnNoCookieSetError(t *testing.T) { + test := NewUserInfoEndpointTest() + + test.proxy.ServeHTTP(test.rw, test.req) + assert.Equal(t, http.StatusUnauthorized, test.rw.Code) +} + func NewAuthOnlyEndpointTest(modifiers ...OptionsModifier) *ProcessCookieTest { pcTest := NewProcessCookieTestWithOptionsModifiers(modifiers...) pcTest.req, _ = http.NewRequest("GET", From 3f7ed36e4643c4ca78121c8292d1fdbfac040825 Mon Sep 17 00:00:00 2001 From: Lukasz Leszczuk Date: Thu, 7 Nov 2019 11:04:40 +0100 Subject: [PATCH 11/15] Add support for Redis with custom CA. --- main.go | 2 ++ pkg/apis/options/sessions.go | 2 ++ pkg/sessions/redis/redis_store.go | 25 +++++++++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/main.go b/main.go index e84a796e..6943f508 100644 --- a/main.go +++ b/main.go @@ -91,6 +91,8 @@ func main() { flagSet.String("redis-connection-url", "", "URL of redis server for redis session storage (eg: redis://HOST[:PORT])") flagSet.Bool("redis-use-sentinel", false, "Connect to redis via sentinels. Must set --redis-sentinel-master-name and --redis-sentinel-connection-urls to use this feature") flagSet.String("redis-sentinel-master-name", "", "Redis sentinel master name. Used in conjunction with --redis-use-sentinel") + flagSet.String("redis-ca-path", "", "Redis custom CA path") + flagSet.Bool("redis-insecure-tls", false, "Use insecure TLS connection to redis") flagSet.Var(&redisSentinelConnectionURLs, "redis-sentinel-connection-urls", "List of Redis sentinel connection URLs (eg redis://HOST[:PORT]). Used in conjunction with --redis-use-sentinel") flagSet.String("logging-filename", "", "File to log requests to, empty for stdout") diff --git a/pkg/apis/options/sessions.go b/pkg/apis/options/sessions.go index c96d490c..d4bb585f 100644 --- a/pkg/apis/options/sessions.go +++ b/pkg/apis/options/sessions.go @@ -27,4 +27,6 @@ type RedisStoreOptions struct { UseSentinel bool `flag:"redis-use-sentinel" cfg:"redis_use_sentinel" env:"OAUTH2_PROXY_REDIS_USE_SENTINEL"` SentinelMasterName string `flag:"redis-sentinel-master-name" cfg:"redis_sentinel_master_name" env:"OAUTH2_PROXY_REDIS_SENTINEL_MASTER_NAME"` SentinelConnectionURLs []string `flag:"redis-sentinel-connection-urls" cfg:"redis_sentinel_connection_urls" env:"OAUTH2_PROXY_REDIS_SENTINEL_CONNECTION_URLS"` + RedisCAPath string `flag:"redis-ca-path" cfg:"redis_ca_path" env:"OAUTH2_PROXY_REDIS_CA_PATH"` + RedisInsecureTLS bool `flag:"redis-insecure-tls" cfg:"redis_insecure_tls" env:"OAUTH2_PROXY_REDIS_INSECURE_TLS"` } diff --git a/pkg/sessions/redis/redis_store.go b/pkg/sessions/redis/redis_store.go index ed33d72d..0efa47d0 100644 --- a/pkg/sessions/redis/redis_store.go +++ b/pkg/sessions/redis/redis_store.go @@ -4,10 +4,13 @@ import ( "crypto/aes" "crypto/cipher" "crypto/rand" + "crypto/x509" "encoding/base64" "encoding/hex" "fmt" + "github.com/pusher/oauth2_proxy/pkg/logger" "io" + "io/ioutil" "net/http" "strings" "time" @@ -64,6 +67,28 @@ func newRedisClient(opts options.RedisStoreOptions) (*redis.Client, error) { return nil, fmt.Errorf("unable to parse redis url: %s", err) } + if opts.RedisInsecureTLS != false { + opt.TLSConfig.InsecureSkipVerify = true + } + + if opts.RedisCAPath != "" { + rootCAs, _ := x509.SystemCertPool() + if rootCAs == nil { + rootCAs = x509.NewCertPool() + } + certs, err := ioutil.ReadFile(opts.RedisCAPath) + if err != nil { + return nil, fmt.Errorf("failed to load %q, %v", opts.RedisCAPath, err) + } + + // Append our cert to the system pool + if ok := rootCAs.AppendCertsFromPEM(certs); !ok { + logger.Printf("no certs appended, using system certs only") + } + + opt.TLSConfig.RootCAs = rootCAs + } + client := redis.NewClient(opt) return client, nil } From 3c10aee62c8fde64cf19a747e6495fe57b1b8744 Mon Sep 17 00:00:00 2001 From: Lukasz Leszczuk Date: Sat, 9 Nov 2019 13:57:40 +0100 Subject: [PATCH 12/15] Code formatting. Add missing CHANGELOG entry. --- CHANGELOG.md | 2 +- pkg/sessions/redis/redis_store.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 556beca4..7b4dc975 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - [#302](https://github.com/pusher/oauth2_proxy/pull/302) Rewrite dist script (@syscll) - [#304](https://github.com/pusher/oauth2_proxy/pull/304) Add new Logo! :tada: (@JoelSpeed) - [#300](https://github.com/pusher/oauth2_proxy/pull/300) Added userinfo endpoint (@kbabuadze) - +- [#309](https://github.com/pusher/oauth2_proxy/pull/309) Added support for custom CA when connecting to Redis cache # v4.0.0 - [#248](https://github.com/pusher/oauth2_proxy/pull/248) Fix issue with X-Auth-Request-Redirect header being ignored diff --git a/pkg/sessions/redis/redis_store.go b/pkg/sessions/redis/redis_store.go index 0efa47d0..a0f331b7 100644 --- a/pkg/sessions/redis/redis_store.go +++ b/pkg/sessions/redis/redis_store.go @@ -8,7 +8,6 @@ import ( "encoding/base64" "encoding/hex" "fmt" - "github.com/pusher/oauth2_proxy/pkg/logger" "io" "io/ioutil" "net/http" @@ -20,6 +19,7 @@ import ( "github.com/pusher/oauth2_proxy/pkg/apis/sessions" "github.com/pusher/oauth2_proxy/pkg/cookies" "github.com/pusher/oauth2_proxy/pkg/encryption" + "github.com/pusher/oauth2_proxy/pkg/logger" ) // TicketData is a structure representing the ticket used in server session storage From d7a51e4aabf649f2f96df0a1cf8a56743bd02123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Leszczuk?= Date: Tue, 12 Nov 2019 11:34:14 +0100 Subject: [PATCH 13/15] Update main.go Co-Authored-By: Joel Speed --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 6943f508..7cf562bd 100644 --- a/main.go +++ b/main.go @@ -92,7 +92,7 @@ func main() { flagSet.Bool("redis-use-sentinel", false, "Connect to redis via sentinels. Must set --redis-sentinel-master-name and --redis-sentinel-connection-urls to use this feature") flagSet.String("redis-sentinel-master-name", "", "Redis sentinel master name. Used in conjunction with --redis-use-sentinel") flagSet.String("redis-ca-path", "", "Redis custom CA path") - flagSet.Bool("redis-insecure-tls", false, "Use insecure TLS connection to redis") + flagSet.Bool("redis-insecure-skip-tls-verify", false, "Use insecure TLS connection to redis") flagSet.Var(&redisSentinelConnectionURLs, "redis-sentinel-connection-urls", "List of Redis sentinel connection URLs (eg redis://HOST[:PORT]). Used in conjunction with --redis-use-sentinel") flagSet.String("logging-filename", "", "File to log requests to, empty for stdout") From befab0521ad53e9a7211065cd6f382d635701144 Mon Sep 17 00:00:00 2001 From: Lukasz Leszczuk Date: Tue, 12 Nov 2019 11:42:03 +0100 Subject: [PATCH 14/15] log message in case of failure during loading system cert pool --- pkg/sessions/redis/redis_store.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/sessions/redis/redis_store.go b/pkg/sessions/redis/redis_store.go index a0f331b7..fdeebf6b 100644 --- a/pkg/sessions/redis/redis_store.go +++ b/pkg/sessions/redis/redis_store.go @@ -72,7 +72,10 @@ func newRedisClient(opts options.RedisStoreOptions) (*redis.Client, error) { } if opts.RedisCAPath != "" { - rootCAs, _ := x509.SystemCertPool() + rootCAs, err := x509.SystemCertPool() + if err != nil { + logger.Printf("failed to load system cert pool for redis connection, falling back to empty cert pool") + } if rootCAs == nil { rootCAs = x509.NewCertPool() } From 06a283e581039f20a1be5ce7663a9281682899bb Mon Sep 17 00:00:00 2001 From: Lukasz Leszczuk Date: Tue, 12 Nov 2019 16:11:27 +0100 Subject: [PATCH 15/15] Fix settings naming --- pkg/apis/options/sessions.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/apis/options/sessions.go b/pkg/apis/options/sessions.go index d4bb585f..dbbb1cba 100644 --- a/pkg/apis/options/sessions.go +++ b/pkg/apis/options/sessions.go @@ -28,5 +28,5 @@ type RedisStoreOptions struct { SentinelMasterName string `flag:"redis-sentinel-master-name" cfg:"redis_sentinel_master_name" env:"OAUTH2_PROXY_REDIS_SENTINEL_MASTER_NAME"` SentinelConnectionURLs []string `flag:"redis-sentinel-connection-urls" cfg:"redis_sentinel_connection_urls" env:"OAUTH2_PROXY_REDIS_SENTINEL_CONNECTION_URLS"` RedisCAPath string `flag:"redis-ca-path" cfg:"redis_ca_path" env:"OAUTH2_PROXY_REDIS_CA_PATH"` - RedisInsecureTLS bool `flag:"redis-insecure-tls" cfg:"redis_insecure_tls" env:"OAUTH2_PROXY_REDIS_INSECURE_TLS"` + RedisInsecureTLS bool `flag:"redis-insecure-skip-tls-verify" cfg:"redis_insecure_skip_tls_verify" env:"OAUTH2_PROXY_REDIS_INSECURE_SKIP_TLS_VERIFY"` }