A reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers.
Go to file
Pierluigi Lenoci 3c22bc7877
docs: split integration.md into separate integration guides (#3299)
* docs: add Kubernetes Dashboard integration guide for Azure Entra ID

Add comprehensive documentation for integrating oauth2-proxy with
Kubernetes Dashboard on Azure Kubernetes Service (AKS) using Azure
Entra ID authentication.

Changes:
- Add new section "Kubernetes Dashboard on AKS" to ms_entra_id.md
  with complete configuration examples including:
  - Architecture overview and integration flow
  - Alpha configuration for oauth2-proxy Helm chart
  - Dashboard Ingress with proper auth annotations
  - RBAC configuration (user-based and group-based)
  - Troubleshooting guide for common issues
  - Workload Identity (passwordless) setup

- Add reference link in integration.md pointing to the new section
  for users looking for Kubernetes Dashboard integration examples

This addresses common issues users face when integrating Dashboard
with Entra ID, particularly:
- Missing Authorization header in auth-response-headers
- Insufficient buffer sizes for large Entra ID tokens
- RBAC permission configuration
- Group claims setup

Closes: oauth2-proxy/manifests#348
Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

* docs: split integration.md into separate integration guides

Split the monolithic integration.md file into a structured integrations
directory with individual pages for each tool as requested by maintainer.

Changes:
- Create new docs/configuration/integrations/ directory structure
- Split content into separate files:
  - nginx.md: Nginx auth_request directive configuration
  - traefik.md: Traefik v2 ForwardAuth middleware setup
  - caddy.md: Caddy v2 forward_auth directive configuration
  - kubernetes-dashboard.md: K8s Dashboard integration (with deprecation notice)
  - headlamp.md: Headlamp integration guide (recommended alternative)
- Transform integration.md into an index/overview page linking to all integrations
- Update docs/sidebars.js to use new Integration Guides category structure

The content has been preserved as-is from the original file, only
reorganized into separate files for better maintainability and
navigation. Added deprecation notice for Kubernetes Dashboard per
0ba796dce6

Addresses maintainer feedback from PR #3299

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

* fix: restore Kubernetes Dashboard tip box in nginx integration docs

Add back the tip box referencing the Kubernetes Dashboard Azure Entra ID
integration example that was present in the original integration.md file.

This ensures all content from the original file is preserved in the split
documentation structure.

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

* refactor: move Kubernetes Dashboard details to integration guide

Move the detailed Kubernetes Dashboard integration content from the
ms_entra_id provider documentation to the integrations section where
it logically belongs.

Changes:
- Move complete K8s Dashboard guide from ms_entra_id.md to
  integrations/kubernetes-dashboard.md (architecture, configuration,
  RBAC, troubleshooting, Workload Identity)
- Replace detailed section in ms_entra_id.md with brief reference
  to integration guide
- Reorder sidebar: Headlamp before Kubernetes Dashboard
- Update integration.md index to show Headlamp first (recommended),
  Dashboard last (deprecated)

This improves documentation organization by keeping integration guides
in the integrations/ directory and provider docs focused on provider
configuration.

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

* docs: move integration.md to integrations/index.md

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-01-16 09:37:52 +01:00
.devcontainer feat: allow to set non-default authorization request response mode (#3001) 2025-03-31 10:04:19 +02:00
.github chore(deps): update dependency golangci/golangci-lint to v2.7.2 (#3254) 2026-01-04 10:23:26 +01:00
.vscode Improved dev environment (#2211) 2024-01-20 20:10:37 +00:00
contrib chore(deps): update traefik docker tag to v2.11.35 (#3295) 2026-01-14 22:28:27 +01:00
docs docs: split integration.md into separate integration guides (#3299) 2026-01-16 09:37:52 +01:00
pkg fix: added conditional so default is not always set and env vars are honored #3303 (#3304) 2026-01-14 22:18:52 +01:00
providers fix: session refresh handling in OIDC provider (#3267) 2026-01-14 23:18:27 +01:00
static Embed static stylesheets and dependencies 2023-08-24 20:50:17 -04:00
testdata Rename test directory to testdata 2020-10-06 21:37:25 +09:00
.dockerignore Parameterise runtime image (#1478) 2022-04-14 14:10:59 +01:00
.gitignore feat: allow use more possible google admin-sdk api scopes (#2743) 2025-07-21 09:06:17 +02:00
.golangci.yml introduce mapstructure decoder for yaml parsing 2025-11-16 22:37:37 +01:00
.pre-commit-config.yaml Improved dev environment (#2211) 2024-01-20 20:10:37 +00:00
ADOPTERS.md doc: readme overhaul and azure sponsorship (#2826) 2024-10-27 12:12:46 +00:00
CHANGELOG.md fix: session refresh handling in OIDC provider (#3267) 2026-01-14 23:18:27 +01:00
CODE_OF_CONDUCT.md add code of conduct (#2387) 2024-01-23 11:39:10 +00:00
CONTRIBUTING.md Drop configure script in favour of native Makefile env and checks (#515) 2020-05-09 16:07:46 +01:00
Dockerfile chore(build): retrieve go version from go.mod as single point of truth 2025-01-20 20:45:45 +01:00
LICENSE add MIT license for google_auth_proxy 2014-06-09 16:25:26 -04:00
MAINTAINERS doc: update maintainer emails (#2748) 2024-08-20 18:56:11 +02:00
Makefile chore(deps): update alpine docker tag to v3.23.2 (#3296) 2026-01-06 19:42:27 +01:00
README.md Add license scan report and status (#3248) 2025-11-09 20:20:20 +01:00
RELEASE.md chore(build): refactoring makefile for better usability and introducing a default help target (#2930) 2025-04-27 20:09:52 +02:00
SECURITY.md Update SECURITY.md 2024-07-07 18:29:14 -03:00
dist.sh feature/s390x architecture support (#2734) 2024-08-23 09:02:02 +02:00
go.mod chore(deps): upgrade gomod and bump to golang v1.25.5 (#3292) 2025-12-24 11:30:23 +01:00
go.sum chore(deps): upgrade gomod and bump to golang v1.25.5 (#3292) 2025-12-24 11:30:23 +01:00
main.go deref everything... but why? 2025-11-16 22:38:54 +01:00
main_suite_test.go chore(deps): Updated to ginkgo v2 (#2459) 2024-07-18 22:41:02 +02:00
main_test.go feat: migrate google used organization id and header normalization booleans to pointers 2025-11-16 22:39:01 +01:00
oauthproxy.go chore(deps): update dependency golangci/golangci-lint to v2.7.2 (#3254) 2026-01-04 10:23:26 +01:00
oauthproxy_test.go refactor: ptr.Ptr to ptr.To 2025-11-16 22:38:59 +01:00
validator.go Watch the `htpasswd` file for changes and update the `htpasswdMap` (#1701) 2022-09-01 19:46:00 +01:00
validator_test.go Fix Linting Errors (#1835) 2022-10-21 11:57:51 +01:00

README.md

Continuous Integration Go Report Card GoDoc MIT licensed Maintainability Test Coverage FOSSA Status

OAuth2 Proxy

OAuth2-Proxy is a flexible, open-source tool that can act as either a standalone reverse proxy or a middleware component integrated into existing reverse proxy or load balancer setups. It provides a simple and secure way to protect your web applications with OAuth2 / OIDC authentication. As a reverse proxy, it intercepts requests to your application and redirects users to an OAuth2 provider for authentication. As a middleware, it can be seamlessly integrated into your existing infrastructure to handle authentication for multiple applications.

OAuth2-Proxy supports a lot of OAuth2 as well as OIDC providers. Either through a generic OIDC client or a specific implementation for Google, Microsoft Entra ID, GitHub, login.gov and others. Through specialised provider implementations oauth2-proxy can extract more details about the user like preferred usernames and groups. Those details can then be forwarded as HTTP headers to your upstream applications.

Simplified Architecture

Get Started

OAuth2-Proxy's Installation Docs cover how to install and configure your setup. Additionally you can take a further look at the example setup files.

Releases

Binaries

We publish oauth2-proxy as compiled binaries on GitHub for all major architectures as well as more exotic ones like ppc64le as well as s390x.

Check out the latest release.

Images

From v7.6.0 and up the base image has been changed from Alpine to GoogleContainerTools/distroless. This image comes with even fewer installed dependencies and thus should improve security. The image therefore is also slightly smaller than Alpine. For debugging purposes (and those who really need it. e.g. armv6) we still provide images based on Alpine. The tags of these images are suffixed with -alpine.

Since 2023-11-18 we build nightly images directly from the master branch and provide them at quay.io/oauth2-proxy/oauth2-proxy-nightly. These images are considered unstable and therefore should NOT be used for production purposes unless you know what you're doing.

Sponsors

Microsoft Microsoft Azure credits for open source projects

Would you like to sponsor the project then please contact us at sponsors@oauth2-proxy.dev

Getting Involved

Slack

Join the #oauth2-proxy Slack channel to chat with other users of oauth2-proxy or reach out to the maintainers directly. Use the public invite link to get an invite for the Gopher Slack space.

OAuth2-Proxy is a community-driven project. We rely on the contributions of our users to continually improve it. While review times can vary, we appreciate your patience and understanding. As a volunteer-driven project, we strive to keep this project stable and might take longer to merge changes.

If you want to contribute to the project. Please see our Contributing guide.

Who uses OAuth2-Proxy? Have a look at our new ADOPTERS file and feel free to open a PR to add your organisation.

Thanks to all the people who already contributed ❤

Made with contrib.rocks.

Security

If you believe you have found a vulnerability within OAuth2 Proxy or any of its dependencies, please do NOT open an issue or PR on GitHub, please do NOT post any details publicly.

Security disclosures MUST be done in private. If you have found an issue that you would like to bring to the attention of the maintainers, please compose an email and send it to the list of people listed in our MAINTAINERS file.

For more details read our full Security Docs

Security Notice for v6.0.0 and older

If you are running a version older than v6.0.0 we strongly recommend to the current version.

See open redirect vulnerability for details.

Repository History

2018-11-27: This repository was forked from bitly/OAuth2_Proxy. Versions v3.0.0 and up are from this fork and will have diverged from any changes in the original fork. A list of changes can be seen in the CHANGELOG.

2020-03-29: This project was formerly hosted as pusher/oauth2_proxy but has been renamed to oauth2-proxy/oauth2-proxy. Going forward, all images shall be available at quay.io/oauth2-proxy/oauth2-proxy and binaries will be named oauth2-proxy.

License

OAuth2-Proxy is distributed under The MIT License.

FOSSA Status