Сведения о проверке подлинности LDAP для GitHub Enterprise Server
LDAP — это популярный протокол приложений для доступа к информационным службам каталога и его обслуживания. Это один из наиболее распространенных протоколов, применяемых для интеграции стороннего программного обеспечения с пользовательскими каталогами крупных компаний. Дополнительные сведения см. в разделе Упрощенный протокол доступа к каталогам в Википедии.
Если вы используете каталог LDAP для централизованной проверки подлинности, можно настроить проверку подлинности LDAP для пользователей, использующих экземпляр GitHub Enterprise Server.
Примечание: Вы можете использовать либо 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 Enterprise Server нормализует значение из внешний поставщик проверки подлинности для определения имени пользователя для каждой новой личной учетной записи на экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе Рекомендации по использованию имени пользователя для внешней проверки подлинности.
Настройка LDAP с помощью экземпляр GitHub Enterprise Server
После настройки протокола LDAP пользователи смогут входить в ваш экземпляр с помощью своих учетных данных LDAP. При первом входе пользователей имена их профилей, адреса электронной почты и ключи SSH будут заданы с помощью атрибутов LDAP из вашего каталога.
При настройке доступа LDAP для пользователей с помощью Консоль управления ваши лицензии "на пользователя" не используются, пока пользователь не выполнит первый вход в ваш экземпляр. Однако если вы создаете учетную запись вручную с помощью параметров администратора сайта, лицензия "на пользователя" будет учитываться сразу же.
Предупреждение: Перед настройкой LDAP в экземпляр GitHub Enterprise Server убедитесь, что служба LDAP поддерживает результаты со страницами.
- В учетной записи администратора GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .
- Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта. 1. На боковой панели Администратор сайта щелкните Консоль управления. 1. На боковой панели "Параметры" щелкните Проверка подлинности.
- В разделе "Проверка подлинности" выберите LDAP.
- При необходимости для того, чтобы разрешить пользователям без учетной записи во внешней системе проверки подлинности вход с помощью встроенной проверки подлинности, выберите Разрешить встроенную проверку подлинности. Дополнительные сведения см. в разделе Разрешение встроенной проверки подлинности для пользователей за пределами поставщика.
- Добавьте параметры конфигурации.
Атрибуты LDAP
Используйте эти атрибуты, чтобы завершить настройку LDAP для экземпляр GitHub Enterprise Server.
Имя атрибута | Обязательно | Описание |
---|---|---|
Host | Узел LDAP, например ldap.example.com или 10.0.0.30 . Если имя узла доступно только из внутренней сети, может потребоваться сначала настроить DNS экземпляр GitHub Enterprise Server, чтобы оно решилось с помощью внутренних серверов доменных имен. | |
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
Чтобы принудительно использовать personal access token s или ключи 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, может быть не более 1499 членов.
Вы можете установить управление доступом на основе ролей для пользователей с сервера LDAP, синхронизируя пользователей и участников группы GitHub Enterprise Server с установленными группами LDAP. Дополнительные сведения см. в разделе Создание групп.
Чтобы включить синхронизацию 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. Дополнительные сведения см. в разделе "AUTOTITLE"
Предупреждение системы безопасности.
Если синхронизация LDAP включена, администраторы сайта и владельцы организации могут искать в каталоге LDAP группы для сопоставления команд.
Это может привести к раскрытию подрядчикам или другим непривилегированным пользователям конфиденциальной организационной информации, включая следующее:
- существование определенных групп LDAP, видимых пользователю поиска домена;
- членов группы LDAP, имеющих учетные записи пользователей GitHub Enterprise Server, которые раскрываются при создании группы, синхронизированной с этой группой LDAP.
Если раскрытие таких сведений нежелательно, ваша компания или организация должна ограничить разрешения настроенного пользователя поиска домена в консоли администрирования. Если такое ограничение невозможно, обратитесь в Поддержка GitHub Enterprise.
Поддерживаемые классы объектов групп LDAP
GitHub Enterprise Server поддерживает следующие классы объектов групп LDAP. Группы могут быть вложенными.
group
groupOfNames
groupOfUniqueNames
posixGroup
Просмотр и создание пользователей LDAP
Вы можете просматривать полный список пользователей LDAP, имеющих доступ к вашему экземпляру, и подготавливать к работе новых пользователей.
- Войдите в экземпляр GitHub Enterprise Server по адресу
http(s)://HOSTNAME/login
. 1. В учетной записи администратора GitHub Enterprise Server в правом верхнем углу любой страницы щелкните . - Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
- В левой боковой панели выберите Пользователи LDAP.
- Чтобы найти пользователя, введите полное или частичное имя пользователя и нажмите Поиск. Существующие пользователи появятся в результатах поиска. Если пользователь не существует, нажмите Создать, чтобы подготовить к работе новую учетную запись пользователя.
Обновление учетных записей LDAP
Пока не включена синхронизация LDAP, автоматическая синхронизация изменений учетных записей LDAP с GitHub Enterprise Server не выполняется.
- Чтобы использовать новую группу администрирования LDAP, необходимо вручную повышать и понижать уровень пользователей в GitHub Enterprise Server для отражения изменений в LDAP.
- Для добавления или удаления учетных записей LDAP в группах администраторов LDAP следует повышать или понижать уровни учетных записей в GitHub Enterprise Server.
- Чтобы удалить учетные записи LDAP, заблокируйте учетные записи GitHub Enterprise Server.
Синхронизация учетных записей LDAP вручную
- Войдите в экземпляр GitHub Enterprise Server по адресу
http(s)://HOSTNAME/login
. 1. В учетной записи администратора GitHub Enterprise Server в правом верхнем углу любой страницы щелкните . - Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта. 1. В разделе "Поиск пользователей, организаций, команд, репозиториев, gist и приложений" введите имя пользователя в текстовом поле.
- Справа от текстового поля нажмите кнопку Поиск.
- Если точное совпадение имени учетной записи не найдено, в разделе "Результаты поиска — учетные записи" в разделе "Нечеткие совпадения" щелкните имя пользователя, которым вы хотите управлять.
1. Просмотрите сведения о пользователе на странице администрирования сайта, чтобы убедиться, что вы определили правильного пользователя. 1. В правом верхнем углу страницы щелкните Администратор. 1. На левой боковой панели щелкните Администратор.
- Если точное совпадение имени учетной записи не найдено, в разделе "Результаты поиска — учетные записи" в разделе "Нечеткие совпадения" щелкните имя пользователя, которым вы хотите управлять.
- В разделе "LDAP" нажмите Синхронизировать сейчас, чтобы вручную обновить учетную запись с помощью данных с вашего сервера LDAP.
Вы также можете использовать API для активации синхронизации вручную.
Отзыв доступа к экземпляр GitHub Enterprise Server
Если синхронизация LDAP включена, удаление учетных данных LDAP пользователя заблокирует его учетную запись после следующего запуска синхронизации.
Если синхронизация LDAP не включена, необходимо вручную заблокировать учетную запись GitHub Enterprise Server после удаления учетных данных LDAP. Дополнительные сведения см. в разделе Приостановка и возобновление работы пользователей.