, Traefik Oauth 설치

반응형

Traefik Oauth 설치

OAuth(Open Authorization)는 액세스 위임을 위한 개방형 표준으로, 일반적으로 인터넷 사용자가 다른 웹 사이트의 자신의 정보에 대한 액세스 권한을 부여하지만 암호는 부여하지 않습니다. OAuth를 통해 사용자는 타사 애플리케이션이 로그인 자격 증명을 노출하지 않고 데이터에 액세스 할 수 있도록 권한을 부여할 수 있습니다. 이 튜토리얼에서는 OAuth2 Proxy 미들웨어를 사용하여 Traefik에서 OAuth를 설치하는 방법을 보여줍니다.

 

전제조건

시작하기 전에 다음과 같은 필수 구성 요소가 있는지 확인하십시오:

  • 도커가 설치된 서버
  • 구성된 도메인 이름 및 DNS

 

1단계: OAuth2 프록시 구성 파일 생성

OAuth2 Proxy 구성 파일에 대한 새 디렉토리를 만듭니다:

mkdir oauth2-proxy
cd oauth2-proxy

oauth2-proxy.cfg라는 새 파일을 생성하고 다음 내용을 붙여 넣습니다:

http_address = "0.0.0.0:4180"
upstreams = ["http://web:80"]

email_domains = ["yourdomain.com"]
cookie_secret = "your-cookie-secret-here"
provider = "google"
client_id = "your-google-client-id-here"
client_secret = "your-google-client-secret-here"

redirect_url = "https://oauth2.yourdomain.com/oauth2/callback"
login_url = "https://accounts.google.com/o/oauth2/auth"
redeem_url = "https://oauth2.yourdomain.com/token"
validate_url = "https://www.googleapis.com/oauth2/v1/tokeninfo"

cookie_domains = ["yourdomain.com"]
cookie_secure = true

yourdomain.com을 실제 도메인 이름으로 바꾸고 cookie_secret, client_id 및 client_secret을 Google API Console의 해당 값으로 채웁니다.

 

업스트림 필드에서 OAuth2 Proxy가 보호할 백엔드 서비스인 포트 80에서 실행되는 웹 서비스를 가리킵니다.

SMALL

2단계: 도커 작성 파일

docker-compose.yml이라는 새 파일을 생성하고 다음 내용을 붙여 넣습니다:

version: '3'

services:
  oauth2-proxy:
    image: quay.io/oauth2-proxy/oauth2-proxy:v7.2.0
    ports:
      - "4180:4180"
    volumes:
      - "./oauth2-proxy.cfg:/etc/oauth2-proxy/oauth2-proxy.cfg"
    restart: always

  web:
    image: your-web-image
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.web.rule=Host(`yourdomain.com`)"
      - "traefik.http.routers.web.tls=true"
      - "traefik.http.routers.web.entrypoints=websecure"
      - "traefik.http.services.web.loadbalancer.server.port=80"
    restart: always

웹 이미지를 웹 서비스 도커 이미지의 이름으로 바꾸고 yourdomain.com을 실제 도메인 이름으로 바꿉니다.

 

3단계: OAuth2 프록시 및 웹 서비스 배포

다음 명령을 실행하여 OAuth2 프록시 및 웹 서비스를 배포합니다:

docker-compose up -d

그러면 OAuth2 Proxy 및 웹 서비스가 시작되고 https://yourdomain.com에서 웹 서비스에 액세스 할 수 있습니다. 보호된 URL에 액세스 하려고 하면 OAuth2 Proxy 로그인 페이지로 리디렉션 됩니다.

 

결론

이 튜토리얼에서는 OAuth2 Proxy 미들웨어를 사용하여 Traefik에서 OAuth를 설치하는 방법을 보여주었습니다. OAuth2 Proxy를 사용하면 애플리케이션 코드를 수정하지 않고도 웹 서비스에 인증을 쉽게 추가할 수 있습니다.

728x90
LIST

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band