OAuth 승인이 실제로 무엇인지
제3자 앱에서 “Authorize”를 클릭하면 GitHub는 권한 부여를 기록합니다. 이제 그 앱은 승인한 권한 범위 내에서 내 대신 작업할 수 있습니다. 이 권한 부여는 브라우저 세션이 아니고, SSH 키도 아니며, 자체 설치 설정을 가진 설치된 GitHub App도 아닙니다. 각각은 서로 다른 곳에서 해지하거나 제거하므로, 첫 단계는 지금 보고 있는 접근 권한이 어떤 종류인지 식별하는 것입니다.
| 보이는 것 | 무엇인지 | 관리 위치 |
|---|---|---|
| 승인한 범위와 함께 나열된 제3자 앱 | OAuth 승인 | Settings → Applications → Authorized OAuth Apps |
| SSH를 통한 Git용으로 추가한 키 쌍 | SSH 키 | Settings → SSH and GPG keys |
| 이 브라우저에서 로그인된 상태 | 로그인 세션 | 로그아웃 또는 세션 페이지 |
| 저장소나 조직에 설치된 앱 | GitHub App 설치 | 해당 앱 또는 조직의 설치 설정 |
보고 있는 항목이 OAuth 승인이 아니라면, OAuth 목록에서 해지해도 그 문제는 해결되지 않습니다.
해지 전에 검토해야 하는 이유
오래된 승인이라도 배포 도구, 편집기 플러그인, CI 통합처럼 여전히 의존하는 작업을 수행하고 있을 수 있습니다. 해지하면 그 앱이 해당 권한을 통해 접근하는 것이 차단되며, 이는 의도한 바이지만 여전히 그 앱에 의존하는 워크플로가 중단될 수도 있습니다. 조치하기 전에 앱 이름, 나열된 권한, 마지막으로 사용한 시점을 검토하세요.
GitHub는 비공개 저장소에 접근할 수 있는 애플리케이션을 포함해 승인된 애플리케이션을 검토할 것을 권장합니다. 출처
앱을 알아보지 못하거나, 보유한 접근 권한이 수행하는 작업보다 넓다면 해지할 사유가 됩니다. 앱을 알아보고 여전히 사용한다면, 결정하기 전에 현재 범위가 여전히 적절한지 고려하세요.
해지 전후 체크리스트
무엇이 바뀌었는지 알 수 있고 필요하면 실수를 되돌릴 수 있도록 짧은 기록으로 사용하세요.
해지 전
- 앱 이름과 표시된 권한을 적어 두어 나중에 같은 항목을 알아볼 수 있게 하세요.
- 현재 사용하는 빌드, 배포, 편집기 로그인, 예약 작업 등이 해당 앱에 의존하는지 확인하세요.
- Authorized OAuth Apps를 보고 있는지, SSH 키나 세션, 설치된 앱을 보고 있는지 확인하세요.
- 특정 승인 하나를 해지할지, 전부 해지할지 결정하세요.
해지 후
- Authorized OAuth Apps 페이지를 새로고침하고 항목이 사라졌는지 확인하세요.
- 해당 앱을 사용하던 워크플로를 한 번 실행하고, 이제 재승인을 요구하는지 확인하세요. 그 요청은 권한이 제거되었다는 예상된 신호입니다.
- 워크플로가 중단되었고 여전히 필요하다면, 의도적으로 재승인하고 요청하는 범위를 검토하세요.
- 해지된 접근에 다른 것이 의존하지 않는다고 확신할 때까지 계정 복구 수단을 유지하세요.
승인을 해지하는 방법
계정 Settings에서 Integrations 아래의 Applications, 그다음 Authorized OAuth Apps를 열어 접근 권한을 검토하세요. 출처
목록에서 제거하려는 특정 앱의 메뉴를 여세요.
알아볼 수 없거나 오래된 승인은 앱 메뉴에서 해지할 수 있으며, 페이지에는 Revoke all도 있습니다. 출처
앱 하나만 제거하려면 해당 항목 하나를 해지하세요. Revoke all 옵션은 목록을 검토한 뒤 모든 승인을 지우려는 경우를 위한 것입니다. 보고 있던 앱 하나만이 아니라 그 페이지의 모든 앱에 영향을 줍니다.
염두에 둘 실패 경계
- 해지는 삭제가 아닙니다. 권한을 제거하면 그것을 통한 향후 접근이 중단됩니다. 앱이 이미 GitHub 외부에 저장하거나 복사한 데이터를 제거하지 않으며, 삭제를 보장하지도 않습니다.
- 해지는 로그아웃이 아닙니다. GitHub의 브라우저 세션은 별개입니다. 앱을 해지해도 로그아웃되지 않고, 로그아웃해도 앱 승인이 해지되지 않습니다.
- SSH 키는 OAuth 앱이 아닙니다. 걱정되는 접근 권한이 키라면, 제거는 Authorized OAuth Apps가 아니라 SSH and GPG keys 설정에서 이루어집니다.
- 설치된 GitHub App은 같은 항목이 아닙니다. 설치 수준 접근은 앱이 설치된 곳에서 관리되므로, 앱이 OAuth 목록에 나타나지 않으면 그곳을 확인하세요.
- 공개 사용자 이름 일치는 증거가 아닙니다. 어떤 핸들이 다른 곳에 나타나는지 확인할 때, 공개 프로필의 일치는 단서일 뿐 소유권의 증거가 아닙니다. TraceSeek은 3,000+ 플랫폼에서 알려진 공개 사용자 이름을 조회할 수 있지만, GitHub 설정을 대신 검토하거나 해지할 수는 없습니다.
승인을 의심스럽게 볼 때
조치하려면 극적인 사연이 필요하지 않습니다. 실용적인 신호는 앱을 알아보지 못하거나, 권한이 수행하는 작업보다 넓거나, 승인한 기억이 없는 경우입니다. 그럴 때는 특정 항목을 해지하는 것이 합리적인 단계이며, 이어서 의존하는 것이 작동을 멈추는지 확인하세요. 워크플로가 실제로 중단되면, 앱이 예상한 것이고 범위가 필요한 것과 일치하는지 확인한 뒤에만 재승인하세요.