Skip to main content

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

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

Примечание.

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

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

Если вы используете предприятие, Enterprise Managed Usersчлены организации проходят проверку подлинности для доступа GitHub через поставщика удостоверений SAML (IdP). Дополнительные сведения см. в разделе [AUTOTITLE и Около Enterprise Managed Users](/admin/concepts/identity-and-access-management/identity-and-access-management-fundamentals#which-authentication-method-are-available-to-me).

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.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 использует значение атрибута SCIMuserName, отправленное из поставщика удостоверений, GitHub чтобы определить имя пользователя для соответствующей учетной записи 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. В Entra ID откройте GitHub Enterprise Managed User приложение.
  2. В области слева щелкните Подготовка.
  3. Щелкните Изменить подготовку.
  4. Разверните вкладку "Сопоставления", а затем щелкните "Подготовка пользователей идентификатора записи".
  5. Щелкните сопоставление атрибутов GitHubuserName .
  6. Измените сопоставление атрибута.
    • Чтобы сопоставить существующий атрибут в Entra ID с атрибутом userNameGitHub, щелкните нужное поле атрибута. Затем сохраните изменения и дождитесь завершения цикла подготовки в течение примерно 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. Обновите раздел "Формат имени пользователя приложения".