Skip to main content

Настройка проверки подлинности и подготовки с помощью PingFederate

Вы можете использовать PingFederate в качестве поставщика удостоверений (IdP) для централизованного управления проверкой подлинности и подготовкой пользователей для ваш экземпляр GitHub Enterprise Server.

Кто может использовать эту функцию?

Site administrators with admin access to the IdP

Note

SCIM для GitHub Enterprise Server в настоящее время находится в общедоступной бета-версии и подлежит изменению. GitHub рекомендует сначала тестировать с помощью промежуточный экземпляр. См. раздел "Настройка промежуточного экземпляра".

При использовании поставщика удостоверений для IAM для GitHub Enterprise Server, элементы управления единым входом SAML и защита доступа к корпоративным ресурсам, таким как репозитории, проблемы и запросы на вытягивание. SCIM автоматически создает учетные записи пользователей и управляет доступом к ваш экземпляр GitHub Enterprise Server при внесении изменений в поставщика удостоверений. Вы также можете синхронизировать команды на GitHub Enterprise Server с группами в идентификаторе поставщика удостоверений. Дополнительные сведения см. в разделе "О user provisioning with SCIM on GitHub Enterprise Server".

Обзор

Это руководство поможет вам настроить проверку подлинности SAML и подготовку SCIM для GitHub Enterprise Server в PingFederate.

Перед началом работы обратите внимание на следующее:

  • Использование PingFederate в качестве поставщика удостоверений для GitHub Enterprise Server находится в бета-версии. Обратитесь в свою группу учетных записей, чтобы предоставить отзыв.
  • Это руководство основано на PingFederate версии 12.1. Инструкции могут отличаться для других версий.
  • В этом руководстве предполагается, что в качестве резервного хранилища данных используется сервер LDAP. Хранилища данных JDBC должны работать, но инструкции могут немного отличаться.
  • В этом руководстве приведены минимальные шаги по настройке рабочей установки. Так как каталог удостоверений может быть подключен к PingFederate по-другому, вам потребуется выбрать правильные атрибуты данных для SAML и SCIM на основе того, что доступно из резервного хранилища данных.

Необходимые компоненты

Общие предварительные требования для использования SCIM для GitHub Enterprise Server применяются. См. раздел "Предварительные требования" в разделе "AUTOTITLE".

Дополнительно:

  • Чтобы настроить SCIM, необходимо выполнить шаги 1–4 в autoTITLE.
    • Вам потребуется personal access token (classic) для пользователя установки для проверки подлинности запросов из PingFederate.
  • Необходимо установить соединитель EMU GitHub в PingFederate. Чтобы скачать и установить соединитель, см . статью "Установка соединителя " в документации по PingIdentity.
    • Возможно, потребуется настроить брандмауэр в PingFederate, чтобы разрешить исходящие подключения к конечной точке https://HOSTNAME/api/v3/scim/v2 на экземпляре GitHub Enterprise Server.
  • Для режима подготовки PingFederate должно быть задано значение, позволяющее подготовить SCIM. См. раздел "Перед началом работы" в руководстве по настройке параметров подготовки исходящего трафика в PingIdentity.
  • Во время этой процедуры необходимо отправить сертификат X509 в PingFederate. Перед продолжением может потребоваться создать и сохранить сертификат. Вам также потребуется пароль запроса для сертификата. См. раздел "Пример создания сертификата X509" далее в этой статье.

1. Настройка SAML

В этом разделе описано, как создать соединитель SAML в PingFederate, настроить экземпляр адаптера ПОСТАВЩИКА удостоверений LDAP и управлять выходными данными SAML из адаптера idP.

  1. Создание адаптера SAML
  2. Настройка экземпляра адаптера поставщика удостоверений LDAP
  3. Управление выходными данными SAML из адаптера поставщика удостоверений

Перед началом работы с этим разделом убедитесь, что вы выполнили шаги 1 и 2 в autoTITLE.

Создание адаптера SAML

  1. Откройте административную консоль PingFederate.

  2. Щелкните "Приложения" в заголовке, а затем нажмите кнопку "Sp Connections" на левой боковой панели.

  3. Выберите шаблон для этого подключения, а затем в раскрывающемся списке "GitHub EMU Connector" (Соединитель EMU GitHub) в раскрывающемся списке "Шаблон подключения".

    Note

    Если этот параметр не отображается, соединитель EMU GitHub не установлен. Если вам нужна помощь, обратитесь к представителю Ping.

  4. На новой вкладке войдите в экземпляр GitHub Enterprise Server в качестве встроенного пользователя установки, а затем перейдите к разделу https://HOSTNAME/saml/metadata. Скачайте страницу в виде XML-файла.

  5. На странице PingFederate "SP Connection" отправьте файл из предыдущего шага в качестве файла метаданных. Убедитесь, что вы сделаете это в течение 5 минут после скачивания файла.

  6. Перейдите на вкладку "Тип подключения".

  7. Выберите профили** единого входа в браузере и отмените **выделение исходящей подготовки (это будет включено позже).

  8. Нажмите кнопку Далее.

  9. На вкладке "Параметры подключения" убедитесь, что выбран только единый вход браузера.

  10. Нажмите кнопку Далее.

  11. На вкладке "Общие сведения" введите следующие сведения.

    • "Идентификатор сущности партнера": ваш URL-адрес узла GitHub Enterprise Server (https://HOSTNAME.com)
    • "Имя подключения": описательное имя для подключения sp в PingFederate
    • "Базовый URL-адрес": ваш GitHub Enterprise Server URL-адрес узла (https://HOSTNAME.com)
    • "Ведение журнала транзакций": стандартный
    • Все остальные поля могут оставаться пустыми.
  12. Нажмите кнопку Далее.

  13. Нажмите кнопку "Настроить единый вход в браузер".

  14. Нажмите кнопку "Настроить создание утверждения".

  15. На вкладке "Сопоставление источника проверки подлинности" щелкните "Сопоставление нового адаптера".

  16. На вкладке "Экземпляр адаптера" щелкните " Управление экземплярами адаптера".

  17. Нажмите кнопку "Создать экземпляр".

Настройка экземпляра адаптера поставщика удостоверений LDAP

Note

Этот раздел применяется, если используется сервер LDAP. Если вы не используете ПРОТОКОЛ LDAP, вам потребуется подключиться к адаптеру с помощью соответствующих параметров для ваших требований.

  1. На странице "Создание экземпляра адаптера" на вкладке "Тип" введите следующие сведения.

    • "Имя экземпляра": имя для идентификации экземпляра, например pfghadapter
    • "Идентификатор экземпляра": идентификатор для экземпляра, например pfghadapter
    • "Type": адаптер поставщика удостоверений формы HTML
    • "Родительский экземпляр": нет
  2. Нажмите кнопку Далее.

  3. На вкладке "Адаптер поставщика удостоверений" в нижней части страницы щелкните " Управление проверятелями учетных данных паролей".

  4. Нажмите кнопку "Создать экземпляр".

  5. На вкладке "Тип" введите следующие сведения.

    • "Имя экземпляра": имя для идентификации экземпляра, например pfghdocscv
    • "Идентификатор экземпляра": идентификатор для экземпляра, например pfghdocscv
    • "Type": проверка учетных данных пароля ldap
    • "Родительский экземпляр": нет
  6. Нажмите кнопку Далее.

  7. На вкладке "Конфигурация экземпляра" щелкните " Управление хранилищами данных".

  8. Нажмите кнопку "Добавить новое хранилище данных".

  9. На вкладке "Тип хранилища данных" введите следующие сведения.

    • "Имя экземпляра": любое уникальное значение, например pfghdocsds
    • "Type": Directory (LDAP)
    • "Маскирование значений в журнале": отмена выбора
  10. Нажмите кнопку Далее.

  11. На вкладке "Конфигурация LDAP" настройте сведения о сервере LDAP.

  12. Нажмите кнопку Проверить подключение. Должно появиться сообщение "Проверка подключения была успешной".

  13. В нижней части страницы нажмите кнопку "Дополнительно".

  14. Перейдите на вкладку "Двоичные атрибуты LDAP" и добавьте guidAttribute и objectGUID в качестве атрибутов.

  15. Нажмите кнопку Готово. Вы должны вернуться на вкладку "Конфигурация LDAP".

  16. Нажмите кнопку "Далее **", а затем **нажмите кнопку "Сохранить".

  17. На вкладке "Управление хранилищами данных" нажмите кнопку "Готово".

  18. На вкладке "Конфигурация экземпляра" введите следующие сведения.

    • "Хранилище данных LDAP": имя созданного выше хранилища данных
    • "База поиска": расположение в каталоге, в котором должны начинаться поиски LDAP
    • "Фильтр поиска": фильтр, который гарантирует, что имя пользователя вводится при входе в поле на сервере LDAP (например: sAMAccountName=${username})
    • Область поиска: поддерев
    • "Сопоставление с учетом регистра": выбрано
  19. Нажмите кнопку "Далее", "Далее****", а затем " Сохранить".

Управление выходными данными SAML из адаптера поставщика удостоверений

  1. На странице "Управление проверятелями учетных данных паролей" нажмите кнопку "Готово".

  2. На вкладке "Адаптер поставщика удостоверений" введите следующие сведения.

    • "Экземпляр проверяющего пароля": имя экземпляра проверяющего элемента, созданного выше (например pfghdocscv). Нажмите кнопку "Обновить", чтобы завершить выбор.
    • Все остальные поля можно оставить в качестве значений по умолчанию или изменить в соответствии с вашими требованиями.
  3. Нажмите кнопку **"Далее", а затем **еще раз.

  4. На вкладке "Атрибуты адаптера" введите следующие сведения.

    • "Уникальный атрибут ключа пользователя": username

    • Рядом с атрибутом username выберите "Псевдоним".

    Note

    Это важный шаг. Атрибут адаптера используется для уникальной идентификации пользователя в экземпляре во время подготовки SCIM.

  5. Нажмите кнопку **"Далее", а затем **еще раз.

  6. Просмотрите параметры на странице сводки и нажмите кнопку "Сохранить".

  7. На вкладке "Адаптеры idP" вы увидите только что созданный адаптер. Нажмите кнопку Готово.

  8. На вкладке "Экземпляр адаптера" в раскрывающемся списке "Экземпляр адаптера" выберите только что созданный адаптер.

  9. Нажмите кнопку Далее.

  10. На вкладке "Метод сопоставления" выберите "Использовать только значения контракта адаптера" в утверждении SAML (другие варианты могут работать, но не были подтверждены).

  11. Нажмите кнопку Далее.

  12. На вкладке "Выполнение контракта атрибута" сопоставляйте SAML_SUBJECT значение "Адаптер" в качестве источника и username значения.

    Note

    Это важный шаг. Нормализованное SAML_SUBJECT значение потребуется сопоставить нормализованные имена пользователей, подготовленных SCIM.

  13. Нажмите кнопку "Далее", "Далее**", **а затем "Готово".

  14. На вкладке "Сопоставление источника проверки подлинности" необходимо вернуться, а в разделе "Имя экземпляра адаптера" должен быть только что созданный экземпляр адаптера.

  15. Нажимайте кнопку "Далее " и " Готово", пока не перейдете на вкладку "Учетные данные".

  16. На вкладке "Учетные данные" нажмите кнопку "Настройка учетных данных", а затем нажмите кнопку "Управление сертификатами".

  17. На странице "Управление сертификатами" нажмите кнопку "Импорт", а затем отправьте сертификат X509 (для справки см. раздел "Пример создания сертификата X509".

  18. В поле "Пароль" используйте пароль вызова для сертификата.

  19. Нажмите кнопку "Далее **", а затем **нажмите кнопку "Сохранить".

  20. На вкладке "Управление сертификатами" вы увидите только что импортированный сертификат. Нажмите кнопку Готово.

  21. На вкладке "Параметры цифровой подписи":

    • Выберите сертификат, который вы только что создали для сертификата подписи.
    • Вы можете оставить вторичный сертификат пустым, а флажок "Включить сертификат в подпись" не выбран.
    • Алгоритм подписывания должен иметь значение RSA SHA256.
  22. Нажмите кнопку "Далее", а затем "Готово" и " Далее".

  23. На вкладке "Сводка" включите переключатель для конечной точки приложения единого входа.

  24. Нажмите кнопку Сохранить. Вы должны вернуться к списку подключений sp, где должно появиться только что созданное подключение sp.

Сбор сведений о конфигурации SAML

Чтобы настроить SAML на GitHub, вам потребуются некоторые сведения из PingFederate.

  1. На странице "Подключения с пакетом обновления" в строке нового подключения нажмите кнопку "Выбрать действие", а затем экспорт метаданных.
  2. На вкладке "Подпись метаданных" в строке нового подключения выберите сертификат подписи, созданный выше. Чтобы скачать сертификат, нажмите кнопку "Далее", а затем нажмите кнопку "Экспорт".
  3. В PingFederate щелкните "Система " в заголовке, а затем "Сервер", а затем "Параметры протокола". Убедитесь, что SAML 2.0 ENTITY ID определен параметр. Запишите это, так как вам потребуется для поля "Издатель" в параметрах SAML GitHub.
  4. Откройте скачанный файл метаданных и подготовьтесь к следующим шагам.

Настройка GitHub Enterprise Server

  1. Войдите в ваш экземпляр GitHub Enterprise Server в качестве пользователя с доступом к консоли управления.

  2. Перейдите в раздел "Проверка подлинности" консоли управления, а затем включите SAML. См. раздел "Настройка единого входа SAML для предприятия".

  3. Введите следующие значения из файла метаданных, скачанных в предыдущем разделе.

    • Для URL-адреса единого <md: SingleSignOnService> входа используйте location значение поля. Это должен быть конечный URL-адрес /idp/SSO.saml2.
    • Для издателя используйте entityId значение <md: EntityDescriptor> поля (URL-адрес).
  4. Для сертификата проверки отправьте созданный ранее файл сертификата X509.

  5. Нажмите кнопку Сохранить параметры.

2. Настройка SCIM

В этом разделе описана настройка параметров SCIM и сопоставления атрибутов в PingFederate.

  1. Настройка параметров SCIM
  2. Сопоставление полей LDAP с SCIM
  3. Завершение настройки и тестирования

Перед началом работы с этим разделом убедитесь, что вы выполнили шаги 1–4 в autoTITLE.

Настройка параметров SCIM

  1. Вернитесь на страницу "Подключения sp" в PingFederate и выберите созданное ранее соединение с пакетом поддержки.

  2. Перейдите на вкладку "Тип подключения".

  3. Выберите "Исходящая подготовка".

  4. Убедитесь, что выбраны профили единого входа в браузере.

  5. Нажмите кнопку "Далее ", пока не перейдете на вкладку "Исходящая подготовка", а затем нажмите кнопку "Настройка подготовки".

  6. На вкладке "Целевой" введите следующие сведения.

    • "Базовый URL-адрес": https://HOSTNAME/api/v3/scim/v2/
    • "Маркер доступа": personal access token (classic) создан для встроенного пользователя установки
  7. Нажмите кнопку Далее.

  8. На вкладке "Управление каналом" нажмите кнопку "Создать", а затем введите уникальное имя канала, например pfghscim.

  9. Нажмите кнопку Далее.

  10. На вкладке "Источник" выберите хранилище данных, созданное ранее.

  11. Нажмите кнопку Далее.

  12. На вкладке "Параметры источника" можно сохранить все параметры по умолчанию. Другие параметры, скорее всего, будут работать, но не были подтверждены.

  13. Нажмите кнопку Далее.

  14. На вкладке "Исходное расположение" настройте место на сервере LDAP, из которого вы хотите получить подготовленных пользователей. Это зависит от настроек и потребностей. После настройки нажмите кнопку "Далее".

Сопоставление полей LDAP с SCIM

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

  • Имя пользователя: это нормализовано и используется в качестве имени пользователя GitHub для подготовленного пользователя. См. раздел "Рекомендации по использованию имени пользователя для внешней проверки подлинности". Это должно соответствовать нормализации субъекта, отправленному с утверждением SAML, настроенным с SAML_SUBJECT помощью свойства в PingFederate.
  • Электронная почта: поле, содержащее адрес электронной почты пользователя.
  • Отображаемое имя: удобочитаемое пользователем имя.
  • Отформатированный имя: полное имя пользователя, включая все имена, названия и суффиксы, отформатированные для отображения.
  • Имя: имя пользователя.
  • **** Фамилия: фамилия пользователя.
  • Внешний идентификатор: этот идентификатор создается поставщиком удостоверений.
  • Роли: это поле должно содержать строку, представляющую предполагаемую роль пользователя на GitHub. Допустимые роли: enterprise_owner и user.

Закончив настройку этих параметров, нажмите кнопку "Далее".

Завершение настройки и тестирования

  1. На вкладке "Активация и сводка" для параметра "Состояние канала" выберите "Активный".
  2. На вкладке "Управление каналами" нажмите кнопку "Готово".
  3. На вкладке "Исходящая подготовка" нажмите кнопку "Сохранить". Теперь SCIM настроен и включен.
  4. Подождите несколько минут для запуска подготовки, а затем откройте новое окно частного браузера и перейдите к экземпляру.https://HOSTNAME/login
  5. Нажмите кнопку " Войти" с помощью SAML. Вы должны быть перенаправлены на страницу входа PingFederate.
  6. Вы должны иметь возможность войти с учетными данными для пользователя на сервере LDAP, подготовленном для GitHub Enterprise Server.

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

После завершения настройки SCIM может потребоваться отключить некоторые параметры SAML, которые вы включили для процесса настройки. См. раздел "Настройка подготовки SCIM для управления пользователями".

Пример создания сертификата X509

Существует несколько способов создания сертификата X509. Ниже приведен пример, который может работать для ваших требований.

  1. В окне терминала убедитесь, что OpenSSL установлен, выполнив команду openssl version. Если он не установлен, установите его.

  2. Создайте закрытый ключ с помощью следующей команды.

    Shell
    openssl req -nodes -sha256 -newkey rsa:2048 -keyout MyPrivateKey.key -out MyCertificateRequest.csr
    

    Введите необходимые сведения и запишите создаваемый пароль запроса.

  3. Чтобы убедиться, что ключ был создан, выполните следующую команду. Имя файла MyPrivateKey.key должно быть указано в выходных данных команды.

    Shell
    ls | grep MyPrivateKey.key
    
  4. Создайте сертификат с помощью следующей команды.

    Shell
    openssl x509 -req -days 365 -sha256 -in MyCertificateRequest.csr -signkey MyPrivateKey.key -out pfgh256.crt
    
  5. Чтобы убедиться, что сертификат создан, выполните следующую команду. Имя файла pfgh256.crt должно быть указано в выходных данных команды.

    Shell
    ls | grep pfgh256.crt
    
  6. Экспортируйте PKCS #12-файл с помощью следующей команды. Это файл, который необходимо отправить в PingFederate.

    Shell
    openssl pkcs12 -export -in pfgh256.crt -inkey MyPrivateKey.key -out pfgh256.p12
    
  7. Чтобы убедиться, что файл был экспортирован, выполните следующую команду. Имя файла pfgh256.p12 должно быть указано в выходных данных команды.

    Shell
    ls | grep pfgh256.p12