Примечание.
Эта статья относится только к 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# гостевые учетные записи. |
| Okta | IDP-USERNAME — это нормализованный атрибут имени пользователя, предоставляемый IdP. |
Эти правила могут привести к тому, что IdP будет предоставлять один и тот же компонент IDP-USERNAME для нескольких пользователей. Например, для идентификатора Entra следующие имена участника-пользователя приводят к тому же имени пользователя:
bob@contoso.combob@fabrikam.combob#EXT#fabrikamcom@contoso.combob_example#EXT#fabrikamcom@contoso.combob_example.com#EXT#fabrikamcom@contoso.com
Это приведет к конфликту имени пользователя, и будет подготовлен только первый пользователь. Дополнительные сведения см. в разделе "Устранение проблем с именем пользователя".
Длина имен пользователей с подчеркиванием и коротким кодом не должна превышать 39 символов.
Сведения о нормализации имен пользователей
Имена пользователей для учетных записей пользователей в GitHub могут содержать только буквенно-цифровые символы и дефисы (-).
При настройке проверки подлинности SAML GitHub использует значение атрибута SCIM userName , отправленное из поставщика удостоверений, чтобы определить имя пользователя соответствующей учетной записи пользователя на GitHub. Если это значение содержит неподдерживаемые символы, GitHub нормализует имя пользователя в соответствии со следующими правилами.
-
GitHub нормализует любой не буквенно-цифровой символ в имени пользователя вашей учетной записи в дефис. Например, имя пользователя
mona.the.octocatбудет нормализовано доmona-the-octocat. Обратите внимание, что нормализованные имена пользователей также не могут начинаться или заканчиваться дефисом. Они также не могут содержать два последовательных тире. -
Регистр букв в значении, предоставленном идентификатором поставщика удостоверений, сохраняется в нормализованном имени пользователя.
-
Имена пользователей, созданные на основе адресов электронной почты, создаются на основе нормализованных символов, предшествующих символу
@. -
Имена пользователей, созданные из учетных записей домена, создаются из нормализованных символов после
\\разделителя. -
Если несколько учетных записей нормализуются в одном имени пользователя, создается только первая учетная запись пользователя. Последующие пользователи с тем же именем пользователя не смогут войти в систему. Дополнительные сведения см. в разделе "Устранение проблем с именем пользователя".
Примеры нормализации имен пользователей
| Идентификатор поставщика | Нормализованное имя пользователя для 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 . Полный список возможных кодов состояния подготовки пользователей см. в разделе Конечные точки REST API для SCIM.
Чтобы устранить эту проблему, необходимо внести одно из следующих изменений в идентификатор поставщика удостоверений, чтобы все нормализованные имена пользователей были в пределах ограничения символов и уникальны.
userNameИзменение значения атрибута для отдельных пользователей, вызывающих проблемыuserNameИзменение сопоставления атрибутов для всех пользователей- Настройка настраиваемого
userNameатрибута для всех пользователей
При изменении сопоставления атрибутов имена пользователей существующих управляемые учетные записи пользователей будут обновлены, но ничего другого о учетных записях не изменится, включая журнал действий.
Примечание.
Служба поддержки GitHub не может помочь в настройке сопоставлений атрибутов или настройке пользовательских выражений. Вы можете обратиться к своему IdP с любыми вопросами.
Устранение проблем с именем пользователя с идентификатором Записи
Чтобы устранить проблемы с именем пользователя в идентификаторе записи, измените значение имени участника-пользователя для конфликтующего пользователя или измените сопоставление атрибутов для атрибута userName . Если вы измените сопоставление атрибута, вы сможете выбрать существующий атрибут или использовать выражение, чтобы убедиться, что все подготовленные пользователи имеют уникальный нормализованный псевдоним.
- В идентификаторе записи откройте приложение GitHub Enterprise Managed User .
- В области слева щелкните Подготовка.
- Щелкните Изменить подготовку.
- Разверните вкладку "Сопоставления", а затем щелкните "Подготовка пользователей идентификатора записи".
- Щелкните сопоставление атрибута
userNameGitHub. - Измените сопоставление атрибута.
- Чтобы сопоставить существующий атрибут в entra ID с атрибутом
userNameв GitHub, щелкните нужное поле атрибута. Затем сохраните изменения и дождитесь завершения цикла подготовки в течение примерно 40 минут. - Чтобы использовать выражение вместо существующего атрибута, измените тип сопоставления на "Выражение", а затем добавьте пользовательское выражение, которое сделает это значение уникальным для всех пользователей. Например, можно использовать
[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]. Для получения дополнительной информации см. Справочник для написания выражений для отображения атрибутов в Microsoft Entra ID на Microsoft Learn.
- Чтобы сопоставить существующий атрибут в entra ID с атрибутом
Устранение проблем с именем пользователя с помощью Okta
Чтобы устранить проблемы с именем пользователя в Okta, обновите параметры сопоставления атрибутов для приложения GitHub Enterprise Managed User .
- В Okta откройте приложение GitHub Enterprise Managed User.
- Щелкните Войти.
- В разделе "Параметры" щелкните OK.
- Обновите раздел "Формат имени пользователя приложения".