본문 바로가기
서버구축 (WEB,DB)

Portainer에서 Google OAuth 인증 설정

by 날으는물고기 2023. 9. 4.

Portainer에서 Google OAuth 인증 설정

Portainer를 Google OAuth로 설정하려면 다음 단계를 따르세요. 이 과정은 Portainer 2.0 이상 버전을 기준으로 합니다.

 

Google Cloud Console에서 OAuth 2.0 클라이언트 ID 설정하기

  1. Google Cloud Console에 로그인합니다.
  2. 좌측 상단에 있는 "프로젝트 선택" 드롭다운에서 새 프로젝트를 만듭니다.
  3. 왼쪽 메뉴에서 "API 및 서비스" > "사용자 인증 정보"로 이동합니다.
  4. "OAuth 클라이언트 ID 만들기" 버튼을 클릭합니다.
  5. "애플리케이션 유형"을 "웹 애플리케이션"으로 선택합니다.
  6. "승인된 리디렉션 URI"에 Portainer의 로그인 페이지 URL을 추가합니다.
    기본적으로는 http://<your-portainer-url>/auth/oauth입니다.
  7. "만들기" 버튼을 클릭하고 OAuth 클라이언트 ID와 클라이언트 비밀번호를 얻습니다.

 

Portainer 컨테이너 실행 및 구성 파일 수정하기

  1. Portainer 컨테이너를 실행하거나 업데이트합니다.
    다음은 
    docker run 명령어의 예입니다. 필요에 따라 환경 변수를 조정하세요.
    docker run -d -p 9000:9000 \
      --name=portainer \
      --restart=always \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v portainer_data:/data \
      -e TZ=Asia/Seoul \
      -e EDGE=1 \
      -e ADMIN_PASSWORD=<admin_password> \
      portainer/portainer-ce
  2. Portainer 컨테이너가 실행 중인 경우, 관리자로 로그인합니다.
  3. 왼쪽 메뉴에서 "Settings"를 선택하고, "Authentication" 탭으로 이동합니다.
  4. "Authentication method"를 "OAuth"로 선택합니다.
  5. "OAuth 제공업체"를 "Google"로 선택합니다.
  6. "OAuth 클라이언트 ID"에 Google Cloud Console에서 얻은 클라이언트 ID를 입력합니다.
  7. "OAuth 클라이언트 비밀번호"에 클라이언트 비밀번호를 입력합니다.
  8. "OAuth 스코프"는 선택 사항입니다. 필요에 따라 구성합니다.
  9. "저장" 버튼을 클릭하여 설정을 저장합니다.

메뉴에서 설정을 선택한 다음 인증을 선택합니다. 인증 방법 섹션에서 OAuth 를 클릭합니다.

다음 화면에서는 아래 표를 참고하여 OAuth 제공업체가 제공한 자격 증명을 입력하세요.
분야/옵션 개요
SSO 사용
사용자가 현재 로그인된 세션에 있을 때 OAuth 공급자가 자격 증명을 요구하지 않도록 SSO를 활성화합니다.
내부 인증 프롬프트 숨기기
내부 인증을 통해 로그인하는 기능을 숨깁니다.
자동 사용자 프로비저닝
이 옵션을 켜면 OAuth 제공자 측에 존재하는 사용자가 Portainer에 자동으로 생성됩니다(이 옵션이 켜져 있는 동안 해당 사용자를 배치할 기본 팀을 정의할 수 있습니다). 비활성화된 경우 Portainer에서 수동으로 사용자를 생성 해야 합니다 .

자동 팀 멤버십을 켜면 청구 이름을 기반으로 특정 Portainer 팀에 OAuth 사용자를 자동으로 추가하도록 선택할 수 있습니다. 클레임 이름은 팀과 일치하거나 정적으로 할당된 팀 옵션에서 Portainer 팀과 클레임 이름(정규식 사용)을 수동으로 연결할 수 있습니다. 다른 팀에 속하지 않은 사용자에 대해 기본 팀을 정의할 수도 있습니다.
또한 원하는 경우 지정된 그룹에 대한 관리자 권한 자동 할당을 활성화할 수 있습니다.

OAuth 제공업체

아래 표를 지침으로 사용하여 OAuth 공급자를 구성하세요.
분야/옵션 개요
클라이언트 ID
OAuth 애플리케이션의 공개 식별자를 입력하세요.
클라이언트 비밀번호
OAuth 애플리케이션의 비밀 키를 입력하세요.

완료되면 설정 저장 을 클릭합니다.

 

만약, Custom 통해 적용할 경우 아래 표를 기반으로 OAuth 구성 섹션을 완료합니다 .

분야/옵션 개요
클라이언트 ID
OAuth 애플리케이션의 공개 식별자를 입력하세요.
클라이언트 비밀번호
OAuth 애플리케이션에 대한 토큰 액세스를 입력하세요.
승인 URL
OAuth 공급자에 대해 인증하는 데 사용되는 URL을 입력합니다(사용자를 OAuth 공급자 로그인 화면으로 리디렉션함).
액세스 토큰 URL
액세스 토큰에 대한 유효한 OAuth 인증 코드를 교환하는 데 사용되는 URL을 입력하세요.
리소스 URL
인증된 사용자에 대한 정보를 검색하기 위해 Portainer에서 사용하는 URL을 입력하세요.
리디렉션 URL
사용자가 성공적으로 인증된 후 사용자를 리디렉션하기 위해 OAuth 공급자가 사용하는 URL을 입력합니다(콜백 URL이라고도 함). 이를 Portainer 인스턴스 URL로 설정해야 합니다.
로그아웃 URL
사용자를 로그아웃하기 위해 OAuth 공급자가 사용하는 URL을 입력하세요.
사용자 식별자
Portainer가 인증된 사용자의 계정을 생성하는 데 사용할 식별자를 입력하세요. 리소스 URL 필드 에 지정된 리소스 서버에서 검색됩니다 .
범위
인증된 사용자에 대한 정보를 검색하기 위해 OAuth 공급자가 필요합니다. 자세한 내용은 공급자의 자체 설명서를 참조하세요.

Portainer에서 Google OAuth를 사용하려면 Google OAuth 구성 값을 사용해야 합니다.
아래와 같이 필드를 채워넣어야 합니다.

  • Client ID: Google Cloud Console에서 생성한 OAuth 클라이언트 ID를 여기에 입력합니다.
  • Client secret: Google Cloud Console에서 생성한 OAuth 클라이언트 비밀번호를 여기에 입력합니다.
  • Authorization URL: Google OAuth의 권한 부여 URL입니다.
    일반적으로 https://accounts.google.com/o/oauth2/auth 입니다.
  • Access token URL: Google OAuth의 엑세스 토큰 URL입니다.
    일반적으로 https://accounts.google.com/o/oauth2/token 입니다.
  • Resource URL: 이 필드는 Google OAuth에서 사용되지 않습니다. 따라서 비워둘 수 있습니다.
  • Redirect URL: Portainer의 로그인 후 리디렉션 URL을 여기에 입력합니다.
    일반적으로는 http://yourportainer.com/auth/oauth 또는 http://yourportainer.com:9000/auth/oauth 입니다. (Portainer 포트에 따라 다름)
  • Logout URL: 로그아웃 URL을 제공하는 경우 입력합니다.
    이것은 선택 사항이며, 필요에 따라 설정할 수 있습니다.
  • User identifier: 이 필드는 Google OAuth의 사용자 식별자와 일치해야 합니다.
    일반적으로 Google OAuth에서는 "sub"을 사용하여 사용자 ID를 식별합니다.
  • Scopes: OAuth 스코프는 필요에 따라 구성할 수 있습니다.
    일반적으로 "openid profile email"과 같은 스코프를 사용하여 사용자 정보를 요청할 수 있습니다.

요약하면, Google OAuth를 사용하기 위해 필요한 주요 정보는 "Client ID", "Client secret", "Authorization URL", "Access token URL", "Redirect URL", 그리고 "User identifier"입니다. 이 정보를 Portainer의 OAuth 구성 페이지에 입력하여 Google OAuth를 사용할 수 있게 됩니다.

 

Google OAuth 테스트하기

  1. Portainer 로그인 페이지로 이동합니다.
    일반적으로 
    http://<your-portainer-url>:9000 입니다.
  2. "Login with Google" 버튼을 클릭합니다.
  3. Google 계정으로 로그인하고 Portainer에 액세스하도록 허용하면 OAuth 흐름이 완료됩니다.

이제 Portainer는 Google OAuth를 사용하여 사용자 인증을 수행하며, Google 계정을 통한 로그인이 가능합니다. 이로써 Portainer를 추가적으로 보호하고 Google 계정을 통해 사용자 관리를 간소화할 수 있습니다. 이 가이드에서는 Portainer 컨테이너를 사용하는 경우를 다루었지만, 다른 설치 방법을 사용하는 경우에도 비슷한 설정을 적용할 수 있습니다.

 

참고 : https://docs.portainer.io/admin/settings/authentication/oauth

728x90

댓글