Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Поддержка этой версии GitHub Enterprise была прекращена 2023-01-18. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, укрепления безопасности и новых функций установите последнюю версию GitHub Enterprise. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Использование протокола LDAP

Если для централизации доступа между приложениями используется протокол LDAP, можно интегрировать GitHub Enterprise Server, настроив проверку подлинности LDAP для своего экземпляра.

Сведения о проверке подлинности LDAP для GitHub Enterprise Server

LDAP — это популярный протокол приложений для доступа к информационным службам каталога и его обслуживания. Это один из наиболее распространенных протоколов, применяемых для интеграции стороннего программного обеспечения с пользовательскими каталогами крупных компаний. Дополнительные сведения см. в разделе Упрощенный протокол доступа к каталогам в Википедии.

Если вы используете каталог LDAP для централизованной проверки подлинности, можно настроить проверку подлинности LDAP для пользователей, использующих your GitHub Enterprise Server instance.

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

Поддерживаемые службы LDAP

GitHub Enterprise Server интегрируется со следующими службами LDAP:

  • Active Directory
  • FreeIPA
  • Oracle Directory Server Enterprise Edition
  • OpenLDAP
  • Open Directory
  • 389-ds

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

GitHub Enterprise Server нормализует значение из внешний поставщик проверки подлинности для определения имени пользователя для каждой новой личной учетной записи на your GitHub Enterprise Server instance. Дополнительные сведения см. в разделе Рекомендации по использованию имени пользователя для внешней проверки подлинности.

Настройка LDAP с помощью your GitHub Enterprise Server instance

После настройки протокола LDAP пользователи смогут входить в ваш экземпляр с помощью своих учетных данных LDAP. При первом входе пользователей имена их профилей, адреса электронной почты и ключи SSH будут заданы с помощью атрибутов LDAP из вашего каталога.

При настройке доступа LDAP для пользователей с помощью Management Console ваши лицензии "на пользователя" не используются, пока пользователь не выполнит первый вход в ваш экземпляр. Однако если вы создаете учетную запись вручную с помощью параметров администратора сайта, лицензия "на пользователя" будет учитываться сразу же.

Предупреждение: Перед настройкой LDAP в your GitHub Enterprise Server instance убедитесь, что служба LDAP поддерживает результаты со страницами.

  1. Из учетной записи администратора на GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .

    Снимок экрана: значок ракетного корабля для доступа к параметрам администратора сайта

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

    Снимок экрана: ссылка "Администратор сайта" 1. На боковой панели слева нажмите Management Console . Вкладка "Management Console" на боковой панели слева 1. На левой боковой панели щелкните Проверка подлинности. Вкладка "Проверка подлинности" на боковой панели параметров

  3. В разделе "Проверка подлинности" выберите LDAP. Выбор LDAP

  4. При необходимости для того, чтобы разрешить пользователям без учетной записи во внешней системе проверки подлинности вход с помощью встроенной проверки подлинности, выберите Разрешить встроенную проверку подлинности. Дополнительные сведения см. в разделе Разрешение встроенной проверки подлинности для пользователей за пределами поставщика. Флажок выбора встроенной проверки подлинности LDAP

  5. Добавьте параметры конфигурации.

Атрибуты LDAP

Используйте эти атрибуты, чтобы завершить настройку LDAP для your GitHub Enterprise Server instance.

Имя атрибутаТипОписание
HostОбязательноУзел LDAP, например ldap.example.com или 10.0.0.30. Если имя узла доступно только из внутренней сети, может потребоваться сначала настроить DNS your GitHub Enterprise Server instance, чтобы оно решилось с помощью внутренних серверов доменных имен.
PortОбязательноПорт, в котором прослушиваются службы LDAP узла. Примеры: 389 и 636 (для LDAPS).
EncryptionОбязательноМетод шифрования, используемый для защиты взаимодействия с сервером LDAP. Примеры: обычный (без шифрования), SSL/LDAPS (шифрование с самого начала) и StartTLS (обновление до зашифрованного взаимодействия после подключения).
Domain search userНеобязательноПользователь LDAP, который ищет других пользователей, входящих в систему, чтобы разрешить проверку подлинности. Обычно это учетная запись службы, созданная специально для интеграции сторонних пользователей. Используйте полное имя, такое как cn=Administrator,cn=Users,dc=Example,dc=com. В Active Directory можно также использовать синтаксис [DOMAIN]\[USERNAME] (например WINDOWS\Administrator) для пользователя поиска домена в Active Directory.
Domain search passwordНеобязательноПароль для пользователя поиска домена.
Administrators groupНеобязательноУровень пользователей в этой группе повышается до администраторов сайта при входе на ваше устройство. Если вы не настроите группу администраторов LDAP, до администратора сайта будет повышен уровень первой учетной записи пользователя LDAP, вошедшей на устройство.
Domain baseОбязательноПолное Distinguished Name (DN) поддерева LDAP, в котором требуется выполнить поиск пользователей и групп. Можно добавить сколько угодно имен, однако каждая группа должна быть определена в той же доменной базе, что и пользователи, которые к ней относятся. Если вы указываете ограниченные группы пользователей, то будут охвачены только пользователи, принадлежащие этим группам. Рекомендуется указать верхний уровень дерева каталогов LDAP в качестве доменной базы и использовать ограниченные группы пользователей для управления доступом.
Restricted user groupsНеобязательноЕсли эти группы указаны, вход будет разрешен только пользователям в этих группах. Указывать следует только общие имена (CN) групп, и можно добавить сколько угодно групп. Если группы не указаны, все пользователи в пределах указанной доменной базы смогут входить в ваш экземпляр GitHub Enterprise Server.
User IDОбязательноАтрибут LDAP, определяющий пользователя LDAP, который пытается пройти проверку подлинности. После установки сопоставления пользователи могут изменить свои имена пользователей GitHub Enterprise Server. Для большинства установок Active Directory это поле будет иметь значение sAMAccountName, но для других решений LDAP, например OpenLDAP, это может быть значение uid. Значение по умолчанию — uid.
Profile nameНеобязательноИмя, которое будет отображаться на странице профиля пользователя GitHub Enterprise Server. Если синхронизация LDAP не включена, пользователи могут изменять свои имена профилей.
EmailsНеобязательноАдреса электронной почты для учетной записи пользователя GitHub Enterprise Server.
SSH keysНеобязательноОткрытые ключи SSH, подключенные к учетной записи пользователя GitHub Enterprise Server. Ключи должны быть в формате OpenSSH.
GPG keysНеобязательноКлючи GPG, подключенные к учетной записи пользователя GitHub Enterprise Server.
Disable LDAP authentication for Git operationsНеобязательноЕсли выбрать этот атрибут, для пользователей будет отключена возможность проверки подлинности операций Git с помощью паролей LDAP.
Enable LDAP certificate verificationНеобязательноЕсли выбрать этот атрибут, будет включена проверка сертификатов LDAP.
SynchronizationНеобязательноЕсли выбрать этот атрибут, будет включена синхронизация LDAP.

Отключение проверки паролей для операций Git

Выберите Отключить проверку подлинности имени пользователя и пароля для операций Git в параметрах LDAP, чтобы принудительно использовать personal access tokens или ключи SSH для доступа Git, что поможет предотвратить перегрузку сервера запросами проверки подлинности LDAP. Рекомендуется использовать этот параметр, так как сервер LDAP отличается довольно медленным откликом, и в сочетании с большим количеством запросов из-за опроса часто является источником проблем с производительностью и сбоев.

Флажок отключения проверки паролей LDAP для Git

Если этот флажок установлен, то при попытке использования пароля для операций Git в командной строе пользователь получит следующее сообщение об ошибке: Password authentication is not allowed for Git operations. You must use a personal access token.

Включение проверки сертификата LDAP

Выберите Включить проверку сертификата LDAP в параметрах LDAP, чтобы выполнялась проверка сертификата сервера LDAP, используемого с TLS.

Флажок включения проверки сертификата LDAP

Если этот флажок установлен, выполняются следующие проверки сертификата.

  • Если сертификат содержит хотя бы одно альтернативное имя субъекта (SAN), проверяется, соответствует ли одно из имен SAN имени узла LDAP. В противном случае проверяется соответствие общего имени (CN) имени узла LDAP.
  • Сертификат является действительным на текущую дату.
  • Сертификат подписан доверенным центром сертификации (ЦС).

Включение синхронизации LDAP

Примечание. В командах, использующих синхронизацию LDAP, может быть не более 1499 членов.

Синхронизация LDAP позволяет синхронизировать пользователей и членов групп GitHub Enterprise Server с установленными группами LDAP. Это позволяет устанавливать управление доступом на основе ролей для пользователей с сервера LDAP, вместо того чтобы делать это вручную в GitHub Enterprise Server. Дополнительные сведения см. в разделе Создание команд.

Чтобы включить синхронизацию LDAP, в параметрах LDAP выберите Синхронизировать электронную почту, Синхронизировать ключи SSH или Синхронизировать ключи GPG.

Флажок синхронизации

После включения синхронизации LDAP в указанный интервал времени будет запущено задание синхронизации для выполнения следующих операций с каждой учетной записью пользователя.

  • Если вы разрешили встроенную проверку подлинности для пользователей за пределами вашего поставщика удостоверений, и пользователь использует встроенную проверку подлинности, задание синхронизации переходит к следующему пользователю.
  • Если для пользователя не существует сопоставления LDAP, выполняется попытка сопоставить пользователя с записью LDAP в каталоге. Если пользователя не удается сопоставить с записью LDAP, задание синхронизации блокирует этого пользователя и переходит к следующему пользователю.
  • Если в каталоге отсутствует и сопоставление LDAP, и соответствующая запись LDAP, этот пользователь блокируется и выполняется переход к следующему пользователю.
  • Если соответствующая запись LDAP помечена как отключенная, а пользователь еще не заблокирован, этот пользователь блокируется и выполняется переход к следующему пользователю.
  • Если соответствующая запись LDAP не помечена как отключенная, а пользователь заблокирован, и при этом в Центре администрирования включена повторная активация заблокированных пользователей, этот пользователь разблокируется.
  • Если в экземпляре настроена одна или несколько ограниченных групп пользователей, а соответствующая запись LDAP не входит в одну из этих групп, пользователь блокируется.
  • Если в экземпляре настроена одна или несколько ограниченных групп пользователей, соответствующая запись LDAP находится в одной из этих групп, и в Центре администрирования включена повторная активация заблокированных пользователей, пользователь разблокируется.
  • Если соответствующая запись LDAP содержит атрибут name, имя профиля пользователя обновляется.
  • Если соответствующая запись LDAP находится в группе "Администраторы", уровень пользователя повышается до администратора сайта.
  • Если соответствующая запись LDAP не входит в группу Администраторы, понизите пользователя до обычной учетной записи, если учетная запись не приостановлена. Приостановленные администраторы не будут понижены и останутся в списке на страницах "Администраторы сайта" и "Владельцы предприятия".
  • Если для электронной почты определено поле "Пользователь LDAP", параметры электронной почты пользователя синхронизируются с записью LDAP. Первая запись LDAP mail устанавливается в качестве основного адреса электронной почты.
  • Если для открытых ключей SSH определено поле "Пользователь LDAP", открытые ключи SSH пользователя синхронизируются с записью LDAP.
  • Если для ключей GPG определено поле "Пользователь LDAP", ключи GPG пользователя синхронизируются с записью LDAP.

Примечание. Записи LDAP можно пометить как отключенные, только если вы используете Active Directory, и атрибут userAccountControl присутствует и помечен как ACCOUNTDISABLE. Некоторые варианты Active Directory, например AD LDS и ADAM, не поддерживают атрибут userAccountControl.

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

  • Если соответствующая группа LDAP команды удалена, из команды удаляются все участники.

  • Если записи членов LDAP удалены из группы LDAP, соответствующие пользователи удаляются из команды. Если пользователь больше не является членом какой-либо команды в организации и не является владельцем организации, удалите пользователя из организации. Если пользователь в результате теряет доступ к любым репозиториям, удаляются все частные вилки репозиториев, которые есть у этого пользователя.

    Примечание: Синхронизация LDAP не удаляет пользователя из организации, если он является владельцем этой организации. Другому владельцу организации потребуется вручную удалить пользователя.

  • Если записи членов LDAP добавлены в группу LDAP, соответствующие пользователи добавляются в команду. Если в результате пользователь восстанавливает доступ к каким-либо репозиториям, восстанавливаются все частные вилки репозиториев, удаленные из-за потери пользователем доступа за последние 90 дней.

    В рамках конфигурации оптимизации синхронизация LDAP не переносит вложенную структуру команды. Чтобы создать связи дочерних и родительских команд, необходимо вручную повторно создать структуру вложенной команды и синхронизировать ее с соответствующей группой LDAP. Дополнительные сведения см. в разделе Создание команд

Предупреждение системы безопасности.

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

Это может привести к раскрытию подрядчикам или другим непривилегированным пользователям конфиденциальной организационной информации, включая следующее:

  • существование определенных групп LDAP, видимых пользователю поиска домена;
  • членов группы LDAP, имеющих учетные записи пользователей GitHub Enterprise Server, которые раскрываются при создании группы, синхронизированной с этой группой LDAP.

Если раскрытие таких сведений нежелательно, ваша компания или организация должна ограничить разрешения настроенного пользователя поиска домена в консоли администрирования. Если такое ограничение невозможно, обратитесь в GitHub Enterprise Support.

Поддерживаемые классы объектов групп LDAP

GitHub Enterprise Server поддерживает следующие классы объектов групп LDAP. Группы могут быть вложенными.

  • group
  • groupOfNames
  • groupOfUniqueNames
  • posixGroup

Просмотр и создание пользователей LDAP

Вы можете просматривать полный список пользователей LDAP, имеющих доступ к вашему экземпляру, и подготавливать к работе новых пользователей.

  1. Войдите в your GitHub Enterprise Server instance по адресу http(s)://HOSTNAME/login. 1. Из учетной записи администратора на GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .

    Снимок экрана: значок ракетного корабля для доступа к параметрам администратора сайта

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

    Снимок экрана: ссылка "Администратор сайта"

  3. В левой боковой панели выберите Пользователи LDAP. Вкладка "Пользователи LDAP"

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

Обновление учетных записей LDAP

Пока не включена синхронизация LDAP, автоматическая синхронизация изменений учетных записей LDAP с GitHub Enterprise Server не выполняется.

Синхронизация учетных записей LDAP вручную

  1. Войдите в your GitHub Enterprise Server instance по адресу http(s)://HOSTNAME/login. 1. Из учетной записи администратора на GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .

    Снимок экрана: значок ракетного корабля для доступа к параметрам администратора сайта

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

    Снимок экрана: ссылка "Администратор сайта" 1. В поле поиска введите имя пользователя и нажмите кнопку Найти. Поле поиска настроек администратора сайта 1. В результатах поиска щелкните имя пользователя. Параметры поиска настроек администратора сайта 1. В правом верхнем углу страницы щелкните Администрирование. Средства администрирования 1. На боковой панели слева выберите Администратор. Средства администрирования

  3. В разделе "LDAP" нажмите Синхронизировать сейчас, чтобы вручную обновить учетную запись с помощью данных с вашего сервера LDAP. Кнопка немедленной синхронизации LDAP

Вы также можете использовать API для активации синхронизации вручную.

Отзыв доступа к your GitHub Enterprise Server instance

Если синхронизация LDAP включена, удаление учетных данных LDAP пользователя заблокирует его учетную запись после следующего запуска синхронизации.

Если синхронизация LDAP не включена, необходимо вручную заблокировать учетную запись GitHub Enterprise Server после удаления учетных данных LDAP. Дополнительные сведения см. в разделе Блокировка и разблокировка пользователей.