Сервис аутентификации | On-Premise | 2GIS Documentation
On-Premise

Установка сервиса аутентификации

Важное примечание:

Все пароли и ключи в этом разделе приведены в иллюстративных целях.

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

  1. По возможности познакомьтесь с:

  2. Убедитесь, что выполнены необходимые предварительные шаги:

    1. Подготовка к установке
    2. Получение артефактов установки
  3. Соберите необходимые данные, заданные или полученные на предыдущих шагах:

    Объект Значение Как получить значение
    Эндпоинт зеркала реестра Docker в приватной сети docker.storage.example.local:5000 См. Получение артефактов установки
    Секрет Kubernetes для доступа к эндпоинту зеркала реестра Docker onpremise-registry-creds См. Получение артефактов установки
  4. Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чарте для установки сервиса. Подробнее о том, как это сделать, смотрите в документе Системные требования.

    Примечание

    Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии On-Premise (см. Релизы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и введите номер нужной версии комплекса (например, 1.18.0) в переключателе тегов слева.

  5. Определите доменные имена для сервиса аутентификации.

    Пример:

    • Веб-интерфейс администратора: keycloak.example.com

Разместите кластер PostgreSQL с доменным именем keyсloak-postgresql.storage.example.local в приватной сети. В этом руководстве предполагается, что кластер работает на стандартном порту 5432.

Настройте кластер PostgreSQL для использования в качестве хранилища:

  1. Подключитесь к кластеру от имени суперпользователя (обычно это postgres).

  2. Создайте пользователя базы данных, который будет использоваться для сервиса. Установите пароль для него.

    create user dbuser_keycloak password '650D7AmZjSR1dkNa';
    
  3. Создайте базу данных, принадлежащую этому пользователю.

    create database onpremise_keycloak owner dbuser_keycloak;
    
  1. Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.

    Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.

    values-keycloak.yaml
    dgctlDockerRegistry: docker.storage.example.local:5000
    
    imagePullSecrets:
        - name: onpremise-registry-creds
    
    imagePullPolicy: IfNotPresent
    
    replicaCount: 2
    
    postgres:
        host: keycloak-postgresql.storage.example.local
        port: 5432
        name: onpremise_keycloak
        username: dbuser_keycloak
        password: TZ3CYljrlNDrnP5fIpjoWPBCzejQ5qJEUNr9WiplRHyNksdhN1GsVrS90d9HQhhp
    
    auth:
        adminUser: keycloak
        adminPassword: GsVrS90d9HQhhp
    
    defaultUser:
        enabled: true
        name: test
        email: test@test.com
        password: JEUNr9WiplRH
    
    ingress:
        enabled: true
        className: nginx
        annotations:
            nginx.ingress.kubernetes.io/affinity: cookie
            nginx.ingress.kubernetes.io/session-cookie-expires: '86400'
            nginx.ingress.kubernetes.io/session-cookie-max-age: '86400'
            nginx.ingress.kubernetes.io/session-cookie-name: keycloak
            nginx.ingress.kubernetes.io/proxy-buffer-size: '128k'
        hosts:
            - host: keycloak.example.com
              paths:
                  - path: /
                    pathType: Prefix
        tls:
            - hosts:
                  - keycloak.example.com
              secretName: secret.tls
    

    Где:

    • dgctlDockerRegistry: эндпоинт вашего реестра Docker, в котором находятся образы сервисов программного комплекса On-Premise.

    • imagePullSecrets: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.

      • name: имя секрета.
    • imagePullPolicy: порядок загрузки образа из репозитория. IfNotPresent (рекомендовано) – загрузка выполняется, если нет актуального образа.

    • replicaCount: количество подов сервиса. Рекомедуемое количество – 2.

    • postgres: настройки доступа к серверу PostgreSQL.

      • host: имя хоста или IP-адрес сервера.
      • port: порт, на котором слушает сервер.
      • name: имя базы данных
      • username и password: реквизиты для доступа к базе данных, указанной в параметре name. Пользователь должен быть либо владельцем этой базы данных, либо суперпользователем.
    • auth: реквизиты суперпользователя для входа в административный интерфейс Keycloak.

      • adminUser: логин.
      • adminPassword: пароль.
    • defaultUser: данные для создания тестового пользователя. Вы можете создавать его не на текущем этапе, а позже, через интерфейс уже развернутой системы – см. инструкцию "Регистрация пользователя". В данном случае заполнять эти настройки не обязательно.

      • enabled: признак наличия тестового пользователя.
      • name: имя.
      • email: email.
      • password: пароль.
    • ingress: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. URL, указанный в параметре ingress.hosts.host должен быть доступен извне вашего кластера Kubernetes, чтобы пользователи из приватного сегмента сети могли получить доступ к ресурсам по этому URL. Путь для хоста должен указывать на корневую директорию (/).

      • annotations: настройки Cookies: имя, время жизни. Данный блок настроек нужен для поддержки "липких сессий": если подов два и больше, то они сами находят друг друга и создают кластер. Если под только один, то этот блок настроек не требуется.

        • proxy-buffer-size: размер буфера прокси. Должен быть задан для предотвращения ошибок 502 при попытке логина.
      • tls: настройки HTTPS.

        • ingress.tls.hosts.secretName – сертификат HTTPS, хранящийся в Kubernetes в формате base64.
  2. Установите сервис с помощью Helm, используя подготовленный конфигурационный файл values-keycloak.yaml:

    helm upgrade --install --version=1.21.0 --atomic --values ./values-keycloak.yaml keycloak 2gis-on-premise/keycloak
    

Чтобы проверить работоспособность сервиса аутентификации:

  1. Откройте в браузере веб-интерфейс для администрирования сервиса (используйте значение настройки hosts.host из конфигурационного файла values-keycloak.yaml):

    keycloak.example.com
    
  2. Войдите в веб-интерфейс Keycloak, используя учетные данные пользователя с правами администратора (auth.adminUser и auth.adminUser).

Что дальше?