GitHub 인증의 작동 방식

완료됨

이전 단원에서는 팀, 조직, 엔터프라이즈 수준의 일반적인 관리 작업에 대해 살펴보았습니다. 이 단원에서는 GitHub에 대한 사용자의 인증을 설정하고 제어하는 조직 소유자가 수행하는 가장 일반적인 관리 작업 중 하나를 살펴보겠습니다.

GitHub의 인증 옵션

GitHub를 사용하여 인증하기 위한 몇 가지 옵션이 있습니다.

사용자 이름 및 암호

관리자는 사용자가 ‘기본’ HTTP 인증 체계라고도 하는 기본 사용자 이름 및 암호 인증 방법을 계속 사용하도록 허용할 수 있습니다.

비고

GitHub는 더 이상 Git 작업 또는 API 사용에 대한 암호 인증을 지원하지 않습니다. 이 단원에 나열된 다른 옵션 중 하나(또는 여러 개)를 사용하는 것이 좋습니다.

개인용 액세스 토큰

개인용 액세스 토큰 화면의 스크린샷

PAT(개인용 액세스 토큰)는 GitHub API나 명령줄을 사용하는 경우 GitHub에 대한 인증에 암호를 사용하는 대신 사용할 수 있습니다. 사용자는 GitHub의 설정 옵션을 통해 토큰을 생성하고 리포지토리 또는 조직과 대한 권한을 토큰에 연결합니다. 사용자가 git 명령줄 도구를 사용하여 GitHub와 상호 작용하는 경우 사용자 이름과 암호를 입력하라는 메시지가 표시되면 토큰 정보를 입력할 수 있습니다.

SSH 키

개인용 액세스 토큰을 사용하는 대신 SSH 키를 사용하여 SSH를 통해 원격 서버 및 서비스에 연결하고 인증할 수 있습니다. SSH 키를 사용하면 사용자가 각 상호 작용에 대해 사용자 이름 및 개인용 액세스 토큰을 제공할 필요가 없습니다.

SSH를 설정하는 경우 사용자는 SSH 키를 생성하여 ssh-agent에 추가한 후 해당 키를 GitHub 계정에 추가합니다. SSH 키를 ssh-agent에 추가하면 SSH 키에 전달 구가 있는 추가 보안 레이어가 확보됩니다. 사용자는 git의 로컬 복사본을 구성하여 자동으로 암호를 제공하거나 git 명령줄 도구를 사용하여 GitHub와 상호 작용할 때마다 해당 복사본을 수동으로 제공할 수 있습니다.

SSH 키를 SAML SSO(Single Sign-On)를 사용하는 조직에서 소유한 리포지토리와 함께 사용할 수도 있습니다. 조직에서 SSH 인증서를 제공하는 경우 사용자는 해당 인증서를 사용하여 GitHub 계정에 인증서를 추가하지 않고 조직의 리포지토리에 액세스할 수도 있습니다.

키 배포

배포 키는 사용자에게 단일 리포지토리에 대한 액세스 권한을 부여하는 GitHub의 다른 유형의 SSH 키입니다. GitHub는 개인 사용자 계정 대신 리포지토리에 직접 키의 공개된 부분을 연결하고 키의 프라이빗 부분은 사용자의 서버에 남아 있습니다. 배포 키는 기본적으로 읽기 전용이지만 리포지토리에 추가할 때 쓰기 권한을 부여할 수 있습니다.

포크 설정을 구성하려면 다음을 수행합니다.

  1. 리포지토리의 설정으로 이동합니다.
  2. 왼쪽 사이드바의 보안 아래에서 키 배포를 클릭합니다.
  3. 배포 키 추가 옵션을 찾아 새 키를 만듭니다.

키 배포 옵션의 배포 키 추가를 보여 주는 스크린샷

GitHub의 추가된 보안 옵션

GitHub는 계정 및 조직 리소스를 보호하는 데 도움이 되는 다양한 보안 옵션을 제공합니다.

2단계 인증

2단계 인증 화면의 스크린샷

MFA(다단계 인증)라고도 하는 2FA(2단계 인증)는 GitHub 계정에 추가 보호 계층을 추가합니다. 2FA를 사용하면 사용자가 사용자 이름 및 암호를 사용하여 로그인한 다음 두 번째 형태의 인증을 제공합니다.

GitHub는 다음과 같은 몇 가지 2단계 옵션을 지원합니다.

  • 시간 기반 일회성 코드를 생성하는 인증자 앱(예: Microsoft Authenticator, Google Authenticator 또는 Authy)입니다.
  • FIDO2/WebAuthn을 지원하는 하드웨어 보안 키(예: YubiKey 또는 Titan 보안 키).
  • 암호 없는 피싱 방지 인증을 위한 암호 키입니다.
  • SMS 기반 코드는 지원되지만 다른 옵션보다 안전하지 않은 것으로 간주되며 기본 방법으로 권장되지 않습니다.

2FA 적용:

  • GitHub Team 및 GitHub Enterprise Cloud의 조직의 경우 조직 소유자는 구성원, 외부 협력자 및 청구 관리자에게 개인 계정에 대해 2FA를 사용하도록 요구할 수 있습니다.
  • EMU(Enterprise Managed Users) 및 GitHub Enterprise Server(GHE.com): 관리자는 엔터프라이즈 관리 계정에만 2FA를 요구할 수 있지만 사용자의 개인 GitHub.com 계정에는 2FA를 적용할 수 없습니다.

2FA를 적용하면 조직이 무단 액세스로부터 보호하고 리포지토리 및 중요한 데이터의 보안을 강화할 수 있습니다.

SAML SSO

IdP(ID 공급자)를 사용하여 사용자의 ID를 중앙에서 관리하는 경우 GitHub에서 조직의 리소스를 보호하도록 SAML SSO(Single Sign-On)를 구성할 수 있습니다. SAML SSO를 사용하면 조직 및 엔터프라이즈 소유자가 리포지토리, 문제, 끌어오기 요청 등에 대한 액세스를 제어하고 보호할 수 있습니다. 리소스에 액세스할 때 GitHub는 조직의 IdP를 사용하여 인증하도록 사용자를 리디렉션합니다.

GitHub는 SAML 2.0 표준을 구현하는 모든 ID 공급자를 지원하며, 다음을 비롯한 여러 인기 있는 공급자에 대한 공식 지원을 제공합니다.

  • AD FS(Active Directory Federation Services).
  • 마이크로소프트 Entra ID.
  • Okta.
  • 자동화합니다.
  • PingOne.

LDAP(GitHub Enterprise Server)

LDAP(Lightweight Directory Access Protocol)는 사용자 디렉터리 정보에 액세스하고 관리하는 데 널리 사용되는 프로토콜입니다. GitHub Enterprise Server에서 LDAP 통합을 사용하면 기존 회사 디렉터리에 대해 사용자를 인증하고 리포지토리 액세스를 중앙에서 관리할 수 있습니다.

GitHub Enterprise Server는 다음과 같은 주요 LDAP 서비스와 통합됩니다.

GitHub Enterprise 서버는 다음과 같은 많이 사용되는 LDAP 서비스와 통합됩니다.

  • Active Directory.
  • Oracle Directory Server Enterprise Edition.
  • OpenLDAP.
  • 디렉터리를 엽니다.