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

с Audience Token Mapper audience:

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"
OAUTH2_PROXY_TLS_CERT_FILE и OAUTH2_PROXY_TLS_KEY_FILE задают пути к TLS-сертификату и закрытому ключу в формате
Privacy-Enhanced Mail (PEM) для поддержки TLS.
Чтобы избежать предупреждений системы безопасности в веб-браузерах, подключающихся к Kibana через OAuth2 Proxy, замените
сертификат, предоставляемый в /etc/certs/cert.pem docker-образа:

сертификатом, у которого 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). Поэтому, если требуется
настроить только один, всё равно необходимо предоставить оба шаблона.
Примечание : Замените \
https://<docker-host>:8643. После принятия и продолжения работы с предупреждениями системы безопасности о
сертификате должно произойти перенаправление на страницу входа Keycloak. 