Skip to main content

외부 인증에 대한 사용자 이름 고려 사항

Enterprise Managed Users 항목을 사용하는 경우 GitHub Enterprise Cloud에서는 특정 규칙에 따라 엔터프라이즈에서 각 사용자 계정의 사용자 이름을 확인합니다.

Note

이 문서는 Enterprise Managed Users에만 적용됩니다. Enterprise Managed Users 없이 GitHub Enterprise Cloud를 사용하는 경우 GitHub이 아니라 사용자가 사용자 이름을 만듭니다.

외부 인증을 사용하는 사용자 이름 정보

Enterprise Managed Users가 있는 엔터프라이즈를 사용하는 경우 엔터프라이즈 멤버는 SAML IdP(ID 공급자)를 통해 GitHub에 액세스할 수 있도록 인증합니다. 자세한 내용은 Enterprise Managed Users 정보ID 및 액세스 관리 정보을(를) 참조하세요.

GitHub는 SCIM을 통해 사용자 계정을 프로비전할 때 각 사용자에 대한 사용자 이름을 자동으로 만듭니다.

  • 사용자 이름을 만들기 위해 GitHub는 IdP에서 제공하는 식별자를 정규화합니다.
  • GitHub.com, GitHub는 각 사용자 이름의 끝에 밑줄과 엔터프라이즈의 단축 코드도 추가합니다.

여러 식별자가 동일한 사용자 이름으로 정규화되면 사용자 이름 충돌이 발생하고 첫 번째 사용자 계정만 만들어집니다. 정규화된 사용자 이름이 고유하고 39자 한도에 들도록 IdP를 변경하여 사용자 이름 문제를 해결할 수 있습니다.

Note

충돌은 동일한 엔터프라이즈 내의 사용자 사이에서만 발생할 수 있습니다. 관리형 사용자 계정은(는) 엔터프라이즈 외부에 있는 GitHub.com의 다른 사용자 계정과 IdP 식별자 또는 이메일 주소를 공유할 수 있습니다.

관리형 사용자 계정에 대한 단축 코드 정보

관리형 사용자 계정를 사용하는 각 엔터프라이즈는 3자에서 8자 사이의 영숫자 문자열인 단축 코드와 연결됩니다.

GitHub.com에 대한 단축 코드

GitHub.com에 관리형 사용자가 있는 엔터프라이즈를 만들 때 모든 엔터프라이즈 구성원의 사용자 이름에 대한 접미사로 사용할 단축 코드를 선택합니다.

  • 엔터프라이즈에 고유한 단축 코드는 특수 문자를 포함하지 않아야 합니다.
  • 관리형 사용자가 있는 엔터프라이즈를 만든 후에는 단축 코드를 수정할 수 없기 때문에 신중하게 골라야 합니다.

SAML SSO를 구성하는 설정 사용자는 SHORT-CODE_admin 형식의 사용자 이름을 갖습니다. 예를 들어 엔터프라이즈의 단락이 "octo"인 경우 설치 사용자는 "octo_admin"이 됩니다.

ID 공급자로부터 새 사용자를 프로비전할 때 새 관리형 사용자 계정의 GitHub 사용자 이름은 @IDP-USERNAME_SHORT-CODE 형식(예: "mona-cat_octo")입니다.

GHE.com의 단축 코드

데이터 보존 기능을 갖춘 GitHub Enterprise Cloud를 사용하는 경우 GHE.com에 관리형 사용자가 있는 엔터프라이즈를 만들면 엔터프라이즈의 단축 코드가 임의로 생성됩니다.

  • 단축 코드는 프로비전된 사용자의 사용자 이름에 접미사로 사용되지 않습니다.
  • 단축 코드가 표시될 가능성이 있는 유일한 위치는 설치 관리자의 사용자 이름에 있습니다. 이 이름은 다음과 같습니다2abvd19d_admin.

정규화된 사용자 이름 정보

사용자 이름은 IdP에서 보낸 SCIM userName 특성 값을 정규화하여 구성됩니다.

ID 공급자GitHub 사용자 이름
Microsoft Entra ID(이전의 Azure AD)IDP-USERNAME은 게스트 계정에 대한 #EXT#을(를) 포함하지 않는 UPN(사용자 계정 이름)의 @ 문자 앞에 나오는 문자를 정규화하여 구성됩니다.
OktaIDP-USERNAME은 IdP에서 제공하는 정규화된 사용자 이름 특성입니다.

이러한 규칙에 따라 IdP에서 여러 사용자에 대해 동일한 IDP-USERNAME을 제공할 수 있습니다. 예를 들어 Entra ID의 경우 다음과 같은 UPN은 동일한 사용자 이름을 생성합니다.

  • bob@contoso.com
  • bob@fabrikam.com
  • bob#EXT#fabrikamcom@contoso.com
  • bob_example#EXT#fabrikamcom@contoso.com
  • bob_example.com#EXT#fabrikamcom@contoso.com

이로 인해 사용자 이름 충돌이 발생하고 첫 번째 사용자만 프로비전됩니다. 자세한 내용은 사용자 이름 문제 해결을 참조하세요.

사용자 이름(밑줄 및 짧은 코드 포함)는 39자를 초과할 수 없습니다.

사용자 이름 정규화 정보

GitHub의 사용자 계정에 대한 사용자 이름은 영숫자와 대시(-)만 포함할 수 있습니다.

SAML 인증을 구성하면 GitHub Enterprise Cloud은(는) IdP에서 보낸 SCIM userName 특성 값을 사용하여 의 해당 사용자 계정에 대한 사용자 이름을 확인합니다. 이 값에 지원되지 않는 문자가 포함되면 GitHub Enterprise Cloud에서 다음 규칙에 따라 사용자 이름을 정규화합니다.

  1. GitHub Enterprise Cloud에서 계정의 사용자 이름에 있는 영숫자가 아닌 문자를 대시로 정규화합니다. 예를 들어 사용자 이름 mona.the.octocatmona-the-octocat으로 정규화됩니다. 정규화된 사용자 이름은 대시로 시작하거나 끝날 수 없습니다. 또한 두 개의 연속 대시를 포함할 수 없습니다.

  2. 이메일 주소에서 만든 사용자 이름은 @ 문자 앞에 있는 정규화된 문자에서 만들어집니다.

  3. 도메인 계정으로 만든 사용자 이름은 \\ 구분 기호 뒤 정규화된 문자에서 만들어집니다.

  4. 여러 계정이 동일한 GitHub Enterprise Cloud 사용자 이름으로 정규화되는 경우 첫 번째 사용자 계정만 만들어집니다. 동일한 사용자 이름을 가진 후속 사용자는 로그인할 수 없습니다. 자세한 내용은 사용자 이름 문제 해결을 참조하세요.

사용자 이름 정규화의 예

공급자의 식별자GitHub.com의 정규화된 사용자 이름결과
The.Octocatthe-octocat_SHORT-CODE이 사용자 이름이 성공적으로 만들어집니다.
!The.Octocat-the-octocat_SHORT-CODE이 사용자 이름은 대시로 시작하므로 만들어지지 않습니다.
The.Octocat!the-octocat-_SHORT-CODE이 사용자 이름은 대시로 끝나므로 만들어지지 않습니다.
The!!Octocatthe--octocat_SHORT-CODE이 사용자 이름은 두 개의 연속 대시를 포함하므로 만들어지지 않습니다.
The!Octocatthe-octocat_SHORT-CODE이 사용자 이름은 만들어지지 않습니다. 정규화된 사용자 이름은 유효하지만 이미 존재합니다.
The.Octocat@example.comthe-octocat_SHORT-CODE이 사용자 이름은 만들어지지 않습니다. 정규화된 사용자 이름은 유효하지만 이미 존재합니다.
internal\\The.Octocatthe-octocat_SHORT-CODE이 사용자 이름은 만들어지지 않습니다. 정규화된 사용자 이름은 유효하지만 이미 존재합니다.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-states_SHORT-CODE이 사용자 이름은 39자 제한을 초과하므로 만들어지지 않습니다.

사용자 이름 문제 해결

새 사용자가 프로비전될 때 사용자 이름이 39자보다 길거나(밑줄 및 짧은 코드 포함) 엔터프라이즈의 기존 사용자와 충돌하는 경우 프로비전 시도가 409 오류로 인해 실패합니다.

이 문제를 해결하려면 정규화된 사용자 이름이 문자수 한도에 들고 고유하도록 다음 변경 사항 중 하나를 IdP에 적용해야 합니다.

  • 문제를 일으키는 개별 사용자의 userName 특성 값 변경
  • 모든 사용자의 userName 특성 매핑 변경
  • 모든 사용자에 대해 사용자 지정 userName 특성 구성

특성 매핑을 변경하면 기존 관리형 사용자 계정의 사용자 이름이 업데이트되지만, 작업 기록을 포함하여 계정에 대한 다른 항목은 변경되지 않습니다.

Note

GitHub 지원는 특성 매핑 사용자 지정 또는 사용자 지정 식 구성에 대한 지원을 제공할 수 없습니다. 질문이 있는 경우 IdP에 문의할 수 있습니다.

Entra ID를 사용하여 사용자 이름 문제 해결

Entra ID에서 사용자 이름 문제를 해결하려면 충돌하는 사용자의 사용자 계정 이름 값을 수정하거나 userName 특성에 대한 특성 매핑을 수정합니다. 특성 매핑을 수정하는 경우 기존 특성을 선택하거나 식을 사용하여 프로비전된 모든 사용자가 고유한 정규화된 별칭을 갖도록 할 수 있습니다.

  1. Entra ID에서 GitHub Enterprise Managed User 애플리케이션을 엽니다.
  2. 왼쪽 사이드바에서 프로비전을 클릭합니다.
  3. 프로비전 편집을 클릭합니다.
  4. 매핑을 확장한 다음 Entra ID 사용자 프로비저닝을 클릭합니다.
  5. GitHub userName 특성 매핑을 클릭합니다.
  6. 특성 매핑을 변경합니다.
    • Entra ID의 기존 특성을 GitHub의 userName 특성에 매핑하려면 원하는 특성 필드를 클릭합니다. 그런 다음, 저장하고 약 40분 내에 프로비전 주기가 발생할 때까지 기다립니다.
    • 기존 특성 대신 식을 사용하려면 매핑 형식을 "식"으로 변경한 다음, 모든 사용자에 대해 이 값을 고유하게 만드는 사용자 지정 식을 추가합니다. 예를 들어 [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]를 사용할 수 있습니다. 자세한 내용은 Microsoft Learn의 Microsoft Entra ID에서 특성 매핑을 위한 식 작성에 대한 참조를 참조하세요.

Okta의 사용자 이름 문제 해결

OKTA에서 사용자 이름 문제를 해결하려면 GitHub Enterprise Managed User 애플리케이션에 대한 특성 매핑 설정을 업데이트합니다.

  1. OKTA에서 GitHub Enterprise Managed User 애플리케이션을 엽니다.
  2. 로그온을 클릭합니다.
  3. "설정" 구역에서 편집을 클릭합니다.
  4. "애플리케이션 사용자 이름 형식"을 업데이트합니다.