Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

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

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

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

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

Если вы используете предприятие с Enterprise Managed Users, сотрудники вашего предприятия выполняют проверку подлинности для доступа к GitHub через вашего поставщика удостоверений SAML (IdP). Дополнительные сведения см. в разделах Сведения о Enterprise Managed Users и Сведения о проверке подлинности для вашей организации.

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

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

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

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

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

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

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

  • bob@contoso.com
  • bob@fabrikam.com
  • bob#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 с любыми вопросами.

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

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

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

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

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

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