Passer au contenu principal

ELK

Présentation de casdoor/elk-auth-casdoor

L'un des plus grands inconvénients d'ELK (Elasticsearch, Logstash et Kibana) est qu'à l'origine, ces produits n'avaient aucun mécanisme d'authentification. En conséquence, toute personne disposant de l'URL de Kibana ou Elasticsearch pouvait accéder au tableau de bord Kibana. Plus tard, ELK a intégré un système d'authentification intégré appelé "Xpack". Cependant, ses fonctions avancées (telles que OAuth, OIDC, LDAP, SAML) ne sont pas gratuites. Seule l'authentification simple, utilisant un ensemble de comptes et de mots de passe, est disponible gratuitement, ce qui est assez gênant. Cette approche ne nous permet pas de fournir un compte unique pour chacun dans une entreprise.

Pour résoudre ce problème, nous avons développé une solution d'authentification elk basée sur Casdoor. Cette solution est gratuite, open-source, en maintenance continue et prend en charge un large éventail de fonctionnalités avancées. Casdoor est une plateforme d'authentification centralisée/Single-Sign-On basée sur OAuth 2.0/OIDC. Casdoor/elk-auth-casdoor sert de proxy inverse conçu pour intercepter tout le flux de données HTTP vers la pile ELK/Kibana. Il guide les utilisateurs qui ne se sont pas connectés à se connecter. Ce proxy inverse fonctionne de manière transparente tant que l'utilisateur est connecté.

Si un utilisateur n'a pas été correctement authentifié, la requête sera temporairement mise en cache et l'utilisateur sera redirigé vers la page de connexion Casdoor. Une fois que l'utilisateur se connecte via Casdoor, la requête mise en cache sera restaurée et envoyée à Kibana. Par conséquent, si une requête POST (ou tout autre type de requête autre que GET) est interceptée, l'utilisateur n'aura pas besoin de remplir à nouveau le formulaire et de renvoyer la requête. Le proxy inverse se souviendra pour vous.

Le dépôt casdoor/elk-auth-casdoor est situé à https://github.com/casdoor/elk-auth-casdoor.

Comment l'exécuter ?

  1. Assurez-vous que vous avez l'environnement du langage de programmation Go installé.

  2. Allez sur casdoor/elk-auth-casdoor et récupérez le code.

  3. Enregistrez votre proxy en tant qu'application auprès de Casdoor.

  4. Modifiez la configuration.

    Le fichier de configuration se trouve à "conf/app.conf". Voici un exemple, que vous devriez personnaliser en fonction de vos besoins spécifiques.

    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. Visitez http://localhost:8080 (dans l'exemple ci-dessus) et connectez-vous en suivant les instructions de redirection. Vous devriez alors voir Kibana protégé et authentifié par Casdoor.

  6. Si tout fonctionne bien, n'oubliez pas de bloquer l'accès externe au port Kibana original en configurant votre pare-feu (ou une autre méthode). Cela garantit que les étrangers ne peuvent accéder à Kibana que via ce proxy inverse.