Saltar al contenido principal

ELK

Descripción general de casdoor/elk-auth-casdoor

Uno de los mayores inconvenientes de ELK (Elasticsearch, Logstash y Kibana) es que originalmente estos productos no tenían un mecanismo de autenticación. Como resultado, cualquiera con la URL de Kibana o Elasticsearch podía acceder al tablero de Kibana. Más tarde, ELK integró un sistema de autenticación incorporado llamado "Xpack". Sin embargo, sus funciones avanzadas (como OAuth, OIDC, LDAP, SAML) no son gratuitas. Solo la autenticación simple, utilizando un conjunto de cuentas y contraseñas, está disponible de forma gratuita, lo cual es bastante inconveniente. Este enfoque no nos permite proporcionar una cuenta única para todos en una corporación.

Para abordar este problema, hemos desarrollado una solución de autenticación de elk basada en Casdoor. Esta solución es gratuita, de código abierto, está en mantenimiento continuo y admite una amplia gama de funciones avanzadas. Casdoor es una plataforma centralizada de autenticación/Inicio de Sesión Único basada en OAuth 2.0/OIDC. Casdoor/elk-auth-casdoor actúa como un proxy inverso diseñado para interceptar todo el flujo de datos HTTP hacia la pila ELK/Kibana. Guía a los usuarios que no han iniciado sesión para que lo hagan. Este proxy inverso opera de manera transparente siempre que el usuario haya iniciado sesión.

Si un usuario no ha sido autenticado correctamente, la solicitud será almacenada temporalmente y el usuario será redirigido a la página de inicio de sesión de Casdoor. Una vez que el usuario inicia sesión a través de Casdoor, la solicitud almacenada se restaurará y se enviará a Kibana. Por lo tanto, si se intercepta una solicitud POST (o cualquier otro tipo de solicitud además de GET), el usuario no necesitará volver a llenar el formulario y reenviar la solicitud. El proxy inverso lo recordará por usted.

El repositorio casdoor/elk-auth-casdoor se encuentra en https://github.com/casdoor/elk-auth-casdoor.

¿Cómo ejecutarlo?

  1. Asegúrese de tener instalado el entorno del lenguaje de programación Go.

  2. Vaya a casdoor/elk-auth-casdoor y obtenga el código.

  3. Registre su proxy como una aplicación con Casdoor.

  4. Modifique la configuración.

    El archivo de configuración se encuentra en "conf/app.conf". Aquí hay un ejemplo, que debe personalizar según sus necesidades 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 (en el ejemplo anterior) e inicie sesión siguiendo la guía de redirección. Entonces debería ver Kibana protegido y autenticado por Casdoor.

  6. Si todo funciona bien, no olvide bloquear el acceso externo al puerto original de Kibana configurando su firewall (u otro método). Esto asegura que los forasteros solo puedan acceder a Kibana a través de este proxy inverso.