본문으로 건너뛰기

oauth2-proxy로 간단한 인증 절차 추가하기

인증 방식

OAuth2 Reverse Proxy

OAuth2Proxy가 인증 역할과 리버스 프록시 역할 모두 수행

  • --upstream=<upstream-url>[,<upstream-url>...]
    • 리버스 프록시에서 사용할 upstream 서버를 설정합니다
    • /path가 매핑됩니다

OAuth2 Middleware

OAuth2Proxy가 인증 역할만 수행
  • --upstream=static://202
    • upstream 서버를 설정하지 않고 인증이 성공한 경우 202, 실패한 경우 401 응답을 반환합니다

설치

helm repo add oauth2-proxy https://oauth2-proxy.github.io/manifests
helm repo update oauth2-proxy \
&& helm search repo oauth2-proxy/oauth2-proxy -l | head -n 10
helm pull oauth2-proxy/oauth2-proxy --version 7.12.17
helm show values oauth2-proxy/oauth2-proxy --version 7.12.17 > oauth2-proxy-7.12.17.yaml
정보

terraform으로 쿠키 시크릿을 생성할 수 있습니다.

resource "random_password" "oauth2_proxy_cookie_secret" {
length = 32
override_special = "-_"
}
oauth2-proxy-values.yaml
config:
# proxyVarsAsSecrets: true
clientID: <clientID>
clientSecret: <clientSecret>
cookieSecret: <cookieSecret>

configFile: |
email_domains = [ "*" ]

provider = "oidc"
oidc_issuer_url = "<issuerURL>"
scope = "openid email profile groups"
redirect_url = "<clientURL>/oauth2/callback"

upstreams = [ "<upstreamURL>" ]
helm template oauth2-proxy oauth2-proxy/oauth2-proxy \
--version 7.12.17 \
-n oauth2-proxy \
-f oauth2-proxy-values.yaml \
> oauth2-proxy.yaml
helm upgrade oauth2-proxy oauth2-proxy/oauth2-proxy \
--install \
--history-max 5 \
--version 7.12.17 \
-n oauth2-proxy \
-f oauth2-proxy-values.yaml

설정

옵션을 전달하는 방식은 3가지가 있습니다.

  • args으로 옵션을 전달
  • 파일
    • --config=<config-path>
    • 옵션의 -_로 변경
    • 여러번 사용할 수 있는 옵션의 경우 마지막에 s를 붙이고 [] 리스트로 변경
  • env
    • 옵션의 소문자를 대문자로, -_로 변경
    • OAUTH2_PROXY_을 앞에 붙임
  • alpha config