GitHub 앱 vs. OAuth 앱: 올바른 GitHub 연결 방식 선택하기
Logto 연동을 위한 GitHub 앱과 OAuth 앱을 비교하세요. 보안, 권한, 토큰 관리의 핵심 차이를 배우고, 애플리케이션에 알맞은 GitHub 인증 방식을 선택하세요.
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 앱 생성하기
-
"GitHub 설정 > 개발자 설정 > GitHub 앱"으로 이동하세요.
-
"새 GitHub 앱" 클릭
-
다음 항목을 설정하세요:
- GitHub 앱 이름: 앱의 고유 식별자
- 홈페이지 URL: 애플리케이션 웹사이트
- 콜백 URL: Logto 커넥터의 콜백 URI(OAuth 앱과 동일)
- 설치 시 사용자 인증(OAuth) 요청: 활성화하세요
- 웹훅: 필요시 선택(선택 사항)
- 권한: 세분화된 권한 선택(예: "

