Skip to main content

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

При использовании CAS, LDAP или SAML для проверки подлинности, GitHub следует определенным правилам, чтобы определить имя пользователя для каждой учетной записи пользователя на экземпляре.

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

Вы можете настроить внешнюю проверку подлинности для GitHub Enterprise Server с помощью CAS, LDAP или SAML. Дополнительные сведения см. в разделе Основы управления идентификацией и доступом.

При использовании внешней проверки подлинности ваш экземпляр GitHub Enterprise Server автоматически создает имя пользователя для каждого пользователя при первом входе в ваш экземпляр GitHub Enterprise Server через внешнюю систему проверки подлинности.

Длина имен пользователей не должна превышать 39 символов.

Примечание.

При использовании SAML с подготовкой SCIM пользователи должны быть подготовлены перед использованием единого входа SAML. Если пользователь не был подготовлен, он не сможет выполнить проверку подлинности в экземпляре GitHub Enterprise Server. Дополнительные сведения см. в разделе О пользовательском провизионировании с помощью SCIM на GitHub Enterprise Server.

Сведения о нормализации имен пользователей

Имена пользователей для учетных записей пользователей в GitHub могут содержать только буквенно-цифровые символы и дефисы (-).

При настройке проверки подлинности CAS, LDAP или SAML (без SCIM) GitHub Enterprise Server использует идентификатор учетной записи пользователя во внешнем поставщике проверки подлинности, чтобы определить имя пользователя для соответствующей учетной записи пользователя в экземпляре GitHub Enterprise Server . При настройке проверки подлинности SAML с помощью SCIM GitHub использует значение атрибута SCIM userName , отправленное из поставщика удостоверений, чтобы определить имя пользователя для соответствующей учетной записи пользователя. Если идентификатор содержит неподдерживаемые символы, GitHub нормализует имя пользователя в соответствии со следующими правилами.

  1. GitHub нормализует любой не буквенно-цифровой символ в имени пользователя вашей учетной записи в дефис. Например, имя пользователя mona.the.octocat будет нормализовано до mona-the-octocat. Обратите внимание, что нормализованные имена пользователей также не могут начинаться или заканчиваться дефисом. Они также не могут содержать два последовательных тире.

  2. Регистр букв в значении, предоставленном идентификатором поставщика удостоверений, сохраняется в нормализованном имени пользователя.

  3. Имена пользователей, созданные на основе адресов электронной почты, создаются на основе нормализованных символов, предшествующих символу @.

  4. Имена пользователей, созданные из учетных записей домена, создаются из нормализованных символов после \\ разделителя.

  5. Если несколько учетных записей нормализуются в одном имени пользователя, создается только первая учетная запись пользователя. Последующие пользователи с тем же именем пользователя не смогут войти в систему.

Примеры нормализации имен пользователей

Идентификатор поставщикаНормализованное имя пользователя для GitHub.comРезультат
The.OctocatThe-OctocatЭто имя пользователя успешно создано.
The.Octocat!-The-OctocatЭто имя пользователя не создается, поскольку начинается с дефиса.
The!!OctocatThe--OctocatЭто имя пользователя не создается, поскольку содержит два последовательных дефиса.
The!OctocatThe-OctocatЭто имя пользователя не создается. Хотя нормализованное имя пользователя является допустимым, оно уже существует.
The.Octocat@example.comThe-OctocatЭто имя пользователя не создается. Хотя нормализованное имя пользователя является допустимым, оно уже существует.
internal\\The.OctocatThe-OctocatЭто имя пользователя не создается. Хотя нормализованное имя пользователя является допустимым, оно уже существует.
mona.lisa.the.octocat.from.github.united.states@example.commona-lisa-the-octocat-from-github-united-statesЭто имя пользователя не создается, так как оно превышает ограничение в 39 символов.

Сведения о нормализации имен пользователей с использованием SAML

Если настроить проверку подлинности SAML для ваш экземпляр GitHub Enterprise Server, GitHub определяет имя пользователя каждого пользователя по одному из следующих утверждений в ответе SAML, упорядоченным по убыванию приоритета.

  1. Настраиваемый атрибут username, если он определен и присутствует
  2. Утверждение http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, если оно присутствует
  3. Утверждение http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress, если оно присутствует
  4. элемент NameID;

Для GitHub требуется NameID элемент, даже если присутствуют другие атрибуты. Дополнительные сведения см. в разделе Справочник по конфигурации SAML.

GitHub создает сопоставление между NameID идентификатором поставщика удостоверений и именем пользователя ваш экземпляр GitHub Enterprise Server, поэтому NameID он должен быть постоянным, уникальным и не подлежит изменению для жизненного цикла пользователя.

Примечание.

          `NameID` Если пользователь изменяет идентификатор поставщика удостоверений, пользователь увидит сообщение об ошибке при входе в ваш экземпляр GitHub Enterprise Server. Чтобы восстановить доступ пользователя, вам необходимо обновить сопоставление `NameID` учетной записи пользователя. Дополнительные сведения см. в разделе [AUTOTITLE](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid).