Интеграция с Blitz

Сервер аутентификации Blitz Identity Provider – это программное обеспечение для управления входом пользователей в приложения. Оно позволяет оснастить веб-сайты компании функциями защиты учетных записей пользователей.

Для начала необходимо определиться с основными понятиями, которые будут использоваться при настройке Blitz:

  • IdP (Identity Provider) – система, которая отвечает за аутентификацию пользователей. В данном случае это BlitzProvider. Именно туда перенаправляется пользователь, чтобы подтвердить свою личность.

  • SP (Service Provider) – приложение (в данном случае Infrascope), которое доверяет IdP и принимает от него данные о пользователе.

  • AuthnRequest – запрос на аутентификацию от SP к Idp.

  • SAML Assertion – подтверждение с данными пользователя от Idp к SP.

Далее для корректной работы SAML SSO необходимо на сервере (или на рабочей машине с установленным openssl) сгенерировать пару ключ/сертификат для подписания запросов (SP signing key / certificate):

  1. Перейдите в директорию, где будете хранить ключи: cd /u01/kron/saml-certs/

  2. Сгенерируйте приватный ключ RSA (2048 бит):

    openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out sp-signing.key
  3. Сгенерируйте самоподписанный сертификат X.509:

    openssl req -new -x509 -key sp-signing.key -sha256 -days 3650 -subj "/CN=ngrsoftlab.ru" -out sp-signing.crt
  4. В результате появятся два файла:

    • /u01/kron/saml-certs/sp-signing.key – приватный ключ (хранить только на сервере);

    • /u01/kron/saml-certs/sp-signing.crt – публичный сертификат (для обмена с IdP).

Далее необходимо настроить SAML для Infrascope и BlitzProvider:

  1. Создание приложения в BlitzProvider:

    1. Перейдите в консоль Blitz: https://10.130.6.82:8443/blitz/console

    2. В меню выберите Приложения или сразу: https://10.130.6.82:8443/blitz/console/apps

    3. Нажмите кнопку Добавить приложение.

    4. Заполните поля:

      • Идентификатор (entityID или client_id) – уникальный ID приложения (например, BITZ_82);

      • Название – любое удобное (например, INFRASCOPE);

      • Домен – основной домен приложения (dev2-infr.ngrsoftlab.ru);

      • Стартовая страница приложения – URL входа (например, https://dev2-infr.ngrsoftlab.ru/ui/login).

    5. Сохраните приложение.

  2. Настройка SAML в Infrascope:

    1. Войдите в интерфейс администратора Infrascope: Администрирование > Настройка системы > Интеграции > Конфигурация SAML.

    2. Включите SAML.

    3. Заполните поля:

    4. Проверьте, что включены флаги Включить SAML и Включить вход поставщика услуг.

    5. Сохраните изменения.

      infrascope administration 17

    6. Войдите в интерфейс добавления параметров: Администрирование > Настройки системы > Добавить.

    7. Добавьте saml.blitz.enable = true:

      infrascope administration 18

    8. Зайдите в метаданные BlitzProvider:
      https://10.130.6.82:8443/blitz/saml/profile/Metadata/SAML

    9. Скопируйте значение entityID (для blitz-demo, например, entityID="https://blitz-demo.loc/blitz/saml").

    10. Далее добавьте новый параметр saml.provider.entity.id = https://blitz-demo.loc/blitz/saml:

    infrascope administration 19

    1. Добавьте в параметры пути к ранее созданным файлам:

      • saml.sp.key.path = /u01/kron/saml-certs/sp-signing.key

      • saml.sp.cert.path = /u01/kron/saml-certs/sp-signing.crt

  3. Завершение настройки в BlitzProvider:

    1. Вернитесь в Blitz Console > Приложения и выберите созданное приложение.

    2. Пролистайте вниз до блока Протоколы > SAML и нажмите Сконфигурировать.

    3. В поле Метаданные вставьте содержимое по адресу:
      https://dev2-infr.ngrsoftlab.ru/login-ui/samlCheck?mode=metadata
      Это метаданные SP, которые генерирует Infrascope.

    4. В блоке SAML профиль выберите параметры:

      • Подписывать утверждения (Sign assertions) – always;

      • Шифровать утверждения (Encrypt assertions) – never;

      • Шифровать идентификаторы (Encrypt NameIDs) – never.

    5. Сохраните изменения.

  4. Настройка пользователя:

    1. Зайдите в Blitz Console > Пользователи > Создать учетную запись пользователя (sub: <логин в Infrascope>, Пароль: <любой>, остальные поля опционально).

    2. Далее перейдите в Blitz Console > SAML > Добавить новый SAML атрибут:

      • Свойства SAML-атрибута: Название: <любое, например, logonname> / Источник: sub.

      • Добавьте кодировщик: выберите из 4 вариантов SAML2StringNameId: Название: <любое, например, logonname>.

      infrascope administration 20

    3. Вернитесь в Blitz Console > Приложения и выберите созданное приложение.

    4. Пролистайте вниз до блока Атрибуты пользователя.

    5. Выберите в списке SAML-атрибут с тем названием, которое дали в пункте 2:

    infrascope administration 21

  5. Проверка входа:
    Проверьте, что на странице логина Infrascope появилась кнопка Войти с BlitzProvider.