Pular para o conteúdo principal

ELK

Visão geral de casdoor/elk-auth-casdoor

Um dos maiores inconvenientes do ELK (Elasticsearch, Logstash e Kibana) é que originalmente esses produtos não tinham mecanismo de autenticação. Como resultado, qualquer pessoa com a URL do Kibana ou Elasticsearch poderia acessar o painel do Kibana. Posteriormente, o ELK integrou um sistema de autenticação embutido chamado "Xpack". No entanto, suas funções avançadas (como OAuth, OIDC, LDAP, SAML) não são gratuitas. Apenas a autenticação simples, usando um conjunto de contas e senhas, está disponível gratuitamente, o que é bastante inconveniente. Essa abordagem não nos permite fornecer uma conta única para todos em uma corporação.

Para resolver essa questão, desenvolvemos uma solução de autenticação elk baseada no Casdoor. Esta solução é gratuita, de código aberto, em manutenção contínua e suporta uma ampla gama de recursos avançados. Casdoor é uma plataforma centralizada de autenticação/Single-Sign-On baseada em OAuth 2.0/OIDC. Casdoor/elk-auth-casdoor atua como um proxy reverso projetado para interceptar todo o fluxo de dados HTTP em direção à pilha ELK/Kibana. Ele orienta os usuários que não fizeram login a se logarem. Este proxy reverso opera de forma transparente desde que o usuário tenha feito login.

Se um usuário não foi autenticado corretamente, a solicitação será temporariamente armazenada em cache e o usuário será redirecionado para a página de login do Casdoor. Uma vez que o usuário faça login através do Casdoor, a solicitação em cache será restaurada e enviada para o Kibana. Portanto, se uma solicitação POST (ou qualquer outro tipo de solicitação além de GET) for interceptada, o usuário não precisará preencher o formulário novamente e reenviar a solicitação. O proxy reverso vai se lembrar disso para você.

O repositório casdoor/elk-auth-casdoor está localizado em https://github.com/casdoor/elk-auth-casdoor.

Como executá-lo?

  1. Certifique-se de que você tenha o ambiente de linguagem de programação Go instalado.

  2. Vá para casdoor/elk-auth-casdoor e obtenha o código.

  3. Registre seu proxy como um aplicativo com o Casdoor.

  4. Modifique a configuração.

    O arquivo de configuração está localizado em "conf/app.conf". Aqui está um exemplo, que você deve personalizar com base em suas necessidades específicas.

    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. Visite http://localhost:8080 (no exemplo acima) e faça login seguindo as orientações de redirecionamento. Você deve então ver o Kibana protegido e autenticado pelo Casdoor.

  6. Se tudo funcionar bem, não se esqueça de bloquear o acesso externo à porta original do Kibana configurando seu firewall (ou outro método). Isso garante que pessoas de fora só possam acessar o Kibana através deste proxy reverso.