Примечание. Эта статья относится только к 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# для гостевых учетных записей. |
Okta | IDP-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 нормализует имя пользователя в соответствии со следующими правилами.
-
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 с любыми вопросами.
Устранение проблем с именем пользователя с Azure AD
Чтобы устранить проблемы с именами пользователей в Azure AD, измените значение имени участника-пользователя для конфликтующего пользователя или сопоставление атрибутов для атрибутаuserName
. Если вы измените сопоставление атрибута, вы сможете выбрать существующий атрибут или использовать выражение, чтобы убедиться, что все подготовленные пользователи имеют уникальный нормализованный псевдоним.
- В Azure AD откройте приложение GitHub Enterprise Managed User.
- В области слева щелкните Подготовка.
- Щелкните Изменить подготовку.
- Разверните раздел Сопоставления и щелкните Подготовка пользователей Azure Active Directory.
- Щелкните сопоставление атрибута
userName
GitHub. - Измените сопоставление атрибута.
- Чтобы сопоставить существующий атрибут в Azure AD с атрибутом
userName
в GitHub, щелкните поле нужного атрибута. Затем сохраните изменения и дождитесь завершения цикла подготовки в течение примерно 40 минут. - Чтобы использовать выражение вместо существующего атрибута, измените тип сопоставления на "Выражение", а затем добавьте пользовательское выражение, которое сделает это значение уникальным для всех пользователей. Например, можно использовать
[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]
. Дополнительные сведения см. в статье Справочник по написанию выражений для сопоставлений атрибутов в Azure Active Directory в Документации Майкрософт.
- Чтобы сопоставить существующий атрибут в Azure AD с атрибутом
Устранение проблем с именем пользователя в Okta
Чтобы устранить проблемы с именем пользователя в Okta, обновите параметры сопоставления атрибутов для приложения GitHub Enterprise Managed User.
- В Okta откройте приложение GitHub Enterprise Managed User.
- Щелкните Войти.
- В разделе "Параметры" щелкните OK.
- Обновите раздел "Формат имени пользователя приложения".