← Навигация по документации

Содержание - Обзор - Настройка - Тесты и проверка

Обзор

В Запуск защищённых сервисов Архива и Elastic Stack на одном хосте описана защита доступа к Kibana с помощью OAuth2 Proxy, который разрешает доступ к audit message и системным журналам только авторизованным пользователям в рамках полного стека. Приведённые ниже конфигурации освещают только специфичную для OAuth2 Proxy часть для независимого тестирования.

Настройка

Oauth2-proxy можно настроить через параметры командной строки, переменные окружения или конфигурационный файл (в порядке убывания приоритета: параметры командной строки переопределяют переменные окружения, а переменные окружения переопределяют параметры конфигурационного файла).

Keycloak

с Audience Token Mapper audience:

![](/wp-content/uploads/dcm4chee-ru/images/images/keycloak-client-kibana-mapper.png)

OAuth2 Proxy

Настройка прокси для защищённого http

version: "3"
services:
  kibana-oauth:
    image: dcm4che/oauth2-proxy:7.5.1
    ports:
      - "8643:8643"
    restart: on-failure
    environment:
      OAUTH2_PROXY_HTTPS_ADDRESS: 0.0.0.0:8643
      OAUTH2_PROXY_PROVIDER: keycloak-oidc
      OAUTH2_PROXY_SKIP_PROVIDER_BUTTON: "true"
      OAUTH2_PROXY_UPSTREAMS: "http://kibana:5601"
      OAUTH2_PROXY_OIDC_ISSUER_URL: "https://<docker-host>:8843/realms/dcm4che"
      OAUTH2_PROXY_REDIRECT_URL: "https://<docker-host>:8643/oauth2/callback"
      OAUTH2_PROXY_ALLOWED_ROLES: auditlog
      OAUTH2_PROXY_CLIENT_ID: kibana
      OAUTH2_PROXY_CLIENT_SECRET: changeit
      OAUTH2_PROXY_EMAIL_DOMAINS: "*"
      OAUTH2_PROXY_OIDC_EMAIL_CLAIM: "preferred_username"
      OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL: "true"
      OAUTH2_PROXY_COOKIE_SECRET: T0F1dGhLaWJhbmFUZXN0cw==
      OAUTH2_PROXY_SSL_INSECURE_SKIP_VERIFY: "true"
      OAUTH2_PROXY_TLS_CERT_FILE: /etc/certs/cert.pem
      OAUTH2_PROXY_TLS_KEY_FILE: /etc/certs/key.pem
      OAUTH2_PROXY_CUSTOM_TEMPLATES_DIR: /templates
    depends_on:
      - keycloak

Примечание : - OAUTH2_PROXY_OIDC_ISSUER_URL: "https://<docker-host>:8843/realms/dcm4che" применяется только для Keycloak v18.0+ и если используется значение по умолчанию KC_HTTP_RELATIVE_PATH. - Если используются более ранние версии Keycloak либо если для Keycloak v18.0+ KC_HTTP_RELATIVE_PATH установлен в /auth, то OAUTH2_PROXY_OIDC_ISSUER_URL: "https://<docker-host>:8843/auth/realms/dcm4che"

сертификатом, у которого Common Name и/или Subject Alt Name совпадает с именем хоста и который подписан доверенным удостоверяющим центром; смонтируйте PEM-файлы с сертификатом и соответствующим закрытым ключом и измените OAUTH2_PROXY_TLS_CERT_FILE и OAUTH2_PROXY_TLS_KEY_FILE так, чтобы они указывали пути внутри контейнера. - OAUTH2_PROXY_PROVIDER задаёт OAuth-провайдера. - OAUTH2_PROXY_CLIENT_ID=kibana — задаёт Client ID для аутентификации на сервере Keycloak, - OAUTH2_PROXY_CLIENT_SECRET=<kibana-client-secret> — задаёт Client Secret для аутентификации на сервере аутентификации Keycloak для клиента kibana типа Confidential. Значение должно совпадать с тем, что использовалось при запуске контейнера keycloak. - OAUTH2_PROXY_UPSTREAMS задаёт http-URL Kibana http://kibana:5601 в качестве upstream-конечной точки. - OAUTH2_PROXY_REDIRECT_URL задаёт URL переадресации для callback-URL сервера аутентификации Keycloak. - OAUTH2_PROXY_OIDC_ISSUER_URL задаёт URL издателя OpenID Connect, где порт (8843) соответствует KC_HTTPS_PORT, используемому при запуске контейнера Keycloak - OAUTH2_PROXY_ALLOWED_ROLES=auditlog — (keycloak-oidc) ограничивает вход членами этих ролей (можно указать несколько раз) - OAUTH2_PROXY_EMAIL_DOMAINS в значении * указывает аутентифицировать любой email. - OAUTH2_PROXY_OIDC_EMAIL_CLAIM="preferred_username" — какой claim OIDC содержит email пользователя (по умолчанию "email") - OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL="true" указывает не отклонять процесс, если email-адрес в id_token не подтверждён - OAUTH2_PROXY_COOKIE_SECRET задаёт базовую строку для защищённых cookie (опционально в кодировке base64). - OAUTH2_PROXY_SSL_INSECURE_SKIP_VERIFY в значении true пропускает проверку сертификатов, предъявляемых при использовании HTTPS-провайдеров. В качестве альтернативы можно задать OAUTH2_PROXY_PROVIDER_CA_FILES: /etc/certs/cacert.pem, если сертификат должен проверяться с помощью уполномоченного CA. - OAUTH2_PROXY_SKIP_PROVIDER_BUTTON является необязательным. Если установлено в true, пропускается страница входа с кнопкой Sign-on with Keycloak и сразу отображается страница входа Keycloak. - OAUTH2_PROXY_CUSTOM_TEMPLATES_DIR задаёт расположение каталога пользовательских шаблонов, содержащего настроенную страницу ошибки запрета (forbidden), показываемую неавторизованным пользователям при аутентификации. Примечание : в OAuth2 proxy пока нет механизма для настройки только одного из шаблонов (т. е. sign_in или error). Поэтому, если требуется настроить только один, всё равно необходимо предоставить оба шаблона.

Примечание : Замените \ на имя хоста docker-хоста, которое должно разрешаться вашим DNS-сервером.

Проверка