При использовании идентификатор для IAM для IAM на GitHub Enterprise Server, элементы управления единым входом SAML и защищает доступ к корпоративным ресурсам, таким как репозитории, проблемы и запросы на вытягивание. SCIM автоматически создает учетные записи пользователей и управляет доступом к вашей организации при внесении изменений в поставщика удостоверений. Вы также можете синхронизировать команды на GitHub с группами в вашем idP. Дополнительные сведения см. в разделе О пользовательском провизионировании с помощью SCIM на GitHub Enterprise Server.
Обзор
Это руководство поможет вам настроить проверку подлинности SAML и подготовку SCIM для GitHub в PingFederate.
Перед началом работы обратите внимание на следующее:
- Использование PingFederate в качестве поставщика удостоверений для GitHub Enterprise Server находится в public preview. Обратитесь в свою группу учетных записей, чтобы предоставить отзыв.
- Это руководство основано на PingFederate версии 12.1. Инструкции могут отличаться для других версий.
- В этом руководстве приведены минимальные шаги по настройке рабочей установки. Так как каталог удостоверений может быть подключен к PingFederate по-другому, вам потребуется выбрать правильные атрибуты данных для SAML и SCIM на основе того, что доступно из резервного хранилища данных.
Необходимые компоненты
Общие предварительные требования для использования SCIM для GitHub Enterprise Server применяются. См. раздел "Предварительные требования" в Настройка подготовки SCIM для управления пользователями.
Дополнительно:
- Чтобы настроить SCIM, необходимо выполнить шаги 1–4 в Настройка подготовки SCIM для управления пользователями.
- Вам потребуется personal access token (classic) для пользователя установки для проверки подлинности запросов из PingFederate.
- Вы, должно быть, установили «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.
-
[Создание адаптера SAML](#create-a-saml-adapter) -
[Настройка экземпляра адаптера поставщика удостоверений LDAP](#set-up-an-ldap-idp-adapter-instance) -
[Управление выходными данными SAML из адаптера поставщика удостоверений](#manage-saml-output-from-your-idp-adapter)
Прежде чем начать этот раздел, убедитесь, что вы выполнили шаги 1 и 2 в Настройка подготовки SCIM для управления пользователями.
Создание адаптера SAML
-
Откройте административную консоль PingFederate.
-
Щелкните "Приложения" в заголовке, а затем нажмите кнопку "Sp Connections" на левой боковой панели.
-
Нажмите Используйте шаблон для этого соединения, затем выберите «GitHub EMU Connector» в выпадающем меню «Шаблон подключения».
Примечание.
Если вы не видите этой опции, значит, разъём GitHub EMU не установлен. Если вам нужна помощь, обратитесь к представителю Ping.
-
Чтобы заполнить некоторые поля в конфигурации PingFederate, вы отправите XML-файл, содержащий метаданные SAML для вашего предприятия.
- На новой вкладке войдите в GitHub в качестве встроенного пользователя установки.
Перейдите на страницу
https://HOSTNAME/saml/metadataметаданных SAML. - Скачайте страницу в виде XML-файла.
- На новой вкладке войдите в GitHub в качестве встроенного пользователя установки.
Перейдите на страницу
-
На странице PingFederate "SP Connection" отправьте файл из предыдущего шага в качестве файла метаданных. Убедитесь, что вы сделаете это в течение 5 минут после скачивания файла.
-
Перейдите на вкладку "Тип подключения".
-
Выберите профили** единого входа в браузере и отмените **выделение исходящей подготовки (это будет включено позже).
-
Нажмите кнопку Далее.
-
На вкладке "Параметры подключения" убедитесь, что выбран только единый вход браузера.
-
Нажмите кнопку Далее.
-
На вкладке "Общие сведения" введите следующие сведения.
- "Идентификатор сущности партнера": ваш URL-адрес узла GitHub (
https://HOSTNAME.com) - "Имя подключения": описательное имя для подключения sp в PingFederate
- "Базовый URL-адрес": url-адрес узла GitHub (
https://HOSTNAME.com) - "Ведение журнала транзакций": стандартный
- Все остальные поля могут оставаться пустыми.
- "Идентификатор сущности партнера": ваш URL-адрес узла GitHub (
-
Нажмите кнопку Далее.
-
Нажмите кнопку "Настроить единый вход в браузер".
-
Нажмите кнопку "Настроить создание утверждения".
-
На вкладке "Сопоставление источника проверки подлинности" щелкните "Сопоставление нового адаптера".
-
На вкладке "Экземпляр адаптера" щелкните " Управление экземплярами адаптера".
-
Нажмите кнопку "Создать экземпляр".
Настройка экземпляра адаптера поставщика удостоверений LDAP
-
На странице "Создание экземпляра адаптера" на вкладке "Тип" введите следующие сведения.
- "Имя экземпляра": имя для идентификации экземпляра, например
pfghadapter - "Идентификатор экземпляра": идентификатор для экземпляра, например
pfghadapter - "Type": адаптер поставщика удостоверений формы HTML
- "Родительский экземпляр": нет
- "Имя экземпляра": имя для идентификации экземпляра, например
-
Нажмите кнопку Далее.
-
На вкладке "Адаптер поставщика удостоверений" в нижней части страницы щелкните " Управление проверятелями учетных данных паролей".
-
Нажмите кнопку "Создать экземпляр".
-
На вкладке "Тип" введите следующие сведения.
- "Имя экземпляра": имя для идентификации экземпляра, например
pfghdocscv - "Идентификатор экземпляра": идентификатор для экземпляра, например
pfghdocscv - "Type": проверка учетных данных пароля ldap
- "Родительский экземпляр": нет
- "Имя экземпляра": имя для идентификации экземпляра, например
-
Нажмите кнопку Далее.
-
На вкладке "Конфигурация экземпляра" щелкните " Управление хранилищами данных".
-
Нажмите кнопку "Добавить новое хранилище данных".
-
На вкладке "Тип хранилища данных" введите следующие сведения.
- "Имя экземпляра": любое уникальное значение, например
pfghdocsds - «Тип»: Каталог (LDAP)
- "Маскирование значений в журнале": отмена выбора
- "Имя экземпляра": любое уникальное значение, например
-
Нажмите кнопку Далее.
-
На вкладке "Конфигурация LDAP" настройте сведения о сервере LDAP.
-
Нажмите кнопку Проверить подключение. Должно появиться сообщение "Проверка подключения была успешной".
-
В нижней части страницы нажмите кнопку "Дополнительно".
-
Перейдите на вкладку "Двоичные атрибуты LDAP" и добавьте
guidAttributeиobjectGUIDв качестве атрибутов. -
Нажмите кнопку Готово. Вы должны вернуться на вкладку "Конфигурация LDAP".
-
Нажмите кнопку "Далее **", а затем **нажмите кнопку "Сохранить".
-
На вкладке "Управление хранилищами данных" нажмите кнопку "Готово".
-
На вкладке "Конфигурация экземпляра" введите следующие сведения.
- "Хранилище данных LDAP": имя созданного выше хранилища данных
- "База поиска": расположение в каталоге, в котором должны начинаться поиски LDAP
- "Фильтр поиска": фильтр, который гарантирует, что имя пользователя вводится при входе в поле на сервере LDAP (например:
sAMAccountName=${username}) - Область поиска: поддерев
- "Сопоставление с учетом регистра": выбрано
-
Нажмите кнопку "Далее", "Далее****", а затем " Сохранить".
Управление выходными данными SAML из адаптера поставщика удостоверений
-
На странице "Управление проверятелями учетных данных паролей" нажмите кнопку "Готово".
-
На вкладке "Адаптер поставщика удостоверений" введите следующие сведения.
- "Экземпляр проверяющего пароля": имя экземпляра проверяющего элемента, созданного выше (например
pfghdocscv). Нажмите кнопку "Обновить", чтобы завершить выбор. - Все остальные поля можно оставить в качестве значений по умолчанию или изменить в соответствии с вашими требованиями.
- "Экземпляр проверяющего пароля": имя экземпляра проверяющего элемента, созданного выше (например
-
Нажмите кнопку **"Далее", а затем **еще раз.
-
На вкладке "Атрибуты адаптера" введите следующие сведения.
-
"Уникальный атрибут ключа пользователя":
username -
Рядом с атрибутом
usernameвыберите "Псевдоним".
Примечание.
Это важный шаг. Атрибут адаптера используется для уникальной идентификации пользователя на GitHub во время подготовки SCIM.
-
-
Нажмите кнопку **"Далее", а затем **еще раз.
-
Просмотрите параметры на странице сводки и нажмите кнопку "Сохранить".
-
На вкладке "Адаптеры idP" вы увидите только что созданный адаптер. Нажмите кнопку Готово.
-
На вкладке "Экземпляр адаптера" в раскрывающемся списке "Экземпляр адаптера" выберите только что созданный адаптер.
-
Нажмите кнопку Далее.
-
На вкладке "Метод сопоставления" выберите "Использовать только значения контракта адаптера" в утверждении SAML (другие варианты могут работать, но не были подтверждены).
-
Нажмите кнопку Далее.
-
На вкладке "Выполнение контракта атрибута" сопоставляйте
SAML_SUBJECTзначение "Адаптер" в качестве источника иusernameзначения.Примечание.
Это важный шаг. Нормализованное
SAML_SUBJECTзначение потребуется сопоставить нормализованные имена пользователей, подготовленных SCIM. -
Нажмите кнопку "Далее", "Далее**", **а затем "Готово".
-
На вкладке "Сопоставление источника проверки подлинности" необходимо вернуться, а в разделе "Имя экземпляра адаптера" должен быть только что созданный экземпляр адаптера.
-
Нажмите кнопку Далее.
-
На вкладке "Параметры протокола" нажмите кнопку "Настройка параметров протокола".
-
В поле "URL-адрес службы потребителей утверждений" добавьте строку со следующими сведениями:
- Выбрано значение по умолчанию
- «Индекс»: 0
- "Привязка": POST
- "URL-адрес конечной точки":
HOSTNAME/saml/consume
-
Нажмите кнопку Далее.
-
На вкладке "Допустимые привязки SAML" убедитесь, что выбраны только "POST" и "REDIRECT".
-
Нажмите кнопку Далее.
-
На странице "Политика подписи" убедитесь, что выбран только параметр SIGN RESPONSE AS REQUIRED.
-
Нажмите кнопку Далее.
-
На вкладке "Политика шифрования" убедитесь, что выбран параметр NONE.
-
Нажмите кнопку Далее.
-
Нажмите кнопку Сохранить.
-
Нажимайте кнопку "Далее " и " Готово", пока не перейдете на вкладку "Учетные данные".
-
На вкладке "Учетные данные" нажмите кнопку "Настройка учетных данных", а затем нажмите кнопку "Управление сертификатами".
-
На странице "Управление сертификатами" нажмите кнопку "Импорт", а затем отправьте сертификат X509 (см. пример создания сертификата X509).
-
В поле "Пароль" используйте пароль вызова для сертификата.
-
Нажмите кнопку "Далее **", а затем **нажмите кнопку "Сохранить".
-
На вкладке "Управление сертификатами" вы увидите только что импортированный сертификат. Нажмите кнопку Готово.
-
На вкладке "Параметры цифровой подписи":
- Выберите сертификат, который вы только что создали для сертификата подписи.
- Вы можете оставить вторичный сертификат пустым, а флажок "Включить сертификат в подпись" не выбран.
- Алгоритм подписывания должен иметь значение RSA SHA256.
-
Нажмите кнопку "Далее", а затем "Готово" и " Далее".
-
На вкладке "Сводка" включите переключатель для конечной точки приложения единого входа.
-
Нажмите кнопку Сохранить. Вы должны вернуться к списку подключений sp, где должно появиться только что созданное подключение sp.
Сбор сведений о конфигурации SAML
Для настройки SAML на GitHubвам потребуются некоторые сведения из PingFederate.
- На странице "Подключения с пакетом обновления" в строке нового подключения нажмите кнопку "Выбрать действие", а затем экспорт метаданных.
- На вкладке "Подпись метаданных" в строке нового подключения выберите сертификат подписи, созданный выше. Чтобы скачать сертификат, нажмите кнопку "Далее", а затем нажмите кнопку "Экспорт".
- В PingFederate щелкните "Система " в заголовке, а затем "Сервер", а затем "Параметры протокола". Убедитесь, что
SAML 2.0 ENTITY IDопределен параметр. Запишите это, так как вам потребуется для поля "Издатель" в параметрах SAML GitHub. - Откройте скачанный файл метаданных и подготовьтесь к следующим шагам.
Настройка GitHub
-
Войдите в GitHub как пользователь с доступом к консоли управления.
-
Включите SAML в параметрах предприятия. См. Настройка единого входа SAML для предприятия.
-
Введите следующие значения из файла метаданных SAML из предыдущего раздела.
- Для URL-адреса единого
locationвхода используйте<md: SingleSignOnService>значение поля. Это должен быть конечный URL-адрес/idp/SSO.saml2. - Для издателя используйте
entityIdзначение<md: EntityDescriptor>поля (URL-адрес).
- Для URL-адреса единого
-
Для сертификата проверки отправьте созданный ранее файл сертификата X509.
-
Нажмите кнопку Сохранить параметры.
2. Настройка SCIM
В этом разделе описана настройка параметров SCIM и сопоставления атрибутов в PingFederate.
-
[Настройка параметров SCIM](#configure-scim-settings) -
[Сопоставление полей LDAP с SCIM](#map-ldap-fields-to-scim) -
[Завершение настройки и тестирования](#finish-configuration-and-test)
Прежде чем начать этот раздел, убедитесь, что вы выполнили шаги 1–4 в Настройка подготовки SCIM для управления пользователями.
Настройка параметров SCIM
-
Вернитесь на страницу "Подключения sp" в PingFederate и выберите созданное ранее соединение с пакетом поддержки.
-
Перейдите на вкладку "Тип подключения".
-
Выберите "Исходящая подготовка".
-
Убедитесь, что выбраны профили единого входа в браузере.
-
Нажмите кнопку "Далее ", пока не перейдете на вкладку "Исходящая подготовка", а затем нажмите кнопку "Настройка подготовки".
-
На вкладке "Целевой" введите следующие сведения.
- "Базовый URL-адрес":
https://HOSTNAME/api/v3/scim/v2 - "Маркер доступа": personal access token (classic), созданный для пользователя установки
- "Базовый URL-адрес":
-
Нажмите кнопку Далее.
-
На вкладке "Управление каналом" нажмите кнопку "Создать", а затем введите уникальное имя канала, например
pfghscim. -
Нажмите кнопку Далее.
-
На вкладке "Источник" выберите хранилище данных, созданное ранее.
-
Нажмите кнопку Далее.
-
На вкладке "Параметры источника" можно сохранить все параметры по умолчанию. Другие параметры, скорее всего, будут работать, но не были подтверждены.
-
Нажмите кнопку Далее.
-
На вкладке "Исходное расположение" настройте место на сервере LDAP, из которого вы хотите получить подготовленных пользователей. Это зависит от настроек и потребностей. После настройки нажмите кнопку "Далее".
Сопоставление полей LDAP с SCIM
На вкладке "Сопоставление атрибутов" необходимо сопоставить поля с сервера LDAP с полями SCIM. См. следующий список для поддерживаемых полей SCIM GitHubи значений, ожидаемых в каждом из них.
- Имя пользователя: это нормализуется и используется в качестве имени пользователя GitHub для подготовленного пользователя. См . раздел AUTOTITLE. Это должно соответствовать нормализации субъекта, отправленному с утверждением SAML, настроенным с
SAML_SUBJECTпомощью свойства в PingFederate. - Электронная почта: поле, содержащее адрес электронной почты пользователя.
- Отображаемое имя: удобочитаемое пользователем имя.
- Отформатированный имя: полное имя пользователя, включая все имена, названия и суффиксы, отформатированные для отображения.
- Имя: имя пользователя.
- Фамилия: фамилия пользователя.
- Внешний идентификатор: этот идентификатор создается поставщиком удостоверений.
- Роли: это поле должно содержать строку, представляющую предполагаемую роль пользователя на GitHub. Допустимые роли:
guest_collaboratorиenterprise_owner``user.
Закончив настройку этих параметров, нажмите кнопку "Далее".
Завершение настройки и тестирования
- На вкладке "Активация и сводка" для параметра "Состояние канала" выберите "Активный".
- На вкладке "Управление каналами" нажмите кнопку "Готово".
- На вкладке "Исходящая подготовка" нажмите кнопку "Сохранить". Теперь SCIM настроен и включен.
- Подождите несколько минут для запуска подготовки, а затем откройте новое окно частного браузера и перейдите к GitHub.
- Нажмите кнопку " Войти" с помощью SAML. Вы должны быть перенаправлены на страницу входа PingFederate.
- Вы должны иметь возможность войти с учетными данными для пользователя на сервере LDAP, подготовленном для GitHub.
Подготовка PingFederate обрабатывает пользователей и группы независимо. Пользователи должны быть назначены непосредственно для подготовки. Пользователи, которые находятся в назначенной группе, но не назначены напрямую, не будут подготовлены.
После завершения настройки SCIM может потребоваться отключить некоторые параметры SAML, которые вы включили для процесса настройки. См . раздел AUTOTITLE.
Пример создания сертификата X509
Существует несколько способов создания сертификата X509. Ниже приведен пример, который может работать для ваших требований.
-
В окне терминала убедитесь, что OpenSSL установлен, выполнив команду
openssl version. Если он не установлен, установите его. -
Создайте закрытый ключ с помощью следующей команды.
Shell openssl req -nodes -sha256 -newkey rsa:2048 -keyout MyPrivateKey.key -out MyCertificateRequest.csr
openssl req -nodes -sha256 -newkey rsa:2048 -keyout MyPrivateKey.key -out MyCertificateRequest.csrВведите необходимые сведения и запишите создаваемый пароль запроса.
-
Чтобы убедиться, что ключ был создан, выполните следующую команду. Имя файла
MyPrivateKey.keyдолжно быть указано в выходных данных команды.Shell ls | grep MyPrivateKey.key
ls | grep MyPrivateKey.key -
Создайте сертификат с помощью следующей команды.
Shell openssl x509 -req -days 365 -sha256 -in MyCertificateRequest.csr -signkey MyPrivateKey.key -out pfgh256.crt
openssl x509 -req -days 365 -sha256 -in MyCertificateRequest.csr -signkey MyPrivateKey.key -out pfgh256.crt -
Чтобы убедиться, что сертификат создан, выполните следующую команду. Имя файла
pfgh256.crtдолжно быть указано в выходных данных команды.Shell ls | grep pfgh256.crt
ls | grep pfgh256.crt -
Экспортируйте PKCS #12-файл с помощью следующей команды. Это файл, который необходимо отправить в PingFederate.
Shell openssl pkcs12 -export -in pfgh256.crt -inkey MyPrivateKey.key -out pfgh256.p12
openssl pkcs12 -export -in pfgh256.crt -inkey MyPrivateKey.key -out pfgh256.p12 -
Чтобы убедиться, что файл был экспортирован, выполните следующую команду. Имя файла
pfgh256.p12должно быть указано в выходных данных команды.Shell ls | grep pfgh256.p12
ls | grep pfgh256.p12