Skip to main content

Рекомендации по использованию имени пользователя для внешней проверки подлинности

When you use Enterprise Managed Users, GitHub Enterprise Cloud follows certain rules to determine the username for each user account in your enterprise.

Примечание. Эта статья относится только к Enterprise Managed Users. Если вы используете GitHub Enterprise Cloud без Enterprise Managed Users, имена пользователей будут создаваться пользователями, а не GitHub.

Сведения об использовании имен пользователей с внешней проверкой подлинности

Если вы используете предприятие с Enterprise Managed Users, сотрудники вашего предприятия выполняют проверку подлинности для доступа к GitHub через вашего поставщика удостоверений SAML (IdP). Дополнительные сведения см. в разделе "[AUTOTITLE" и "Сведения о Enterprise Managed Users](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)".

GitHub автоматически создает имя пользователя для каждого пользователя при подготовке учетной записи пользователя с помощью SCIM путем нормализации идентификатора, предоставленного идентификатором поставщика удостоверений, а затем добавление символа подчеркивания и короткого кода. Если несколько идентификаторов нормализуются в одно и то же имя пользователя, возникает конфликт имен пользователей, и создается только первая учетная запись пользователя. Вы можете устранить проблемы с именем пользователя, изменив идентификатор поставщика удостоверений, чтобы нормализованные имена пользователей были уникальными и в пределах 39 символьного ограничения.

Сведения о имени пользователя для управляемые учетные записи пользователей

При создании корпоративный с управляемыми пользователями вы выберете короткий код, который будет использоваться в качестве суффикса для имен пользователей участников предприятия. Краткий код должен быть уникальным для предприятия и должен представлять собой буквенно-цифровую строку длиной от трех до восьми символов, а также не содержать специальных символов. Пользователь установки, который настраивает единый вход SAML, имеет имя пользователя в формате @SHORT-CODE_admin.

При подготовке нового пользователя из поставщика удостоверений новый управляемая учетная запись пользователя будет иметь имя пользователя GitHub в формате @IDP-USERNAME_SHORT-CODE. Компонент IDP-USERNAME формируется путем нормализации значения атрибута SCIM userName , отправляемого из поставщика удостоверений.

Поставщик удостоверенийИмя пользователя GitHub
Идентификатор Microsoft Entra (ранее известный как Azure AD)IDP-USERNAME формируется путем нормализации символов, предшествующих @ символу в имени участника-пользователя (имя участника-пользователя), который не включает в себя #EXT# гостевые учетные записи.
OktaIDP-USERNAME — это нормализованный атрибут имени пользователя, предоставляемый IdP.

Эти правила могут привести к тому, что IdP будет предоставлять один и тот же компонент IDP-USERNAME для нескольких пользователей. Например, для идентификатора Entra следующие имена участника-пользователя приводят к тому же имени пользователя:

  • 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.com могут содержать только буквенно-цифровые символы и дефисы (-).

Когда вы настраиваете проверку подлинности SAML, GitHub Enterprise Cloud использует значение атрибута userName SCIM, отправленное от IdP, для определения имени пользователя для соответствующей учетной записи пользователя в GitHub.com. Если это значение включает неподдерживаемые символы, GitHub Enterprise Cloud нормализует имя пользователя в соответствии со следующими правилами.

  1. GitHub Enterprise Cloud преобразует любой небуквенно-цифровой символ в имени пользователя вашей учетной записи в тире. Например, имя пользователя mona.the.octocat будет нормализовано до mona-the-octocat. Обратите внимание, что нормализованные имена пользователей также не могут начинаться или заканчиваться дефисом. Они также не могут содержать два последовательных тире.

  2. Имена пользователей, созданные на основе адресов электронной почты, создаются на основе нормализованных символов, предшествующих символу @.

  3. Имена пользователей, созданные из учетных записей домена, создаются из нормализованных символов после \\ разделителя.

  4. Если несколько учетных записей нормализуются в одно и то же имя пользователя GitHub Enterprise Cloud, создается только первая учетная запись пользователя. Последующие пользователи с тем же именем пользователя не смогут войти в систему. Дополнительные сведения см. в разделе "Устранение проблем с именем пользователя".

Примеры нормализации имен пользователей

Идентификатор поставщикаНормализованное имя пользователя в GitHubРезультат
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 .

Чтобы устранить эту проблему, необходимо внести одно из следующих изменений в идентификатор поставщика удостоверений, чтобы все нормализованные имена пользователей были в пределах ограничения символов и уникальны.

  • userName Изменение значения атрибута для отдельных пользователей, вызывающих проблемы
  • userName Изменение сопоставления атрибутов для всех пользователей
  • Настройка настраиваемого userName атрибута для всех пользователей

При изменении сопоставления атрибутов имена пользователей существующих управляемые учетные записи пользователей будут обновлены, но ничего другого о учетных записях не изменится, включая журнал действий.

Примечание. Служба поддержки GitHub не может помочь с настройкой сопоставлений атрибутов или пользовательских выражений. Вы можете обратиться к своему IdP с любыми вопросами.

Устранение проблем с именем пользователя с идентификатором Записи

Чтобы устранить проблемы с именем пользователя в идентификаторе записи, измените значение имени участника-пользователя для конфликтующего пользователя или измените сопоставление атрибутов для атрибута userName . Если вы измените сопоставление атрибута, вы сможете выбрать существующий атрибут или использовать выражение, чтобы убедиться, что все подготовленные пользователи имеют уникальный нормализованный псевдоним.

  1. В идентификаторе записи откройте приложение GitHub Enterprise Managed User .
  2. В области слева щелкните Подготовка.
  3. Щелкните Изменить подготовку.
  4. Разверните вкладку "Сопоставления", а затем щелкните "Подготовка пользователей идентификатора записи".
  5. Щелкните сопоставление атрибута userName GitHub.
  6. Измените сопоставление атрибута.
    • Чтобы сопоставить существующий атрибут в entra ID с атрибутом userName в GitHub, щелкните нужное поле атрибута. Затем сохраните изменения и дождитесь завершения цикла подготовки в течение примерно 40 минут.
    • Чтобы использовать выражение вместо существующего атрибута, измените тип сопоставления на "Выражение", а затем добавьте пользовательское выражение, которое сделает это значение уникальным для всех пользователей. Например, можно использовать [FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. Дополнительные сведения см. в справочнике по написанию выражений для сопоставлений атрибутов в идентификаторе Microsoft Entra в Microsoft Learn.

Устранение проблем с именем пользователя с помощью Okta

Чтобы устранить проблемы с именем пользователя в Okta, обновите параметры сопоставления атрибутов для приложения GitHub Enterprise Managed User .

  1. В Okta откройте приложение GitHub Enterprise Managed User.
  2. Щелкните Войти.
  3. В разделе "Параметры" щелкните OK.
  4. Обновите раздел "Формат имени пользователя приложения".