ELK
Обзор casdoor/elk-auth-casdoor
Одним из самых больших недостатков ELK (Elasticsearch, Logstash и Kibana) является то, что изначально эти продукты не имели механизма аутентификации. В результате любой человек, имеющий URL Kibana или Elasticsearch, мог получить доступ к панели управления Kibana. Позже ELK интегрировал встроенную систему аутентификации под названием "Xpack". Однако его продвинутые функции (такие как OAuth, OIDC, LDAP, SAML) не являются бесплатными. Только простая аутентификация с использованием набора учетных записей и паролей доступна бесплатно, что довольно неудобно. Такой подход не позволяет нам предоставить уникальную учетную запись каждому в корпорации.
Чтобы решить эту проблему, мы разработали решение для аутентификации в ELK на основе Casdoor. Это решение бесплатное, с открытым исходным кодом, находится в постоянном обслуживании и поддерживает широкий спектр продвинутых функций. Casdoor - это централизованная платформа аутентификации/единого входа на основе OAuth 2.0/OIDC. Casdoor/elk-auth-casdoor служит обратным прокси, предназначенным для перехвата всего потока HTTP-данных в стек ELK/Kibana. Он направляет пользователей, которые не вошли в систему, на страницу входа. Этот обратный прокси работает прозрачно, пока пользователь вошел в систему.
Если пользователь не был правильно аутентифицирован, запрос будет временно кэширован, и пользователь будет перенаправлен на страницу входа Casdoor. После входа пользователя через Casdoor кэшированный запрос будет восстановлен и отправлен в Kibana. Таким образом, если перехватывается POST-запрос (или любой другой тип запроса, кроме GET), пользователю не нужно будет заново заполнять форму и отправлять запрос. Обратный прокси запомнит это за вас.
Репозиторий casdoor/elk-auth-casdoor находится по адресу https://github.com/casdoor/elk-auth-casdoor.
Как это запустить?
Убедитесь, что у вас установлена среда программирования на языке Go.
Перейдите по адресу casdoor/elk-auth-casdoor и получите код.
Зарегистрируйте ваш прокси как приложение в Casdoor.
Измените конфигурацию.
Файл конфигурации находится в "conf/app.conf". Вот пример, который вы должны настроить в соответствии с вашими конкретными потребностями.
appname = .
# port on which the reverse proxy shall be run
httpport = 8080
runmode = dev
# EDIT IT IF NECESSARY. The URL of this reverse proxy.
pluginEndpoint = "http://localhost:8080"
# EDIT IT IF NECESSARY. The URL of the Kibana.
targetEndpoint = "http://localhost:5601"
# EDIT IT. The URL of Casdoor.
casdoorEndpoint = "http://localhost:8000"
# EDIT IT. The clientID of your reverse proxy in Casdoor.
clientID = ceb6eb261ab20174548d
# EDIT IT. The clientSecret of your reverse proxy in Casdoor.
clientSecret = af928f0ef1abc1b1195ca58e0e609e9001e134f4
# EDIT IT. The application name of your reverse proxy in Casdoor.
appName = ELKProxy
# EDIT IT. The organization to which your reverse proxy belongs in Casdoor.
organization = built-inПосетите http://localhost:8080 (в приведенном выше примере) и войдите в систему, следуя указаниям по перенаправлению. Затем вы должны увидеть Kibana, защищенную и аутентифицированную через Casdoor.
Если все работает хорошо, не забудьте заблокировать внешний доступ к оригинальному порту Kibana, настроив ваш брандмауэр (или другим методом). Это гарантирует, что посторонние смогут получить доступ к Kibana только через этот обратный прокси.