Skip to main content

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

인증Enterprise Managed Users에 CAS, LDAP 또는 SAML을 사용하는 GitHub경우 특정 규칙을 따라 인스턴스에서 엔터프라이즈대한 사용자 이름을 결정합니다.

참고

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

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

Enterprise Managed Users를 사용하는 엔터프라이즈의 구성원은 SAML ID 공급자(IdP)를 통해 GitHub에 액세스하기 위해 인증합니다. 자세한 내용은 Enterprise Managed Users 정보ID 및 액세스 관리 기본 사항을(를) 참조하세요.

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

  • 사용자 이름을 GitHub 만들려면 IdP에서 제공하는 식별자를 정규화합니다.
  • GitHub.com에서 GitHub는 또한 각 사용자 이름의 끝에 밑줄과 귀사의 단축 코드를 추가합니다.

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

참고

충돌은 동일한 엔터프라이즈 내의 사용자 사이에서만 발생할 수 있습니다. 관리형 사용자 계정은(는) 엔터프라이즈 외부에 있는 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.

참고

숨겨진 짧은 코드가 포함되므로 사용자 이름에 대한 문자 제한이 39자에서 30자로 데이터 보존 기능을 갖춘 GitHub Enterprise Cloud줄어듭니다.

정규화된 사용자 이름 정보

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

| ID 공급자 | GitHub 사용자 이름 | |-----------------------------------|----------------------| | Microsoft Entra ID(이전에는 Azure AD라고 함) | IDP-USERNAME은 게스트 계정에 대한 @을(를) 포함하지 않는 UPN(사용자 계정 이름)의 #EXT# 문자 앞에 나오는 문자를 정규화하여 구성됩니다. | | Okta | IDP-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을 구성하면, GitHub은 IdP에서 전송된 SCIM userName 속성 값을 사용하여 GitHub의 해당 사용자 계정에 대한 사용자 이름을 결정합니다. 이 값에 지원되지 않는 문자 GitHub 가 포함된 경우 다음 규칙에 따라 사용자 이름을 정규화합니다.

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

  2. ID 제공자가 전달하는 원본 값의 대소문자 구분은 정규화된 사용자 이름에서도 변함없이 그대로 적용됩니다.

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

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

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

사용자 이름 정규화의 예

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

사용자 이름 문제 해결

새 사용자가 프로비전될 때 사용자 이름이 엔터프라이즈의 기존 사용자와 충돌하는 경우 프로비전 시도가 409 오류로 인해 실패합니다. 사용자 이름이 39자를 초과하면(밑줄 및 단축 코드 포함) 프로비전 시도가 400 오류로 인해 실패합니다. 가능한 사용자 프로비전 상태 코드의 전체 목록은 SCIM용 REST API 엔드포인트을(를) 참조하세요.

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

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

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

참고

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

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

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

  1. Entra ID에서 GitHub Enterprise Managed User 애플리케이션을 엽니다.
  2. 왼쪽 사이드바에서 프로비전을 클릭합니다.
  3. 프로비전 편집을 클릭합니다.
  4. 매핑을 확장한 다음 Entra ID 사용자 프로비저닝을 클릭하십시오.
  5. 특성 매핑을 GitHubuserName 클릭합니다.
  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. "애플리케이션 사용자 이름 형식"을 업데이트합니다.