OSS探訪GitHubでログイン

既存のWebアプリの前段で認証を受け持ち、許可した利用者だけを通す

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
15,046
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

OAuth2 Proxyは、Webアプリと利用者の間に置き、OAuth 2.0やOpenID Connectの認証を代行するリバースプロキシです。Google、Microsoft Entra ID、GitHub、一般的なOIDC提供元などと接続し、アプリ側へ認証済みの要求だけを渡せます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

認証処理をアプリの外へ切り出す

ログイン開始、コールバック、セッションCookieの管理をプロキシ側へまとめられます。認証後は利用者情報をHTTPヘッダーで上流アプリへ渡す構成も選べます。

出典:[1][2]

複数の認証提供元と配備方法に対応する

組み込みの提供元設定と一般的なOIDC設定があり、単体のリバースプロキシとしても、Nginxのauth_requestなどと組み合わせても使えます。

出典:[1][2]

向いている用途

認証機能を持たない社内Webアプリの入口に向く

ダッシュボードや管理画面など、アプリ本体を変えずに組織のログインを追加したい用途に向いています。公開サービスでは、認証提供元の登録、転送ヘッダー、TLS、Cookieの範囲まで含めた設計が必要です。

出典:[1][3]

導入前の確認

秘密情報と転送先の信頼境界を明確にする

本番では実際のclient_id、client_secret、推測できないCookie秘密鍵を安全に保管し、redirect_urlを認証提供元へ正確に登録します。email_domains="*"や認証情報ヘッダーの転送は、意図した利用者と上流だけに限定してください。

出典:[2][3]

試用設定は本番認証を検証しない

クイックスタートは架空のGoogle認証情報で設定形式、32バイトのCookie秘密鍵、ローカルの/pingだけを確認します。Googleへのログインやコールバック、上流アプリとの接続は検証しません。

出典:[2][4]

参考にした公式資料

  1. [1]OAuth2 Proxy README at v7.15.5(2026-10-05)
  2. [2]OAuth2 Proxy configuration overview at v7.15.5(2026-10-05)
  3. [3]OAuth2 Proxy Google provider guide at v7.15.5(2026-10-05)
  4. [4]OAuth2 Proxy endpoints documentation at v7.15.5(2026-10-05)
  5. [5]OAuth2 Proxy LICENSE at v7.15.5(2026-10-05)
  6. [6]OAuth2 Proxy v7.15.5 release(2026-10-05)
編集部からの補足

導入判断では、対応する認証提供元だけでなく、上流へ渡すヘッダーとCookieの信頼範囲を先に決めてください。試用時も架空の認証情報とローカルポートから始めると安全です。

3ステップで試す

  1. 1

    固定版のコンテナーを取得する

    Dockerを使い、OAuth2 Proxy v7.15.5の公式イメージを取得します。

    docker pull quay.io/oauth2-proxy/oauth2-proxy:v7.15.5
  2. 2

    架空の認証情報で設定ファイルを作る

    本物の秘密情報を使わず、Google向けの設定例を作ります。Cookie秘密鍵は復号後32バイトであることも確認します。

    mkdir oauth2-proxy-demo && cd oauth2-proxy-demo && printf '%s\n' 'provider = "google"' 'client_id = "example-client-id"' 'client_secret = "example-client-secret"' 'redirect_url = "http://127.0.0.1:4180/oauth2/callback"' 'http_address = "0.0.0.0:4180"' 'email_domains = ["example.com"]' 'cookie_secret = "MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY="' > oauth2-proxy.cfg && test "$(sed -n 's/^cookie_secret = "\(.*\)"$/\1/p' oauth2-proxy.cfg | base64 -d | wc -c | tr -d ' ')" = 32
  3. 3

    設定を読み込み、ローカルの生存確認を行う

    空いているローカルポートでコンテナーを起動し、最大約30秒の範囲で/pingを確認します。取得したコンテナーIDだけを終了し、実際のGoogleログインは行いません。

    ( cid=''; cleanup() { if test -n "$cid"; then docker rm -f "$cid" >/dev/null 2>&1 || true; fi; }; trap cleanup EXIT INT TERM; cid=$(docker run -d --rm -p 127.0.0.1::4180 -v "$PWD/oauth2-proxy.cfg:/etc/oauth2-proxy.cfg:ro" quay.io/oauth2-proxy/oauth2-proxy:v7.15.5 --config=/etc/oauth2-proxy.cfg) || exit 1; test -n "$cid" || exit 1; port=$(docker port "$cid" 4180/tcp | sed -n 's/.*://p') || exit 1; test -n "$port" || exit 1; ready=0; for attempt in 1 2 3 4 5 6 7 8 9 10; do if curl -fsS --connect-timeout 1 --max-time 2 "http://127.0.0.1:$port/ping" -o ping.txt; then ready=1; break; fi; sleep 1; done; test "$ready" = 1 )
公式READMEで確認

成長

成長の推移 · 直近30日

15,046 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
13
Open PR
130
Issue登録
24
Issue解決
24
PR登録
70
PRマージ
25

Issues

24 / 24

7月8日10月5日
Issue登録Issue解決

Pull Requests

70 / 25

7月8日10月5日
PR登録PRマージ

メンテナンス状況

Issue初回応答中央値
データなし
Issue応答率
0% (0/23)

直近90日に外部から作成されたIssue(新しい順に最大100件)が対象です。OWNER・MEMBER・COLLABORATORによる最初のコメントを応答とし、全コメントを確認できないIssueは集計から除外します。中央値と応答率は週次更新です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • cloud-infrastructure
  • oauth2-proxy
  • ssl
  • sso
  • hacktoberfest
  • oauth2
  • oidc
  • oidc-proxy
Stars
15,046
Forks
2,207
Watchers
104
Open Issues
153
Contributors
414
所有者種別
Organization
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?