-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Document Shortest Possible 😎 Path for Noobs #149
Description
oauth2_proxy offers a number of configuration options.
For folks looking to get up and running, quickly, it would be awesome to add a 15 minute "Quickstart" guide.
This right place for this may be a separate repo containing the compiled binaries, and an app.json file to power a "Deploy to Heroku" button.
For others looking to get started quickly, here is how I typically do it using the Google Apps provider and an upstream application which requires a secret HTTP Basic Auth password to access:
-
Create a new repo.
-
Put the latest binaries from the releases pages into your repo.
-
Create an
oauth2_proxy.cfgfile. Here are the minimal options you'll need:# Restrict access to folks with this Google Apps domain. email_domains = ["$YOUR_GOOGLE_APPS_DOMAIN"] # Send the HTTP Basic Auth password `PASSWORD` to all upstreams for all users. basic_auth_password = "PASSWORD" pass_basic_auth = true # Rather than forwarding the `Host` header of the client to the upstream, use # the host defined in the upstream configuration. pass_host_header = false # The application that you're providing authentication for. upstreams = ["https://$YOUR_UPSTREAM_APP.herokuapp.com/"] -
Create a Heroku app using the binary builtpack:
heroku create oauth2_proxy_test heroku buildpacks:set https://github.com/ph3nx/heroku-binary-buildpack
-
Create a
Procfileto run the binary with your config:web: bin/oauth2_proxy-2.0.1.linux-amd64.go1.5.1/oauth2_proxy -http-address="0.0.0.0:$PORT" -config='oauth2_proxy.cfg' -
Follow the Google Auth Provider instructions. Set the required environment config variables on Heroku:
heroku config:set \ OAUTH2_PROXY_CLIENT_ID="..." \ OAUTH2_PROXY_CLIENT_SECRET="..." \ OAUTH2_PROXY_COOKIE_SECRET="$(cat /dev/urandom | env LC_CTYPE=C tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" -
Deploy your app to Heroku and rejoice.
For those looking to test locally using HTTP, make sure to toggle these settings:
- Set
cookie_secure=false. This avoids responding with asecurecookie on HTTP, which the browser will discard. - Set
redirect_url="http://127.0.0.1.xip.io:4180/oauth2/callback". By default the server will attempt to set cookies on the same domain as the request – this will fail forlocalhostand127.0.0.1(as well as any IP based domain.
❤️