Skip to main content

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

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

Примечание.

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

При создании корпоративный с управляемыми пользователями на 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образом.

Примечание.

Из-за включения скрытого короткого кода ограничение символов для имен пользователей уменьшается с 39 символов до 30 символов для GitHub Enterprise Cloud с размещением данных.

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

Имена пользователей формируются путем нормализации значения атрибута SCIM userName , отправляемого из поставщика удостоверений.

Поставщик удостоверенийИмя пользователя GitHub
Microsoft Entra ID (ранее известный как 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 использует значение атрибута SCIM userName , отправленное из поставщика удостоверений, чтобы определить имя пользователя соответствующей учетной записи пользователя на GitHub. Если это значение содержит неподдерживаемые символы, GitHub нормализует имя пользователя в соответствии со следующими правилами.

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

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

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

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

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

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

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

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

При подготовке нового пользователя, если имя пользователя конфликтует с существующим пользователем в организации, попытка подготовки завершится ошибкой 409 . Если имя пользователя превышает 39 символов (включая символ подчеркивания и короткий код), попытка подготовки завершится ошибкой 400 . Полный список возможных кодов состояния подготовки пользователей см. в разделе Конечные точки REST API для SCIM.

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

  • 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 ID на Microsoft Learn.

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

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

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