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

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

Logto 연동을 위한 GitHub 앱과 OAuth 앱을 비교하세요. 보안, 권한, 토큰 관리의 핵심 차이를 배우고, 애플리케이션에 알맞은 GitHub 인증 방식을 선택하세요.

Ran
Ran
Product & Design

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

GitHub 인증을 Logto 애플리케이션에 통합할 때, 두 가지 옵션이 있습니다: 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 앱은 사용자가 앱을 설치하고, 특정 저장소를 선택하며, 권한 변경에 대한 웹훅 알림도 받을 수 있어 투명성과 제어가 강화됩니다.

지속성: 사용자 의존적 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 플랫폼
  • 코드, 이슈, PR과 상호작용하는 AI 에이전트
  • 장기간 API 접근이 필요한 애플리케이션
  • 백그라운드 자동화 작업을 수행하는 도구

Logto에서 GitHub 앱 설정하기

GitHub 앱 설정 방법은 OAuth 앱과 유사하나, 몇 가지 주요 차이가 있습니다. OAuth 앱에서 GitHub 앱으로의 마이그레이션도 최소한의 노력만 필요합니다.

GitHub 앱 생성하기

  1. "GitHub 설정 > 개발자 설정 > GitHub 앱"으로 이동하세요.

  2. "새 GitHub 앱" 클릭

  3. 다음 항목을 설정하세요:

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

integrate-github-apps.png

Logto에서 설정하기

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

  1. GitHub 앱에서 클라이언트 ID 입력
  2. 클라이언트 비밀키 추가
  3. "지속적인 API 접근을 위해 토큰 저장" 활성화(필요시)
  4. 중요한 차이점 - 범위(Scopes):
    • OAuth 앱은 Logto의 Scope 필드에 범위를 명시해야 하지만, GitHub 앱은 앱 설정 화면에서 권한을 지정합니다.
    • 따라서 Logto의 Scope 필드는 비워두면 됩니다.
  5. 리프레시 토큰 요청(선택 사항)
    • Logto에서 Scope 필드에 offline_access를 추가하면 리프레시 토큰이 활성화됩니다.
    • GitHub에서 자동으로 리프레시 토큰을 발급하며, Logto가 두 토큰(액세스, 리프레시) 모두 Secret Vault에 저장하고 관리합니다.
    • 참고: OAuth 앱은 리프레시 토큰을 지원하지 않습니다—Access 토큰이 만료되지 않으므로 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 인증 연동을 시작하세요.

추가 자료