Перейти к основному содержанию

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.

Как это запустить?

  1. Убедитесь, что у вас установлена среда программирования на языке Go.

  2. Перейдите по адресу casdoor/elk-auth-casdoor и получите код.

  3. Зарегистрируйте ваш прокси как приложение в Casdoor.

  4. Измените конфигурацию.

    Файл конфигурации находится в "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
  5. Посетите http://localhost:8080 (в приведенном выше примере) и войдите в систему, следуя указаниям по перенаправлению. Затем вы должны увидеть Kibana, защищенную и аутентифицированную через Casdoor.

  6. Если все работает хорошо, не забудьте заблокировать внешний доступ к оригинальному порту Kibana, настроив ваш брандмауэр (или другим методом). Это гарантирует, что посторонние смогут получить доступ к Kibana только через этот обратный прокси.