Note
이것은 GitHub Enterprise Server에 대한 오래된 프라이빗 베타 버전의 SCIM입니다. 고객은 SCIM 피드백 또는 버그 보고서를 고려하면 3.14 이상으로 업그레이드하고 GitHub Enterprise Server SCIM 베타을(를) 사용해야 합니다.
Warning
베타는 테스트 및 피드백 전용이며 지원은 제공되지 않습니다. GitHub은(는) 스테이징 인스턴스로 테스트하는 것이 좋습니다. 자세한 내용은 "스테이징 인스턴스 설정"을(를) 참조하세요.
GitHub Enterprise Server에 대한 사용자 프로비저닝 정보
GitHub Enterprise Server 인스턴스에 대해 SSO(SAML Single Sign-On)를 사용하는 경우 IDP에서 애플리케이션을 할당하거나 할당 해제할 때 사용자 계정을 자동으로 생성하거나 일시 중단하고 인스턴스에 대한 액세스를 허용하도록 SCIM을 구성할 수 있습니다. SCIM에 관한 자세한 내용은 IETF 웹 사이트에서 SCIM(System for Cross-domain Identity Management): 프로토콜(RFC 7644)을 참조하세요.
SCIM을 사용하여 사용자 프로비저닝을 구성하지 않으면 사용자에게 애플리케이션을 할당하거나 할당 취소할 때 IdP가 GitHub Enterprise Server와 자동으로 통신하지 않습니다. SCIM을 사용하지 않으면 GitHub Enterprise Server는 누군가가 처음으로 GitHub Enterprise Server로 이동하고 IdP를 통해 인증하여 로그인할 때 SAML JIT(Just-In-Time) 프로비저닝을 사용하여 사용자 계정을 만듭니다.
엔터프라이즈에 대한 프로비저닝을 구성하려면 GitHub Enterprise Server에서 프로비저닝을 사용하도록 설정해야 합니다. 은(는) IdP에 대한 GitHub의 REST API 엔드포인트를 사용하여 수동으로 SCIM 프로비저닝을 구성합니다.
지원되는 ID 공급자
계정 팀은 프라이빗 베타 중에 지원 IdP의 GitHub Enterprise Server에 대한 SCIM 구성 설명서를 제공합니다.
SCIM을 사용하여 사용자 수명 주기를 어떻게 관리합니까?
SCIM을 사용하면 IdP에서 사용자 계정의 수명 주기를 관리할 수 있습니다.
- 새 사용자를 프로비전하면 IdP는 GitHub Enterprise Server 인스턴스에서 계정을 만들고 사용자에게 온보딩 이메일을 보내라는 메시지를 표시합니다. IdP에서 애플리케이션에 그룹을 할당하는 경우 IdP는 그룹의 모든 구성원에 대한 계정을 프로비저닝합니다.
- IdP에서 사용자 ID와 관련된 정보를 업데이트하면 IdP가 GitHub의 사용자 계정을 업데이트합니다.
- IdP 애플리케이션에서 사용자를 할당 해제하거나 IdP에서 사용자 계정을 비활성화하면 IdP는 GitHub과(와) 통신하여 모든 세션을 무효화하고 구성원의 계정을 비활성화합니다. 사용하지 않도록 설정된 계정의 정보는 유지되며 사용자 이름은 원래 사용자 이름의 해시로 변경됩니다.
- 사용자를 IdP 애플리케이션에 다시 할당하거나 IdP에서 계정을 다시 활성화하면 사용자 계정이 다시 활성화되고 사용자 이름이 복원됩니다.
SCIM을 사용하도록 설정하면 GitHub Enterprise Server에서 SCIM 프로비저닝된 사용자를 직접 삭제, 일시 중단 또는 승격할 수 없습니다. IdP에서 이러한 프로세스를 관리해야 합니다.
내 인스턴스의 기존 사용자는 어떻게 됩니까?
현재 SAML SSO를 사용하고 SCIM을 사용하도록 설정하는 경우 SCIM 프로비저닝 중에 기존 사용자에게 어떤 일이 발생하는지 알고 있어야 합니다.
- SCIM을 사용하도록 설정하면 SAML 연결 ID를 가진 사용자는 SCIM에서 ID를 프로비전할 때까지 로그인할 수 없습니다.
- 인스턴스가 SCIM 요청을 받으면
userName
SCIM 필드를 GitHub 사용자 이름과 비교하여 기존 사용자와 SCIM ID가 일치시킵니다. 일치하는 사용자 이름을 가진 사용자가 없으면 GitHub에서 새 사용자를 만듭니다. - GitHub이(가) IDP에서 사용자를 성공적으로 식별했지만 전자 메일 주소, 이름 또는 성과 같은 계정 세부 정보가 일치하지 않으면 인스턴스는 IDP의 값으로 세부 정보를 덮어씁니다. SCIM에서 프로비전된 기본 이메일 이외의 이메일 주소도 사용자 계정에서 삭제됩니다.
SAML 인증 중에는 어떤 일이 일어나나요?
IdP 관리자가 사용자에게 GitHub Enterprise Server 인스턴스에 대한 액세스 권한을 부여하면 사용자가 IdP를 통해 인증하여 SAML SSO를 사용하여 GitHub Enterprise Server에 액세스할 수 있습니다.
- 사용자가 SAML을 통해 인증하는 경우 사용자를 SAML ID와 연결하기 위해 GitHub은(는) IdP(또는 구성한 다른 값)의 정규화된
NameID
선언을 계정의 사용자 이름과 비교합니다. 정규화에 대한 자세한 내용은 "외부 인증에 대한 사용자 이름 고려 사항"을(를) 참조하세요. - 인스턴스에 일치하는 사용자 이름을 가진 계정이 없으면 사용자가 로그인하지 못합니다.
- GitHub Enterprise Server은(는) IDP의 SAML
NameId
클레임과 인스턴스의 SCIM에서 프로비전된 각 사용자 계정에 대한 SCIMuserName
특성을 비교합니다. - 또한 Entra ID의 경우 GitHub Enterprise Server은(는) SAML 요청의 개체 식별자를 기존 SCIM 외부 ID와 비교합니다.
- GitHub Enterprise Server은(는) IDP의 SAML
- 환경에서 사용자를 고유하게 식별하는 데
NameID
을(를) 이용하지 않는 경우, 사이트 관리자는 인스턴스에 사용자 지정 사용자 특성을 구성할 수 있습니다. GitHub Enterprise Server은(는) SCIM이 구성될 때 이 매핑을 따릅니다. 사용자 특성 매핑에 대한 자세한 내용은 "엔터프라이즈에 대한 SAML Single Sign-On 구성"을 참조하세요.
필수 조건
-
GitHub Enterprise Server 인스턴스에 대한 SAML SSO를 구성해야 합니다. 자세한 내용은 "엔터프라이즈에 대한 SAML Single Sign-On 구성"을(를) 참조하세요.
-
IdP에 계정이 없는 사용자에게는 기본 제공 인증을 허용해야 합니다. 자세한 내용은 "공급자 외부 사용자에게 기본 제공 인증 허용"을(를) 참조하세요.
-
IdP는 SP(서비스 제공자)에 대한 SCIM 호출을 지원해야 합니다.
-
GitHub Enterprise Server에 대한 사용자 프로비저닝을 위해 애플리케이션을 구성하려면 IdP에 대한 관리 액세스 권한이 있어야 합니다.
엔터프라이즈에 대한 사용자 프로비저닝 사용
인스턴스에서 프로비전 동작을 수행하려면 기본 제공 사용자 계정을 만들고 계정을 엔터프라이즈 소유자로 승격합니다.
GitHub Enterprise Server 인스턴스에서 SCIM을 사용하도록 설정하면 모든 사용자 계정이 일시 중단됩니다. 기본 제공 사용자 계정은 계속해서 프로비전 동작을 수행합니다. IdP에서 인스턴스에 대한 사용자 액세스 권한을 부여한 후, IdP는 SCIM을 사용하여 인스턴스와 통신하여 사용자 계정을 일시 중단합니다.
-
인스턴스에 프로비전 동작을 수행하는 기본 제공 사용자 계정을 만듭니다. 자세한 내용은 "공급자 외부 사용자에게 기본 제공 인증 허용"을(를) 참조하세요.
-
전용 사용자 계정을 엔터프라이즈 소유자로 승격합니다. 자세한 내용은 "엔터프라이즈를 관리할 사용자 초대"을(를) 참조하세요.
-
새 엔터프라이즈 소유자로 인스턴스에 로그인합니다.
-
admin:enterprise 범위를 사용하여 personal access token (classic)을(를) 만듭니다. personal access token (classic)의 만료 날짜를 지정하지 마세요. 자세한 내용은 "개인용 액세스 토큰 관리"을(를) 참조하세요.
Warning
personal access token (classic)의 만료 날짜를 지정하지 마세요. 만료 날짜를 지정할 경우 만료 날짜가 지나면 SCIM이 더 이상 작동하지 않습니다.
Note
SCIM 구성을 테스트하고 IdP에서 SCIM에 대한 애플리케이션을 구성하려면 이 personal access token이 필요합니다. 이 지침의 뒷부분에서 토큰이 다시 필요할 때까지 토큰을 암호 관리자에 안전하게 저장합니다.
-
에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. HOSTNAME을 인스턴스의 호스트 이름 또는 노드의 호스트 이름이나 IP 주소로 바꿉니다. 자세한 내용은 "관리 셸(SSH)에 액세스"을(를) 참조하세요.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
SCIM을 사용하도록 설정하려면 GitHub의 영업 팀에서 계정 관리자가 제공한 명령을 실행합니다.
-
구성 실행이 완료될 때까지 기다립니다.
-
SCIM이 작동하는지 확인하려면 다음 명령을 실행합니다. PAT FROM STEP 3 및 YOUR INSTANCE'S HOSTNAME 실제 값으로 대체합니다.
$ GHES_PAT="PAT FROM STEP 3" $ GHES_HOSTNAME="YOUR INSTANCE'S HOSTNAME" $ curl --location --request GET 'https://$GHES_HOSTNAME/api/v3/scim/v2/Users' \ --header 'Content-Type: application/scim' \ --header 'Authorization: Bearer $GHES_PAT'
명령은 빈 배열을 반환해야 합니다.
-
IdP에서 GitHub Enterprise Server에 대한 애플리케이션의 사용자 프로비저닝을 구성합니다. 지원되는 IDP에 대한 문서를 요청하려면 GitHub의 영업 팀 계정 관리자에게 문의하세요. IdP가 지원되지 않는 경우 직접 애플리케이션을 만들고 SCIM을 구성해야 합니다.