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