Skip to main content

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

Настройте PingFederate как провайдер идентификации (IdP) для централизованного управления аутентификацией и провизацией для вашего предприятия.

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

Enterprise owners with admin access to the IdP

При использовании идентификатор для IAM для IAM на GitHub Enterprise Server, элементы управления единым входом SAML и защищает доступ к корпоративным ресурсам, таким как репозитории, проблемы и запросы на вытягивание. SCIM автоматически создает учетные записи пользователей и управляет доступом к вашей организации при внесении изменений в поставщика удостоверений. Вы также можете синхронизировать команды на GitHub с группами в вашем idP. Для получения дополнительной информации см. АВТОТИТРЫ.

Обзор

Это руководство поможет вам настроить как SAML-аутентификацию, так и SCIM-провизию на GitHub PingFederate.

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

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

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

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

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

  • Чтобы настроить SCIM, необходимо выполнить шаги 1–4 в Настройка SCIM-предоставления пользователей Enterprise для управления пользователями.
    • Для аутентификации запросов от PingFederate потребуется personal access token (classic) созданный для пользователя настройки.
  • Вы, должно быть, установили «GitHub EMU connector» на PingFederate. Чтобы скачать и установить соединитель, см. статью "Установка подготовки " в документации по PingIdentity.
  • Чтобы подготовить пользователей с помощью SCIM, необходимо использовать сервер LDAP в качестве резервного хранилища данных.
  • Возможно, вам придётся настроить межсетевой экран в 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» в выпадающем меню «Шаблон подключения».

    Примечание.

    Если вы не видите этой опции, значит, разъём GitHub EMU не установлен. Если вам нужна помощь, обратитесь к представителю Ping.

  4. Чтобы заполнить некоторые поля в конфигурации PingFederate, вы отправите XML-файл, содержащий метаданные SAML для вашего предприятия.

    1. В новой вкладке войдите GitHub как встроенный пользователь настройки. Перейдите на страницу https://HOSTNAME/saml/metadataметаданных SAML.
    2. Скачайте страницу в виде XML-файла.
  5. На странице PingFederate «SP Connection» загрузите файл с предыдущего шага как файл метаданных. Обязательно сделайте это в течение 5 минут после загрузки файла.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • "Имя экземпляра": любое уникальное значение, например pfghdocsds
    • «Тип»: Каталог (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 выберите "Псевдоним".

    Примечание.

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

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

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

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

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

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

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

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

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

    Примечание.

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

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

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

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

  16. На вкладке "Параметры протокола" нажмите кнопку "Настройка параметров протокола".

  17. В поле "URL-адрес службы потребителей утверждений" добавьте строку со следующими сведениями:

    • Выбрано значение по умолчанию
    • «Индекс»: 0
    • "Привязка": POST
    • "Endpoint URL": HOSTNAME/saml/consume
  18. Нажмите кнопку Далее.

  19. На вкладке "Допустимые привязки SAML" убедитесь, что выбраны только "POST" и "REDIRECT".

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

  21. На странице "Политика подписи" убедитесь, что выбран только параметр SIGN RESPONSE AS REQUIRED.

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

  23. На вкладке "Политика шифрования" убедитесь, что выбран параметр NONE.

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

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

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

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

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

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

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

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

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

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

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

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

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

Вам понадобятся некоторые данные из PingFederate для настройки SAML на GitHub.

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

Настроить GitHub

  1. Войдите в GitHub аккаунт с доступом к Консоли управления.

  2. Включите SAML в параметрах предприятия. См. .АВТОТИТРЫ.

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

    • Для URL-адреса единого location входа используйте <md: SingleSignOnService> значение поля. Это должен быть конечный 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
    • «Access Token»: созданный personal access token (classic) для пользователя настройки
  7. Нажмите кнопку Далее.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример создания сертификата 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