Skip to main content

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

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

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

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

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

Note

Можно использовать SAML или LDAP, но не оба.

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

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

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

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

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

GitHub нормализует значение от external authentication provider для определения имени пользователя для каждого нового личная учетная запись на ваш экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе Рекомендации по использованию имени пользователя для внешней проверки подлинности.

Настройка LDAP с помощью ваш экземпляр GitHub Enterprise Server

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

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

Warning

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

  1. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
  3. На боковой панели " "Администратор сайта" щелкните Консоль управления.
  4. На боковой панели "Параметры" щелкните "Проверка подлинности".
  5. В разделе "Проверка подлинности" выберите LDAP.
  6. При необходимости для того, чтобы разрешить пользователям без учетной записи во внешней системе проверки подлинности вход с помощью встроенной проверки подлинности, выберите Разрешить встроенную проверку подлинности. Дополнительные сведения см. в разделе Разрешение встроенной проверки подлинности для пользователей за пределами поставщика.
  7. Добавьте параметры конфигурации.

Атрибуты LDAP

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

Attribute nameОбязательное полеОписание
HostУзел LDAP, например ldap.example.com или 10.0.0.30. Если имя узла доступно только из внутренней сети, может потребоваться настроить ваш экземпляр GitHub Enterprise ServerDNS, чтобы разрешить имя узла с помощью внутренних серверов имен.
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 в качестве доменной базы и использовать ограниченные группы пользователей для управления доступом. Можно настроить несколько баз доменов. Однако GitHub Enterprise Server выполняет поиск пользователей и членства в группах для каждой настроенной базы домена последовательно, поэтому настройка нескольких баз доменных баз может увеличить количество выполняемых запросов LDAP. Чтобы обеспечить производительность и стабильность экземпляра, рекомендуется настроить не более трех баз доменов.
Restricted user groupsЕсли эти группы указаны, вход будет разрешен только пользователям в этих группах. Необходимо указать только общие имена (CN) групп. Если группы не указаны, все пользователи в пределах указанной доменной базы смогут входить в ваш экземпляр GitHub Enterprise Server. Можно настроить несколько ограниченных групп пользователей. Однако каждая группа увеличивает количество запросов LDAP членства в группах, которые 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

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

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

Чтобы отключить проверку подлинности паролей для операций Git, выберите "Отключить проверку подлинности пользователя и пароля" для операций Git в параметрах LDAP.

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

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

Вы можете проверить сертификат сервера LDAP, используемый с TLS, включив проверку сертификата LDAP.

Чтобы включить проверку сертификата LDAP, выберите включить проверку сертификата LDAP в параметрах LDAP.

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

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

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

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

Синхронизация LDAP не создает учетные записи пользователей в ваш экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе "Просмотр и создание пользователей LDAP".

Note

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

Если вы используете Active Directory в частности, запросы пользователей и синхронизация групп могут завершиться ошибкой, если группы LDAP, настроенные для команд или в Консоль управления превышают 1500 членов, из-за MaxValRange ограничения в Active Directory. В качестве обходного решения можно использовать группы Active Directory, содержащие менее 1500 членов, или вы можете работать с администратором Active Directory, чтобы увеличить MaxValRange значение контроллеров домена. Дополнительные сведения см. в статье Просмотр и настройка политики LDAP в Active Directory с помощью Ntdsutil.exe в Microsoft Learn.

Если вам нужна помощь в определении правильности изменения MaxValRange среды Active Directory, обратитесь к служба поддержки Майкрософт.

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

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

Чтобы автоматически синхронизировать определенные атрибуты из LDAP, в разделе "Синхронизация пользовательских писем, ключей SSH и GPG", нажмите кнопку "Синхронизировать сообщения электронной почты", синхронизировать ключи 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.

Note

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

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

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

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

    Note

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

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

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

Warning

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

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

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

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

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

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

  • group
  • groupOfNames
  • groupOfUniqueNames
  • posixGroup

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

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

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

  1. Войдите в ваш экземпляр GitHub Enterprise Server по адресу http(s)://HOSTNAME/login.
  2. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
  3. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
  4. В левой боковой панели выберите Пользователи LDAP.
  5. Чтобы найти пользователя, введите полное или частичное имя пользователя и нажмите Поиск. Существующие пользователи появятся в результатах поиска. Если пользователь не существует, нажмите Создать, чтобы подготовить к работе новую учетную запись пользователя.

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

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

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

  1. Войдите в ваш экземпляр GitHub Enterprise Server по адресу http(s)://HOSTNAME/login.
  2. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
  3. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
  4. В разделе "Поиск пользователей, организаций, команд, репозиториев, гистов и приложений" введите имя пользователя в текстовом поле.
  5. Справа от текстового поля нажмите кнопку "Поиск".
    Снимок экрана: страница "Поиск" параметров "Администратор сайта". Кнопка поиска пользователей с меткой "Поиск", выделена оранжевым контуром.
    • Если точное совпадение имени учетной записи не найдено, в разделе "Результаты поиска — учетные записи" в разделе "Нечеткие совпадения" щелкните имя пользователя, которым требуется управлять.
      Снимок экрана: результаты поиска в параметрах "Администратор сайта". В разделе "Нечеткие совпадения" пример имени пользователя выделен оранжевым контуром.
  6. Просмотрите сведения о пользователе на странице администрирования сайта, чтобы подтвердить, что вы определили правильного пользователя.
    Снимок экрана: страница обзора учетной записи администратора сайта.
  7. В правом верхнем углу страницы щелкните Admin.
    Снимок экрана: заголовок страницы "Администратор сайта" для пользователя или репозитория. Вкладка "Администратор" выделена оранжевым контуром.
  8. В разделе "LDAP" нажмите Синхронизировать сейчас, чтобы вручную обновить учетную запись с помощью данных с вашего сервера LDAP.

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

Отмена доступа к ваш экземпляр GitHub Enterprise Server

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

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

Сведения о ведении журнала для LDAP

События журнала для LDAP отображаются в системных журналах на ваш экземпляр GitHub Enterprise Server. События, связанные с операциями LDAP, будут находиться в журналах github-unicorn и github-resqued. Дополнительные сведения см. в разделе Сведения о системных журналах.

Ограничения для LDAP для GitHub Enterprise Server

Параметр времени ожидания проверки подлинности LDAP GitHub Enterprise Server составляет 10 секунд. Это означает, что все запросы LDAP, необходимые для проверки подлинности пользователя и членства в группах (когда администраторы и группы ограниченных пользователей настроены в консоль управления), должны успешно завершиться в течение 10 секунд для пользователя LDAP, который входит в GitHub Enterprise Server. GitHub Enterprise Server в настоящее время не поддерживает расширение этого 10-секундного времени ожидания проверки подлинности LDAP, так как это может негативно повлиять на другие службы на устройстве и привести к низкой производительности или непредвиденным сбоям. Мы рекомендуем ограничить задержку сети между GitHub Enterprise Server и серверами LDAP, чтобы предотвратить время ожидания проверки подлинности.