팀 동기화
회사에서 IdP(ID 공급자)로 Microsoft Entra ID 또는 Okta를 사용하는 경우 팀 동기화를 통해 GitHub 팀 멤버 자격을 관리할 수 있습니다. 사용하도록 설정하면 팀 동기화는 GitHub의 IdP 그룹의 변경 내용을 자동으로 반영하여 수동 업데이트 또는 사용자 지정 스크립트의 필요성을 줄입니다. 이 중앙 집중식 접근 방식은 온보딩, 권한 관리 및 액세스 해지를 간소화합니다.
| 특징 | 설명 |
|---|---|
| 사용자 동기화 | GitHub Teams를 IdP(예: Active Directory) 그룹 멤버 자격과 일치하도록 유지하세요. |
| 새 팀에서 동기화 | 만들 때 팀을 자동으로 채웁니다. |
| 사용자 지정 팀 매핑 | 팀 슬러그와 그룹 이름 간에 사용자 지정 매핑을 정의하는 데 사용 syncmap.yml |
| 동적 구성 | settings 파일을 사용하여 디렉터리 구조에서 동기화 설정 파생 |
팀 동기화 사용 사례
팀 동기화는 GitHub 조직 내에서 멤버 자격 관리를 간소화하려는 기업에 적합합니다. 관리자는 GitHub 팀을 IdP 그룹에 매핑하고 멤버 자격을 자동으로 관리할 수 있습니다. 이 기능은 다음과 같은 경우에 유용합니다.
- 신입 사원 온보딩
- 사용자가 팀 간에 이동할 때 액세스 조정
- 조직을 떠나는 사용자 제거
⚠️ 팀 동기화를 사용하려면 IdP 관리자가 SAML SSO 및 SCIM을 사용하도록 설정해야 합니다.
엔터프라이즈 관리 사용자 및 GitHub Enterprise Server
GitHub Enterprise Cloud 또는 GitHub Enterprise Server(GHE.com)를 사용하는 조직 및 엔터프라이즈 계정에서도 팀 동기화를 사용할 수 있습니다. 이 솔루션은 규정 준수를 위해 사용 가능하거나 필요한 지역에서 선호되는 솔루션입니다.
EMU(Enterprise Managed Users) 는 엔터프라이즈가 사용자 ID 및 계정 수명 주기를 완벽하게 제어할 수 있도록 하는 GitHub Enterprise Cloud 기능입니다. EMU를 사용하면 GitHub 계정이 엔터프라이즈 ID 공급자(IdP)에 의해 완전히 관리됩니다. 즉, 사용자가 GitHub에 수동으로 등록하지 않습니다. 모든 사용자 프로비저닝, 액세스 및 오프보딩은 Microsoft Entra ID 또는 Okta와 같은 도구를 통해 자동화됩니다.
EMU는 엄격한 규정 준수, 감사 또는 사용자 거버넌스 요구 사항이 있는 조직에 적합합니다. 이를 통해 다음을 수행할 수 있습니다.
- 모든 계정은 엔터프라이즈가 소유합니다.
- IdP 멤버 자격에 따라 액세스 권한이 자동으로 부여되거나 제거됩니다.
- 의도치 않게 외부 협업이 발생하지 않음
EMU를 사용하는 경우:
- 관리되는 사용자는 엔터프라이즈 외부의 리포지토리에 코드를 푸시하거나 포크할 수 없습니다.
- 엔터프라이즈 내의 다른 사용자 및 리소스와만 상호 작용할 수 있습니다.
IdP의 그룹을 사용하여 EMU 기반 조직 및 팀 멤버 자격을 관리하고 필요에 따라 팀 동기화 를 통합하여 그룹 간 매핑을 자동화할 수 있습니다.
자체 호스팅 또는 특정 지역 규정과 관련된 요구 사항이 있는 조직의 경우 GitHub Enterprise Server(GHE.com)는 GitHub 환경을 완전히 제어할 수 있는 온-프레미스 솔루션을 제공합니다.
자세한 내용은 GitHub Enterprise Cloud 시작하기 및 GitHub Enterprise Server 정보를 참조하세요.
팀 동기화와 GHES용 SCIM 비교
GHES(GitHub Enterprise Server)에서 팀 동기화 및 SCIM(도메인 간 ID 관리)을 비롯한 다양한 방법을 통해 사용자 액세스 및 팀 멤버 자격을 관리할 수 있습니다. 이러한 방법을 이해하는 것은 효과적인 관리에 필수적입니다.
GHES의 팀 동기화
팀 동기화를 사용하면 IdP(ID 공급자)의 그룹과 GitHub 팀을 연결할 수 있습니다. 이 통합을 통해 멤버 추가 또는 제거와 같은 IdP 그룹의 모든 변경 내용이 해당 GitHub 팀에 자동으로 반영됩니다. 이 방법은 IdP 내에서 사용자 액세스 제어를 중앙 집중화하여 팀 관리를 간소화합니다.
그러나 팀 동기화는 사용자 프로비저닝 서비스가 아니며 대부분의 경우 비회원이 조직에 가입하도록 초대하지 않는다는 점에 유의해야 합니다. 따라서 사용자는 이미 조직 구성원인 경우에만 팀에 성공적으로 추가됩니다.
팀 동기화가 실제로 작동하는 방식을 이해하려면 다음 시나리오를 고려하세요.
- Azure AD 그룹 "DevOps 엔지니어"가 GitHub 팀 "DevOps"에 매핑되는 경우
- Alice가 IdP 그룹에 추가되면 → GitHub 팀에 자동으로 추가됩니다.
- 그녀가 그룹을 떠날 때 → 자동으로 팀에서 제거됩니다.
비고
GHES의 팀 동기화는 계정을 프로비전하지 않습니다. 사용자는 이미 GitHub 조직 구성원이어야 합니다.
팀 동기화 사용
- IdP에서 SAML(Security Assertion Markup Language) SSO(Single Sign-On) 및 SCIM을 사용하도록 설정합니다.
- GitHub UI 또는 API를 통해 GitHub 팀을 IdP 그룹에 매핑합니다.
- 그룹 멤버 자격의 변경 내용이 GitHub에 자동으로 동기화됩니다.
지원되는 IdP:
- Microsoft Entra ID: 프로필 읽기 및 디렉터리 액세스에 대한 권한이 필요합니다.
- Okta: 읽기 전용 관리자 액세스 권한이 있는 SAML SSO, SCIM, 테넌트 URL 및 SSWS(Web Systems) 토큰에 대한 Single Sign-On이 필요합니다.
팀 동기화 사용 안 함
사용하지 않도록 설정하려면:
- 설정>조직 보안으로 이동
- 팀 동기화 사용 안 함 클릭
비고
동기화를 사용하지 않도록 설정하면 IdP 매핑을 통해 추가된 경우 팀에서 사용자가 제거됩니다.
GHES의 SCIM
SCIM은 ID 도메인과 IT 시스템 간의 사용자 ID 정보 교환을 자동화하도록 설계된 개방형 표준 프로토콜입니다. GHES의 컨텍스트에서 SCIM을 사용하면 관리자가 GitHub API를 통해 직접 사용자 계정을 프로비전, 업데이트 및 프로비저닝 해제할 수 있습니다. 즉, 사용자 계정을 만들고, 업데이트하고, 삭제하고, 그룹 정보를 동기화하여 GitHub 팀 멤버 자격을 매핑할 수 있습니다.
SCIM은 사용자 수명 주기를 대규모로 관리하여 사용자 데이터가 시스템 간에 일관성을 유지하도록 하는 데 유용합니다.
SCIM이 실제로 작동하는 방식을 이해하려면 다음 시나리오를 고려하세요.
- Okta SCIM 통합은 GitHub 사용자를 자동으로 프로비전합니다.
- Bob이 Okta에 추가되면 GitHub 계정이 프로비저닝됨
- Bob의 직무 변경 → 액세스 권한 및 팀 업데이트
- Bob의 퇴사 → 계정 프로비전 해제
주요 이점: 계정 수명 주기 관리를 위한 전체 자동화입니다.
팀 동기화 및 그룹 SCIM 비교
GitHub는 다음 두 가지 기본 ID 통합 방법을 지원합니다.
- 팀 동기화: GitHub 팀에 그룹 멤버 자격 동기화에 집중
- 그룹 SCIM: 사용자 및 그룹의 전체 수명 주기 관리에 집중
팀 동기화와 그룹 SCIM 간의 차이점
| 특징 | 팀 동기화 | SCIM 그룹화 |
|---|---|---|
| 포커스 | 팀 수준 매핑 | 사용자 및 그룹 프로비저닝 |
| 설정 | 수동 그룹-팀 매핑 | IdP SCIM 구성을 통해 자동화됨 |
| 자동화 수준 | 그룹 멤버 자격만 동기화 | 전체 수명 주기 자동화 |
| 이상적인 사용 사례 | GitHub Teams 관리 | 사용자 이직률이 높은 대규모 조직 |
| 프로비전 해제 | 수동 또는 IdP 그룹 종속 | 완전 자동화됨 |
| ID 모델 | 고전 | 관리되는 사용자 |
올바른 방법 선택
팀 동기화와 그룹 SCIM 간의 선택은 조직의 요구 사항, 크기 및 기존 ID 관리 인프라에 따라 달라집니다.
| 사용 사례 | 권장 해결 방법 |
|---|---|
| 팀별 리포지토리 액세스 관리 | 팀 동기화 |
| 사용자 수명 주기 자동화 | SCIM 그룹화 |
| 전체 IdP 기반 거버넌스 필요 | SCIM 그룹화 |
| GitHub Teams는 워크플로의 핵심입니다. | 팀 동기화 |
사용량 제한
팀 동기화를 사용하는 경우 다음 제한을 준수합니다.
- 팀당 최대 구성원 수: 5,000명
- 조직당 최대 구성원 수: 10,000명
- 조직당 최대 팀 수: 1,500개
이를 초과하면 성능 문제 또는 동기화 오류가 발생할 수 있습니다.