참고 항목
SCIM 지원은 GitHub Enterprise Server의 이 버전에서 공개 미리 보기로 제공됩니다. SCIM 지원은 일반적으로 버전 3.17 이상에서 사용할 수 있습니다.
GitHub Enterprise Server 인스턴스에 SCIM을 활성화한 경우 SCIM을 사용하여 다음을 수행할 수 있습니다.
- 사용자 및 그룹을 프로비전을 해제하여 액세스 권한을 제거합니다.
- 이전에 프로비전이 해제된 사용자를 다시 프로비전합니다.
사용자 프로비전을 해제하기 전에 프로비전 해제로 인한 영향을 이해하는 것이 중요합니다. 프로비전 해제로 인한 영향은 GitHub가 ID 공급자로부터 받은 프로비전 해제 API 호출 유형에 따라 달라집니다.
중요
더 자세히 알아보기 전에, 사용자의 엔터프라이즈가 SCIM을 구현하는 방법을 이해하는 것이 중요합니다. GitHub는 지원되는 IdP(ID 공급자)로 인증 및 프로비전을 모두 사용하는 경우를 위해 "paved-path" 애플리케이션을 제공합니다. paved-path 애플리케이션을 사용하지 않는 경우, REST API를 사용하여 SCIM 요청을 해야 합니다. GitHub Enterprise Server에서 SCIM을 사용하여 사용자 프로비저닝 정보을(를) 참조하세요.
사용자 프로비전 해제 유형
사용자의 프로비전이 해제되면 GitHub 계정이 일시 중단되어 사용자가 엔터프라이즈에 액세스할 수 없게 됩니다. 프로비전 해제 유형에 관계없이 프로비전 해제된 계정은 엔터프라이즈에서 삭제되지 않습니다.
GitHub가 ID 공급자로부터 받은 프로비전 해제 호출 유형에 따라 프로비전이 해제된 사용자의 일시 중단 상태를 해제(복원)할 수 있는지 여부가 결정됩니다.
- 소프트 프로비전 해제: 특정 시나리오에서는 SCIM 통합을 통해 사용자의 일시 중단 상태를 해제할 수 있습니다.
- 하드 프로비전 해제: 사용자의 일시 중단 상태를 해제할 수 없습니다. 사용자가 다시 액세스해야 하는 경우, 새 계정을 프로비전해야 합니다.
사용자 프로비전 해제의 영향
IdP 또는 REST API를 통해 사용자 계정의 프로비전을 해제하면 GitHub가 사용자 계정을 변경하게 됩니다.
소프트 프로비전 해제의 영향
- 사용자는 일시 중단되고 엔터프라이즈 및 모든 프라이빗 리소스에 대한 액세스 권한을 상실합니다.
- 사용자 계정이 일시 중단되면 엔터프라이즈 설정의 "People" 섹션에 있는 "Members" 페이지 대신 "Suspended members" 페이지에 나열됩니다.
- 사용자의 원래 사용자 이름의 해시값으로 사용자 이름은 난독 처리됩니다.
- Entra ID를 사용하면 사용자의 메일 주소가 동일하게 유지됩니다. 다른 모든 경우에서 사용자의 메일은 난독 처리됩니다.
- 사용자의 SCIM ID는 GitHub의 사용자 계정에 연결된 상태로 유지됩니다. Entra ID를 사용하면 저장되어 있는 연결된 SCIM ID의
active
특성 값 값이True
에서False
로 업데이트됩니다. - 사용자에게 프라이빗 또는 내부 리포지토리의 포크가 있는 경우, 포크는 24시간 이내에 삭제됩니다. 사용자가 90일 이내에 일시 중단 상태를 해제하면 포크는 복원됩니다.
- 사용자가 SCIM 프로비전된 IdP 그룹의 구성원인 경우, 이러한 그룹에서 숨겨지고 해당 그룹에 매핑된 모든 팀에서 제거됩니다. 사용자가 여전히 IdP 쪽 그룹의 구성원인 경우에도 이 현상은 발생합니다.
- IdP 그룹에서 조직 구성원 자격을 관리하는 경우, 사용자가 해당 IdP 그룹에서 제거되거나 조직의 IdP 그룹에 매핑된 모든 팀에서 제거될 때 조직에서 제거됩니다.
- 조직 구성원 자격이 직접 관리되는 경우, 사용자는 수동으로 제거될 때까지 액세스 권한 없이 조직의 "일시 중단된 구성원"으로 유지됩니다.
하드 프로비전 해제의 영향
- 사용자는 일시 중단되고 엔터프라이즈 및 모든 프라이빗 리소스에 대한 액세스 권한을 상실합니다.
- 사용자 계정이 일시 중단되면 엔터프라이즈 설정의 "People" 섹션에 있는 "Members" 페이지 대신 "Suspended members" 페이지에 나열됩니다.
- 사용자의 원래 사용자 이름의 해시값으로 사용자 이름은 난독 처리됩니다.
- 사용자의 메일 주소가 난독 처리됩니다.
- 사용자의 표시 이름이 빈 문자열로 설정됩니다.
- 사용자의 모든 SCIM 특성을 포함하여 연결된 SCIM ID가 삭제됩니다.
- 사용자의 personal access tokens, fine-grained personal access tokens, SSH 키, GPG 키, 애플리케이션 권한이 삭제됩니다. 키를 삭제하면 커밋 확인에 영향을 줄 수 있습니다. 커밋 서명 확인 정보을(를) 참조하세요.
- 사용자가 소유한 리포지토리가 삭제됩니다.
- 사용자가 만든 리소스(예: 댓글)는 보관됩니다.
- 사용자가 SCIM 프로비전된 IdP 그룹의 구성원인 경우, 이러한 그룹에서 숨겨지고 해당 그룹에 매핑된 모든 팀에서 제거됩니다. 사용자가 여전히 IdP 쪽 그룹의 구성원인 경우에도 이 현상은 발생합니다.
- IdP 그룹에서 조직 구성원 자격을 관리하는 경우, 사용자가 해당 IdP 그룹에서 제거되거나 조직의 IdP 그룹에 매핑된 모든 팀에서 제거될 때 조직에서 제거됩니다.
- 조직 구성원 자격이 직접 관리되는 경우, 사용자는 수동으로 제거될 때까지 액세스 권한 없이 조직의 "일시 중단된 구성원"으로 유지됩니다.
프로비전 해제를 트리거하는 작업
소프트 프로비전 해제와 하드 프로비전 해제는 다양한 작업에 의해 트리거되며, 트리거는 SCIM 통합에 따라 달라집니다. 일반적으로 "paved-path" IdP 애플리케이션에서 수행하는 대부분의 작업은 몇 가지 예외를 제외하고 소프트 프로비전 해제만 트리거합니다.
소프트 프로비전 해제 트리거
SCIM 통합 | 소프트 프로비전 해제 트리거 |
---|---|
REST API | PUT 또는 PATCH 요청이 /scim/v2/Users/{scim_user_id} 로 전송되어 사용자의 active 필드가 false 로 업데이트됩니다. |
Entra ID | Entra ID에서 사용자가 비활성화되거나, 애플리케이션에서 할당되지 않거나, 할당된 모든 그룹에서 제거되거나, 관리자에 의해 테넌트에서 일시 삭제됩니다. 자세한 내용은 Microsoft 설명서의 일시 삭제를 참조하세요. |
Okta | 사용자가 애플리케이션에서 할당되지 않거나, 할당된 모든 그룹에서 제거되거나, "Deactivate" 단추로 비활성화됩니다. "Suspend" 단추를 눌러도 GitHub에 요청을 보내지 않습니다. Okta는 소프트 프로비전 해제 호출만 보냅니다. |
PingFederate | 사용자가 프로비전 프로그램을 대상으로 하는 사용자 리포지토리에서 일시 중단, 비활성화, 제거됩니다. |
하드 프로비전 해제 트리거
SCIM 통합 | 하드 프로비전 해제 트리거 |
---|---|
REST API | DELETE 요청이 /scim/v2/Users/{scim_user_id} 로 전송됩니다. |
Entra ID | Microsoft 설명서의 영구 삭제에 설명된 대로 Entra ID 사용자 계정을 영구 삭제합니다. 일시 삭제된 Entra ID 사용자(Entra ID 관리 포털의 "Users > Deleted users" 페이지에 표시됨)는 일시 삭제된 후 30일이 지나면 Entra ID에 의해 자동으로 영구 삭제됩니다. |
Okta | 해당 없음. Okta는 하드 프로비전 해제 호출을 보내지 않습니다. |
PingFederate | 잘못된 구성으로 인해 "Remove User Action" 설정이 "Disable" 대신 "Delete"로 설정된 경우, 이 작업은 하드 프로비전 해제 호출을 보냅니다. PingIdentity 설명서를 참조하세요. |
소프트 프로비전 해제된 사용자 계정 복원
사용자의 액세스 및 계정 세부 정보를 복원하려면 IdP 사용자 계정이 같은 한 소프트 프로비전 해제된 사용자의 계정을 다시 프로비전할 수 있습니다. 소프트 프로비전 해제된 사용자 계정은 SCIM external ID
(IdP 사용자 개체 ID) 및 SCIM User ID
에 따라 여전히 이 외부 ID에 연결되어 있으므로 IdP 사용자 계정은 동일해야 합니다. 소프트 프로비전 해제된 개별 사용자 계정에 연결된 외부 ID는 변경할 수 없습니다.
다시 프로비전의 영향
- 사용자의 일시 중단 상태가 해제되고 엔터프라이즈에 다시 액세스할 수 있습니다.
- 사용자의 사용자 이름 및 메일 주소가 복원되었습니다.
- 사용자가 조직의 팀에 매핑되는 SCIM 프로비전 IdP 그룹의 구성원인 경우, 사용자 계정이 다시 프로비전되는 즉시 사용자가 조직에 추가됩니다. 이전에 조직의 구성원이었던 경우, 구성원 자격은 제명된 후 90일이 넘지 않는 한 복원됩니다. 조직의 이전 멤버 복원을(를) 참조하세요.
- 사용자가 조직의 팀에 매핑된 SCIM 프로비전 IdP 그룹의 구성원이 아닌 경우, GitHub 조직 소유자는 사용자가 다시 프로비전된 후 사용자 계정을 조직에 수동으로 추가해야 합니다.
- 사용자가 일시 중단된 후 최대 90일 이내에 일사 중단 상태가 해제되면 삭제된 포크가 복원됩니다.
- 사용자와 연결된 항목은 다음을 포함하여 모두 복원됩니다.
- GitHub Apps, OAuth apps, 앱 권한 부여
- Personal access tokens
- SSH 키
- 토큰 및 키 권한 부여
- 사용자 소유 리포지토리
다시 프로비전을 트리거하는 작업
사용자를 다시 프로비전하는 방법은 SCIM 통합 및 소프트 프로비전 해제를 트리거한 작업에 따라 달라집니다.
SCIM 구현 | 사용자를 다시 프로비전하는 작업 |
---|---|
Entra ID | 비활설화된 계정을 다시 활성화하거나 사용자를 애플리케이션에 직접 또는 할당된 그룹을 통해 다시 할당합니다. 변경 내용이 처리될 때까지 40분 정도 기다리거나 "Provision on Demand" 단추를 사용하여 신속하게 처리하세요. |
Okta | 계정을 다시 활성화하거나 사용자를 애플리케이션에 직접 또는 할당된 그룹을 통해 다시 할당합니다. |
PingFederate | 사용자 저장소에서 사용자의 일시 중단 상태를 해제 또는 다시 활성화하거나, 프로비전 프로그램에서 대상으로 하는 데이터 저장소 그룹 또는 필터에 사용자를 다시 추가합니다. |
REST API | PUT 또는 PATCH 요청이 /scim/v2/Users/{scim_user_id} 로 전송되어 사용자의 active 필드가 true 로 업데이트됩니다. |
하드 프로비전 해제된 사용자 계정 복원
SCIM을 통해 하드 프로비전된 GitHub 사용자 계정은 복원할 수 없습니다. 대신, 사용자에 대한 새로운 GitHub 계정을 프로비전해야 합니다.
새 계정을 프로비전할 때 하드 프로비전되지 않은 사용자의 사용자 이름을 다시 사용할 수 있습니다. 그러나 GitHub에서 하드 프로비전이 해제된 사용자 계정을 새 사용자 계정과 병합할 수는 없습니다.
- 완전히 프로비전 해제된 사용자와 새 사용자의 메일 주소가 일치하는 경우, GitHub는 메일 주소와 연결된 기존 Git 커밋의 특성을 새 사용자에게 지정합니다.
- 원래 사용자가 만든 기존 리소스와 주석은 새 사용자와 연결되지 않습니다.
감사 로그 이벤트
엔터프라이즈에 대한 감사 로그에는 기업의 활동에 대한 세부 정보가 표시됩니다. 감사 로그를 사용하여 SCIM 구성을 지원할 수 있습니다. 자세한 내용은 엔터프라이즈의 감사 로그 정보을(를) 참조하세요.
중요
엔터프라이즈 소유자는 감사 로그 스트리밍, 소스 IP 공개, API 요청 스트리밍 옵션 등의 엔터프라이즈 감사 로그 기능을 활성화하는 것이 좋습니다. 이러한 이벤트를 스트리밍하면 관리자는 비즈니스 요구 사항에 맞는 로그 보존 정책을 설정하고 이러한 로그를 쿼리하기 위해 선호하는 도구를 사용할 수 있습니다.
소프트 프로비전 해제를 위한 이벤트
사용자를 소프트 프로비전 해제하면 external_identity.update
이벤트가 감사 로그에 표시되지 않습니다. 다음 이벤트가 감사 로그에 표시됩니다.
user.suspend
user.remove_email
user.rename
external_identity.deprovision
- 요청이 성공하는 경우
external_identity.scim_api_success
- 요청이 실패하는 경우
external_identity.scim_api_failure
- 사용자가 팀에 매핑된 IdP 그룹의 구성원인 경우,
team.remove_member
- 조직의 사용자 구성원 자격이 IdP에서 관리되고 조직의 IdP 그룹에 매핑된 모든 팀에서 제거되는 경우,
org.remove_member
하드 프로비전 해제를 위한 이벤트
external_identity.deprovision
user.remove_email
- 요청이 성공하는 경우
external_identity.scim_api_success
- 요청이 실패하는 경우
external_identity.scim_api_failure
- 사용자가 팀에 매핑된 IdP 그룹의 구성원인 경우,
team.remove_member
- 조직의 사용자 구성원 자격이 IdP에서 관리되고 조직의 IdP 그룹에 매핑된 모든 팀에서 제거되는 경우,
org.remove_member
다시 프로비전하기 위한 이벤트
사용자를 재활성화하면 external_identity.update
이벤트가 감사 로그에 표시되지 않습니다. 다음 이벤트가 감사 로그에 표시됩니다.
user.unsuspend
user.remove_email
user.rename
external_identity.provision
- 요청이 성공하는 경우
external_identity.scim_api_success
- 요청이 실패하는 경우
external_identity.scim_api_failure
- 사용자가 SCIM 프로비전 IdP 그룹의 구성원이고 이 그룹이 조직의 팀에 매핑된 경우,
org.add_member