Настройка SSO#

В Astra Automation аутентификация пользователей централизована и выполняется через шлюз (Platform Gateway), который выступает единой точкой входа в платформу. Все остальные компоненты используют результаты аутентификации, выполненной через шлюз. Настройку SSO необходимо выполнять через графическую консоль после установки платформы.

Внимание

Инструкция протестирована с Keycloak версии 26.5.1. В других версиях Keycloak отдельные параметры и поведение интерфейса (в частности, настройки SAML-подписи и шифрования) могут отличаться.

Предварительные условия#

Перед началом настройки SSO необходимо обеспечить выполнение следующих условий:

  • Развернута и доступна платформа Astra Automation.

  • Развернут и доступен сервис Keycloak. Инструкции по развертыванию см. в официальной документации.

  • Имеется доступ к учетной записи администратора Keycloak.

  • Определен Realm Keycloak, используемый для аутентификации пользователей Astra Automation.

  • Подготовлены публичный сертификат (saml-encryption.crt) и приватный ключ (saml-encryption.key) шифрования для SAML-аутентификации.

  • Подготовлены публичный сертификат (saml-signing.crt) и приватный ключ (saml-signing.key) для подписи.

Настройка Keycloak#

Для подготовки сервиса Keycloak к использованию выполните следующие действия:

  1. Авторизуйтесь в графической консоли Keycloak с привилегиями администратора.

  2. Выберите Realm, в рамках которого будет выполняться аутентификация пользователей.

  3. Подготовьте ключи для SAML-аутентификации:

    1. Перейдите в меню Realm Settings ‣ Keys.

    2. Создайте провайдера типа rsa либо используйте существующий.

    3. Загрузите для созданного провайдера публичный сертификат (saml-encryption.crt) и приватный ключ (saml-encryption.key) поставщика услуг SAML.

    4. Установите высокий приоритет ключа, например, 1000.

  4. Настройте client scope для передачи ролей пользователей:

    1. Перейдите в меню Client scopes.

    2. Откройте client scope role_list.

    3. Перейдите на вкладку Mappers.

    4. Откройте mapper role list.

    5. Включите параметр Single Role Attribute.

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

  5. Убедитесь, что в Keycloak присутствуют учетные записи пользователей, используемые для аутентификации.

    Примечание

    В корпоративной инфраструктуре учетные записи пользователей, как правило, поступают в Keycloak из внешнего источника идентификации (LDAP/Active Directory).

    При необходимости для тестирования SSO можно создать учетную запись вручную:

    1. Перейдите в Users ‣ Create user.

    2. Заполните информацию о создаваемом пользователе:

      • Username – название учетной записи пользователя;

      • Email – электронная почта пользователя;

      • Email verified – переведите переключатель в состояние Yes, чтобы включить проверку формата электронной почты;

      • First name – имя пользователя;

      • Last name – фамилия пользователя.

    3. Нажмите кнопку Create.

    4. Добавьте пароль для учетной записи пользователя:

      1. Перейдите в Users ‣ <New_user> ‣ Credentials ‣ Set password.

      2. Введите пароль и подтвердите его.

      3. Переведите переключатель Temporary в состояние Off.

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

  6. Загрузите и откройте в текстовом редакторе файл keycloak_gateway_client.json на своей рабочей станции.

  7. Введите соответствующие данные вместо полей-заменителей. Здесь:

    • <gateway_fqdn> – доменное имя шлюза;

    • <saml_signing_certificate> – публичный сертификат поставщика услуг SAML, значение которого должно соответствовать содержимому файла saml-signing.crt;

    • <saml_signing_private_key> – приватный ключ поставщика услуг SAML, значение которого должно соответствовать содержимому файла saml-signing.key;

    • <saml_encryption_certificate> – публичный сертификат поставщика услуг SAML, значение которого должно соответствовать содержимому файла saml-encryption.crt;

    • <saml_encryption_private_key> – приватный ключ поставщика услуг SAML, значение которого должно соответствовать содержимому файла saml-encryption.key.

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

  9. Импортируйте загруженный файл в Keycloak:

    1. В графической консоли перейдите в Clients ‣ Import client.

    2. В поле Resource file нажмите кнопку Browse….

    3. Выберите измененный файл keycloak_gateway_client.json.

    4. Нажмите кнопку Save.

  10. Перейдите в настройки импортированного клиента по пути Clients ‣ <Gateway_IP>.

  11. В поле Encryption algorithm выставите значение AES_256_CBC.

  12. В поле Key transport algorithm выставите значение RSA1_5.

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

Настройка шлюза#

Для настройки SSO в Astra Automation, выполните следующие действия:

  1. Откройте графическую консоль Astra Automation с привилегиями администратора.

  2. На панели навигации выберите Управление доступом ‣ Методы аутентификации (Access Management ‣ Authentication Methods).

  3. В окне Методы аутентификации (Authentication Methods) нажмите кнопку Создать метод аутентификации (Create authentication).

  4. В открывшемся окне выберите тип метода аутентификации SAML в поле Тип аутентификации (Authentication type) и нажмите кнопку Далее (Next).

  5. Задайте следующие параметры:

    • Идентификатор сущности поставщика услуг SAML (SP) (SAML Service Provider Entity ID) – URL шлюза, например, https://10.0.0.10/.

    • Публичный сертификат поставщика услуг SAML (SAML Service Provider Public Certificate) и Публичный сертификат поставщика удостоверений (IdP Public Cert) – содержимое файла saml-encryption.crt.

    • URL входа поставщика удостоверений (IdP Login URL) – URL сервиса SSO в Keycloak, например, http://<keycloak_fqdn>/realms/master/protocol/saml.

    • Идентификатор объекта (Entity ID) – URL нужного realm из keycloak, например, http://<keycloak_fqdn>/realms/master.

    • Атрибуты пользователя (должны соответствовать mapping’ам клиента в Keycloak (Clients ‣ <Gateway_IP> ‣ Client scopes ‣ <Gateway_IP>-dedicated)):

      • Электронная почта пользователя (User Email) – email;

      • Имя пользователя (Username) – username;

      • Фамилия пользователя (User Last Name) – last_name;

      • Имя пользователя (User First Name) – first_name;

      • Постоянный ID пользователя (User Permanent ID) – email.

    • URL сервиса потребления утверждений SAML (ACS) (SAML Assertion Consumer Service (ACS) URL) – при первичном сохранении оставьте пустым. После сохранения платформа автоматически сгенерирует ACS URL.

    • Закрытый ключ поставщика услуг SAML (SAML Service Provider Private Key) – содержимое файла saml-encryption.key.

    • Информация об организации поставщика услуг SAML (SAML Service Provider Organization Info).

      Пример заполнения:

      {
         "en-US": {
               "url": "https://example.com/",
               "name": "example",
               "displayname": "example"
         }
      }
      
    • Технический контакт поставщика услуг SAML (SAML Service Provider Technical Contact).

      Пример заполнения:

      {
         "givenName": "admin",
         "emailAddress": "admin@example.com"
      }
      
    • Контакт службы поддержки поставщика услуг SAML (SAML Service Provider Support Contact).

      Пример заполнения:

      {
         "givenName": "admin",
         "emailAddress": "admin@example.com"
      }
      
  6. Включите опцию Включенный (Enabled).

  7. Завершите создание следуя инструкции по созданию метода аутентификации.

  8. После сохранения изменений скопируйте сгенерированный значение поля URL сервиса потребления утверждений SAML (ACS) (SAML Assertion Consumer Service (ACS) URL).

  9. Зайдите в Keycloak и перейдите по пути Clients ‣ <Gateway_IP>.

  10. Вставьте скопированное значение в поле Valid redirect URIs.

Проверка работоспособности SSO#

Для проверки работоспособности выполните следующие действия:

  1. Выполните выход из учетной записи администратора Keycloak.

  2. Откройте страницу входа в графическую консоль Astra Automation.

  3. Нажмите кнопку SSO.

  4. Выполните вход с помощью обычного пользователя Keycloak.