التخطي إلى المحتوى الرئيسي

ELK

نظرة عامة على casdoor/elk-auth-casdoor

أحد أكبر العيوب في ELK (Elasticsearch, Logstash, و Kibana) هو أن هذه المنتجات لم تكن تحتوي على آلية مصادقة في الأصل. نتيجة لذلك، كان بإمكان أي شخص يمتلك رابط 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 عبر هذا الوكيل العكسي.