한국어
  • GitHub
  • Secret vault
  • 토큰 저장
  • OAuth
  • 소셜 로그인

# GitHub 앱 vs. OAuth 앱: 올바른 GitHub 연결 선택하기

Logto 통합을 위해 GitHub 앱과 OAuth 앱을 비교하세요. 보안, 권한, 토큰 관리의 주요 차이점을 배우고, 애플리케이션에 적합한 GitHub 인증 방식을 선택하세요.

Ran
Ran
Product & Design

사용자 인증에 몇 주를 낭비하지 마세요
Logto로 더 빠르게 안전한 앱을 출시하세요. 몇 분 만에 사용자 인증을 통합하고 핵심 제품에 집중하세요.
시작하기
Product screenshot

Logto 애플리케이션에 GitHub 인증을 통합할 때, 두 가지 옵션이 있습니다: GitHub 앱과 GitHub OAuth 앱. 두 방식 모두 "GitHub로 로그인" 기능을 제공하지만, 보안, 토큰 관리, API 접근 측면에서 근본적으로 다른 경험을 제공합니다. 이 가이드는 주요 차이점을 이해하고, 사용 사례에 올바른 접근 방식을 선택하는 데 도움이 됩니다.

배경: GitHub 통합을 위한 두 가지 경로

Logto의 현재 문서에서는 소셜 로그인을 위해 GitHub OAuth 앱 을 설정하는 과정을 안내합니다. 이는 기본 인증 요구에 적합한, 더 쉽고 간단한 옵션입니다. 하지만 GitHub 앱은 GitHub가 공식적으로 권장하는 최신 접근 방식으로서, 강화된 보안 기능과 더 세밀한 제어를 제공합니다.

비유하자면: OAuth 앱은 누군가에게 집의 마스터키를 주는 것과 같아서, 한 번 승인하면 광범위한 접근 권한을 얻게 됩니다. 반면 GitHub 앱은 여러 방에 대해 각각 다른 접근 코드를 부여하는 스마트 잠금 시스템과 같아서, 사용자가 앱이 필요한 정확한 권한만 정밀하게 부여할 수 있습니다.

한눈에 보는 주요 차이점

권한: 광범위 vs. 세밀

  • OAuth 앱 은 광범위한 스코프를 사용합니다 — 예를 들어 repo를 요청하면 리포지토리 전체에 대한 제어 권한을 얻게 됩니다.
  • GitHub 앱 은 세밀한 권한을 사용합니다 — 예를 들어 "이슈: 읽기"만 요청할 수 있고, 코드는 건드리지 않습니다. 설치 시 사용자가 특정 리포지토리만 선택할 수 있으므로 전체 접근을 필요로 하지 않습니다.

토큰 보안: 영구적 vs. 만료됨

  • OAuth 앱 은 만료되지 않는 토큰(직접 취소 전까지)을 발급하며, 갱신 메커니즘이 없습니다.
  • GitHub 앱 은 짧은 수명의 토큰(1시간 유효)을 사용하고, 자동 갱신을 지원하여 장시간 실행되는 애플리케이션에도 훨씬 더 안전합니다.

신원: 사용자 vs. 봇

  • OAuth 앱 은 항상 인증한 사용자(예: @octocat)로 동작하며, 해당 사용자의 요청 한도(5,000 요청/시간)를 공유합니다.
  • GitHub 앱 은 독립적으로 자체 봇 신원(예: @my-app[bot])으로 동작할 수 있으며, 사용량에 따라 확장되는 요청 한도 덕분에 자동화에 아주 유리합니다.

접근 제어: 전체 또는 없음 vs. 선택적 제공

  • OAuth 앱 은 모든 접근 가능한 리소스에 대해 한 번의 승인을 요구합니다.
  • GitHub 앱 은 사용자가 앱을 설치할 때 특정 리포지토리를 선택할 수 있고, 권한 변경에 대한 webhook 알림을 받으며, 더 뛰어난 투명성과 제어를 제공합니다.

지속성: 사용자 종속 vs. 독립적

  • OAuth 앱 은 인증한 사용자와 연결되어 있습니다 — 해당 개발자가 접근을 잃거나 조직을 나가면 앱이 작동을 멈춥니다.
  • GitHub 앱 은 앱을 설치한 개발자가 조직을 떠나더라도 계속 작동하므로, 자동화와 통합 서비스가 중단되지 않습니다.

무엇을 선택해야 할까?

GitHub 앱과 OAuth 앱 모두 Logto의 소셜 커넥터에서 원활하게 동작합니다. Logto의 Secret Vault 는 두 가지 통합 방식 모두의 토큰을 안전하게 저장하지만, 경험에는 중요한 차이가 있습니다:

OAuth 앱을 통한 기본 소셜 로그인

사용자 인증(예: GitHub로 로그인) 만 필요하고 이후에 GitHub API를 호출하지 않는다면, OAuth 앱을 사용하는 것이 가장 빠른 경로입니다:

  • 간단한 설정: 사용자가 OAuth 앱을 승인하면 GitHub를 통해 로그인할 수 있습니다.
  • 장기적으로 유효한 토큰(갱신 없음): Logto는 액세스 토큰을 Secret Vault에 저장할 수 있지만, 갱신 흐름이 없으므로 토큰은 취소 전까지 유효합니다.
  • 사용자 신원(이메일, 이름, 아바타)만 필요하고 자동화된 API 작업을 하지 않을 때 가장 적합합니다.

이 방식을 선택할 이유: 프로토타입이나 로그인 & 때때로 프로필 동기화만 필요한 앱에 구현 속도가 가장 빠릅니다.

GitHub 앱을 통한 고급 통합

애플리케이션이 지속적으로 GitHub API 접근, 백그라운드 자동화 또는 엄격한 보안이 필요하다면, GitHub 앱을 선택하세요:

  • 세밀한 권한 제어와 설치별 리포지토리 선택으로 최소한의 접근 및 감사 가능성을 보장합니다.
  • 단기(보통 1시간) 유효 토큰과, GitHub 앱이 제공하는 갱신 토큰; 이 기능을 활성화하면 Logto는 액세스 및 갱신 토큰 모두를 Secret Vault에 저장하고 주기적으로 갱신하여 백엔드가 사용자 재로그인 없이 계속 동작할 수 있게 만듭니다.
  • 앱 신원(봇)으로 보다 명확한 작업 소유자 구분 및 대규모 자동화에 적합한 확장 가능한 요청 한도로 신뢰성을 높입니다.

이런 경우에 좋습니다:

  • 사용자를 대신하여 GitHub 리포지토리를 관리하는 SaaS 플랫폼
  • 코드, 이슈, 풀 리퀘스트와 상호작용하는 AI 에이전트
  • 지속적인 API 접근이 필요한 애플리케이션
  • 백그라운드 자동화 작업을 수행하는 도구

Logto에서 GitHub 앱 설치하기

GitHub 앱 설치는 OAuth 앱과 거의 동일한 패턴을 따르며, 몇 가지 중요한 차이점만 있습니다. OAuth 앱에서 GitHub 앱으로의 이전도 매우 간단합니다.

GitHub 앱 생성하기

  1. "GitHub Settings > Developer settings > GitHub Apps"로 이동하세요

  2. "New GitHub App"을 클릭하세요

  3. 다음을 구성하세요:

    • GitHub 앱 이름: 앱의 고유 식별자
    • 홈페이지 URL: 애플리케이션 웹사이트 주소
    • 콜백 URL: Logto 커넥터의 콜백 URI (OAuth 앱과 동일)
    • 설치 중 사용자 인증(OAuth) 요청: 활성화하세요
    • Webhook: 필요에 따라 활성화 (선택 사항)
    • 권한: 세밀한 권한을 선택하세요(예: "이슈: 읽기")
    • 사용자 권한: 사용자를 대신해 동작하는 경우 계정 권한 추가
  4. 클라이언트 시크릿을 생성하세요 (OAuth 앱과 동일)

integrate-github-apps.png

Logto에서 설정하기

Logto 커넥터 설정은 거의 동일합니다:

  1. GitHub 앱에서 받은 클라이언트 ID를 입력하세요
  2. 클라이언트 시크릿을 추가하세요
  3. GitHub API 연동이 필요한 경우 **"영구적 API 접근을 위해 토큰 저장"**을 활성화하세요
  4. 중요한 차이점 - 스코프:
    • OAuth 앱과 달리(Logto 스코프 필드에 스코프를 입력) GitHub 앱은 GitHub 앱 설정에서 권한을 선택합니다.
    • Logto 내 스코프 필드는 비워둬도 됩니다.
  5. 갱신 토큰 요청 (선택 사항)
    • Logto의 스코프 필드에 offline_access를 추가해 갱신 토큰을 활성화하세요
    • GitHub은 자동으로 갱신 토큰을 발행하고, Logto는 두 토큰을 Secret Vault에 저장 및 순환 관리합니다
    • 참고: OAuth 앱은 갱신 토큰을 지원하지 않습니다 — 액세스 토큰이 만료되지 않으므로 offline_access가 의미가 없습니다. GitHub 앱으로 통합할 때는 이 점이 다릅니다.

integrate-github-connector-in-logto.png

결론

OAuth 앱이 여전히 기본 인증에 유효한 옵션이지만, GitHub 앱이 GitHub 통합의 미래입니다. 만료되는 토큰을 통한 향상된 보안, 더 정밀한 권한 모델, 사용자의 접근 제어 향상 등 우수한 기능을 제공합니다.

Logto 사용자에게 두 옵션 모두 소셜 커넥터와 동작합니다. 선택은 당신의 요구에 달려 있습니다:

  • 인증만 필요하다면 OAuth 앱으로 간단히 시작하세요
  • API 접근, 자동화, 고급 보안이 필요하면 GitHub 앱으로 확장하세요

그리고 기억하세요 — Logto의 Secret Vault와 자동 토큰 갱신 기능 덕분에 GitHub 앱 토큰 관리도 OAuth 앱만큼 간단하면서 보안까지 챙길 수 있습니다. AI 코딩 도구, 프로젝트 관리 플랫폼, 개발자 생산성 툴 등 어떤 것을 만들더라도, 이제 Logto 애플리케이션에 가장 적합한 GitHub 통합 방법을 선택할 수 있습니다.

시작할 준비가 되셨나요? Logto의 GitHub 커넥터 가이드와 함께 오늘 GitHub 인증을 통합해보세요.

추가 자료