Перейти до основного вмісту

ELK

Огляд casdoor/elk-auth-casdoor

Одним з найбільших недоліків ELK (Elasticsearch, Logstash та Kibana) є те, що спочатку ці продукти не мали механізму аутентифікації. В результаті будь-хто, у кого є URL Kibana або Elasticsearch, міг отримати доступ до інформаційної панелі Kibana. Пізніше ELK інтегрував вбудовану систему аутентифікації під назвою "Xpack". Однак його розширені функції (такі як OAuth, OIDC, LDAP, SAML) не є безкоштовними. Тільки проста аутентифікація з використанням набору облікових записів та паролів доступна безкоштовно, що є досить незручним. Цей підхід не дозволяє нам надати унікальний обліковий запис кожному в корпорації.

Щоб вирішити цю проблему, ми розробили рішення для аутентифікації elk на основі Casdoor. Це рішення є безкоштовним, відкритим кодом, підтримується постійно та підтримує широкий спектр розширених функцій. Casdoor - це централізована платформа аутентифікації/Single-Sign-On на основі 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 тільки через цей зворотній проксі.