Skip to main content

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

GitHub Enterprise Cloud следует определенным правилам, чтобы определить имя пользователя для каждой учетной записи пользователя в вашей организации.

Note

Эта статья относится только к 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.

  • Чтобы создать имя пользователя, GitHub нормализует идентификатор, предоставленный идентификатором поставщика удостоверений.
  • В GitHub.com{ GitHub также добавляет символ подчеркивания и короткий код вашей организации в конец каждого имени пользователя.

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

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

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

Короткие коды для GitHub.com

При создании корпоративный с управляемыми пользователями на GitHub.comвы выбираете короткий код, который будет использоваться в качестве суффикса для всех имен пользователей вашего предприятия.

  • Короткий код должен быть уникальным для вашего предприятия и содержать специальные символы.
  • Тщательно выберите, так как изменить короткий код после создания корпоративный с управляемыми пользователями невозможно .

Пользователь установки, который настраивает единый вход SAML, имеет имя пользователя в формате SHORT-CODE_admin. Например, если короткий код вашего предприятия имеет значение "octo", пользователь установки будет "octo_admin".

При подготовке нового пользователя из поставщика удостоверений новый управляемая учетная запись пользователя будет иметь имя пользователя GitHub в формате @IDP-USERNAME_SHORT-CODE (например, mona-cat_octo).

Короткие коды для GHE.com

Если вы используете GitHub Enterprise Cloud с размещением данных, при создании корпоративный с управляемыми пользователями на GHE.com, короткий код вашей организации создается случайным образом.

  • Короткий код не** используется **в качестве суффикса в именах пользователей, подготовленных пользователей.
  • Единственное место, где вы, скорее всего, увидите короткий код в имени пользователя администратора установки, который будет выглядеть следующим 2abvd19d_adminобразом.

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

Имена пользователей формируются путем нормализации значения атрибута 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 могут содержать только буквенно-цифровые символы и дефисы (-).

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

  1. GitHub Enterprise Cloud преобразует любой небуквенно-цифровой символ в имени пользователя вашей учетной записи в тире. Например, имя пользователя mona.the.octocat будет нормализовано до mona-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 .

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

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

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

Note

Служба поддержки 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. Обновите раздел "Формат имени пользователя приложения".