Skip to main content

엔터프라이즈의 ID 및 액세스 관리 문제 해결

엔터프라이즈의 ID 및 액세스 관리에 대한 일반적인 이슈 및 솔루션을 검토합니다.

사용자의 외부 ID 정보 보기

사용자가 SAML을 사용하여 성공적으로 인증할 수 없는 경우 GitHub에서 사용자 계정에 연결된 Single Sign-On ID에 대한 정보를 보는 것이 도움이 될 수 있습니다. 자세한 내용은 엔터프라이즈에 대한 사용자의 SAML 액세스 보기 및 관리을(를) 참조하세요.

사용자 이름 충돌

엔터프라이즈에서 Enterprise Managed Users를 사용하는 경우 GitHub는 SCIM API 호출에서 IdP(ID 공급자)가 보낸 SCIM userName 특성 값을 정규화하여 GitHub에 각 사용자의 사용자 이름을 만듭니다. 여러 계정이 동일한 GitHub 사용자 이름으로 정규화된 경우 사용자 이름 충돌이 발생하고 첫 번째 사용자 계정만 만들어집니다. 자세한 내용은 외부 인증에 대한 사용자 이름 고려 사항을(를) 참조하세요.

인증 구성을 전환할 때 발생하는 오류

SAML SSO 구성을 조직에서 엔터프라이즈 계정으로 변경하거나 Enterprise Managed Users에 대해 SAML에서 OIDC로 마이그레이션하는 등 다양한 인증 구성 간에 전환하는 동안 문제가 발생하는 경우 변경에 대한 모범 사례를 따르고 있는지 확인합니다.

SSO를 사용할 수 없는 경우 엔터프라이즈에 액세스

IdP(ID 공급자)에 구성 오류 또는 이슈가 발생하여 SSO를 사용할 수 없는 경우 복구 코드를 사용하여 엔터프라이즈에 액세스할 수 있습니다. 자세한 내용은 ID 공급자를 사용할 수 없는 경우 엔터프라이즈 계정에 액세스을(를) 참조하세요.

SCIM 프로비전 오류

GitHub의 트래픽률 제한을 초과하지 않으려면 시간당 1,000명이 넘는 사용자를 IdP의 SCIM 통합에 할당하지 마세요. 그룹을 사용하여 IdP 애플리케이션에 사용자를 할당하는 경우 시간당 각 그룹에 1,000명 이상의 사용자를 추가하지 마세요. 이러한 임계값을 초과하는 경우 사용자를 프로비저닝하려고 시도하면 "트래픽률 제한" 오류로 실패할 수 있습니다. IdP 로그를 검토하여 트래픽률 제한 오류로 인해 SCIM 프로비저닝 또는 푸시 작업이 실패했는지 확인할 수 있습니다. 실패한 프로비저닝 시도에 대한 응답은 IdP에 따라 달라집니다.

Microsoft Entra ID(이전의 Azure AD)는 다음 Entra ID 동기화 주기 동안 SCIM 프로비저닝을 자동으로 다시 시도합니다. Entra ID의 기본 SCIM 프로비전 간격은 40분입니다. 이 재시도 동작에 대한 자세한 내용은 Microsoft 설명서에서 참조하거나 추가 지원이 필요하면 Microsoft 지원에 문의하세요.

Okta는 수동 Okta 관리자 개입으로 실패한 SCIM 프로비전을 다시 시도합니다. Okta 관리자가 특정 애플리케이션에서 실패한 작업을 다시 시도하는 방법에 대한 자세한 내용은 Okta 설명서를 참조하거나 Okta 지원에 문의하세요.

SCIM이 일반적으로 제대로 작동하는 관리형 사용자가 있는 엔터프라이즈에서는 개별 사용자 SCIM 프로비저닝 시도가 실패하는 경우가 있습니다. GitHub에 계정이 프로비전될 때까지 사용자는 로그인할 수 없습니다. 이러한 개별 SCIM 사용자 프로비저닝 실패로 인해 HTTP 400 상태 코드가 발생하며, 일반적으로 정규화된 사용자 이름이 동일한 다른 사용자가 엔터프라이즈에 이미 존재하는 사용자 이름 정규화 문제 또는 사용자 이름 충돌로 인해 발생합니다. 외부 인증에 대한 사용자 이름 고려 사항을(를) 참조하세요.

SAML 인증 오류

사용자가 SAML을 사용하여 인증을 시도할 때 오류가 발생하는 경우 SAML 인증 문제 해결을(를) 참조하세요.

SAML ID 오류 충돌

사용자가 처음으로 GitHub 조직 또는 엔터프라이즈에 액세스하기 위해 SAML IdP(ID 공급자)로 인증하려고 하면 다음 오류 메시지가 표시될 수 있습니다.

현재 GitHub 사용자 계정 [GitHub 사용자 이름]이 연결 해제되어 있습니다. 그러나 [조직/엔터프라이즈]의 다른 GitHub 사용자 계정에 이미 연결되어 있는 [IdP 사용자 계정] SAML ID를 사용하여 ID 공급자로 인증을 시도하고 있습니다. GitHub [조직/엔터프라이즈] 소유자 중 한 명에게 문의하여 도움을 받으세요.

IdP가 Entra ID인 경우 오류 메시지에는 Entra ID의 연결된 ID의 User Object ID가 포함되며, GitHub에서는 External ID를 참조합니다.

이 오류 메시지는 외부 ID가 조직 또는 엔터프라이즈 내의 단일 GitHub 사용자 계정에만 연결될 수 있기 때문에 발생합니다.

충돌하는 ID를 사용하여 사용자 식별

사용자가 이 오류를 발견하면 다음 단계에 따라 충돌하는 계정을 식별할 수 있습니다.

  1. GitHub GraphQL API를 사용하여 충돌하는 외부 ID에 연결된 사용자를 확인합니다.
    • SAML이 GitHub 조직 수준에서 구성된 경우: 조직 소유자는 조직 수준에서 기존 외부 ID를 쿼리하고 이 오류가 발생할 때 사용자가 인증하는 IdP 계정의 SAML NameID로 필터링해야 합니다. platform-samples 리포지토리에서 org-saml-identities-filtered-by-nameid-username.graphql 샘플을 참조하세요.
    • SAML이 GitHub 엔터프라이즈 수준에서 구성된 경우: 엔터프라이즈 소유자는 엔터프라이즈 수준에서 기존 외부 ID를 쿼리하고 이 오류가 발생할 때 사용자가 인증하는 IdP 계정의 SAML NameID로 필터링해야 합니다. platform-samples 리포지토리에서 enterprise-saml-identities-filtered-by-nameid.graphql 샘플을 참조하세요.
  2. 충돌하는 외부 ID와 연결된 GitHub 사용자를 식별하여 사용자가 엔터프라이즈 및 그 안에 있는 조직에서 여전히 활성 상태인지 확인하려면 엔터프라이즈 소유자가 Enterprise에서 사용자 보기의 단계를 따르면 됩니다.

충돌 해결

충돌하는 계정을 식별하는 단계를 수행한 경우, 발견된 결과에 따라 다양한 해결 옵션이 있습니다. 이러한 단계를 수행하려고 할 때 문제가 발생하거나 질문이 있는 경우 GitHub 지원 포털을 사용하여 GitHub 지원 티켓을 열 수 있습니다.

충돌하는 GitHub 사용자는 더 이상 액세스할 필요가 없습니다.

충돌하는 외부 ID와 연결된 GitHub 사용자 계정이 GitHub 조직이나 엔터프라이즈에 더 이상 액세스할 필요가 없는 경우, 해당 계정을 멤버에서 제거합니다. 사용자가 제대로 제거되었다면, 조직 수준에 사용자가 아직 있는 경우 연결된 SAML ID와 SCIM ID도 제거해야 합니다.

  • SCIM 프로비전을 사용하여 조직 멤버십을 관리하는 경우, GitHub의 단계를 따르기보다는 SCIM을 통해 IdP에서 사용자의 프로비전을 해제해야 합니다. 그렇지 않으면 사용자의 연결된 SAML 및 SCIM ID가 조직 내에 남아 있어 오류가 계속 발생할 수 있습니다.
  • SCIM 프로비전을 사용하지 않는 경우 조직 멤버십을 관리하려면 조직에서 구성원 제거 또는 엔터프라이즈에서 멤버 제거을(를) 참조하세요. IdP의 조직 또는 엔터프라이즈에 대한 GitHub 앱에서도 사용자의 액세스 권한을 제거해야 합니다.

사용자의 SAML 또는 SCIM ID가 GitHub 조직에서 성공적으로 제거되었는지 확인하려면 조직의 ID 및 액세스 관리 문제 해결을(를) 참조하세요.

충돌하는 GitHub 사용자는 여전히 액세스 권한이 필요합니다.

충돌하는 외부 ID와 연결된 GitHub 사용자 계정이 있고 이 사용자가 조직이나 엔터프라이즈에 여전히 액세스 권한이 필요한 경우 사용자 계정의 연결된 ID를 변경하거나 오류가 발생하는 사용자에게 다른 IdP ID로 인증하도록 해야 합니다.

  • SCIM 프로비전을 사용하여 조직의 멤버십을 관리하고 멤버의 GitHub 계정에 연결된 외부 ID를 변경해야 하는 경우, IdP에서 사용자의 프로비전을 해제한 다음 다시 프로비전합니다(예: 앱에 대한 사용자 할당을 해제한 다음 다시 할당).
    • IdP 사용자가 프로비전을 해제하면 GitHub 계정 및 연결된 SAML/SCIM ID가 GitHub 조직에서 제거됩니다.
    • IdP 사용자가 GitHub 조직에 다시 프로비전되면 보류 중인 새로운 조직 초대 및 연결되지 않은 새로운 SCIM ID가 생성됩니다. 이렇게 하면 사용자가 이 GitHub 사용자 계정으로 로그인하고, SAML을 통해 인증하고, 새로운 IdP ID를 해당 계정에 연결할 수 있습니다. 이러한 단계는 새로운 SAML과 SCIM ID가 모두 조직 내 GitHub 사용자 계정에 제대로 연결되도록 도와줍니다.
  • SCIM 프로비전을 사용하여 조직 멤버십을 관리하지 않거나 또는 SAML이 엔터프라이즈 수준에서 구성된 경우, 다음 문서 중 하나의 단계에 따라 사용자의 연결된 외부 ID를 해지할 수 있습니다.

충돌하는 GitHub 사용자를 찾을 수 없습니다.

충돌하는 외부 ID와 연결된 GitHub 사용자 계정이 없는 경우 외부 ID를 해지할 수 있습니다.

  • SCIM 프로비전을 사용하여 조직의 멤버십을 관리하는 경우 IdP에서 오래되고 연결되지 않은 ID를 제거합니다(예: IdP 앱에서 사용자 할당 해제).
    • IdP가 GitHub에 적절한 SCIM API 호출을 보내지 않으면 ID가 조직에 남아 있어 오류가 계속 발생할 수 있습니다.
    • 사용자의 SAML 또는 SCIM ID가 GitHub 조직에서 성공적으로 제거되었는지 확인하려면 조직의 ID 및 액세스 관리 문제 해결을(를) 참조하세요.
  • 조직의 멤버십을 관리하는 데 SCIM 프로비전을 사용하지 않는 경우, 연결된 외부 ID를 취소하려면 아래 URL 중 하나로 이동하여 외부 ID를 취소하세요. USERNAME을 로그인할 수 없는 사용자의 GitHub 사용자 이름으로 바꾸고, ORGANIZATION 또는 ENTERPRISE를 적절한 값으로 바꿉니다.
    • https://github.com/orgs/ORGANIZATION/people/USERNAME/sso
    • https://github.com/enterprises/ENTERPRISE/people/USERNAME/sso

추가 참고 자료