ข้ามไปยังเนื้อหาหลัก

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 ทำหน้าที่เป็น reverse proxy ที่ออกแบบมาเพื่อดักจับข้อมูล HTTP ทั้งหมดที่ไหลเข้าสู่ ELK/Kibana stack มันแนะนำผู้ใช้ที่ยังไม่ได้เข้าสู่ระบบให้เข้าสู่ระบบ Reverse proxy นี้ทำงานอย่างโปร่งใสตราบใดที่ผู้ใช้ได้เข้าสู่ระบบแล้ว

หากผู้ใช้ยังไม่ได้รับการตรวจสอบสิทธิ์อย่างถูกต้อง คำขอจะถูกเก็บไว้ชั่วคราว และผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบของ Casdoor เมื่อผู้ใช้เข้าสู่ระบบผ่าน Casdoor คำขอที่เก็บไว้จะถูกกู้คืนและส่งไปยัง Kibana ดังนั้น หากคำขอ POST (หรือประเภทคำขออื่นๆ ที่ไม่ใช่ GET) ถูกดักจับ ผู้ใช้จะไม่ต้องกรอกฟอร์มและส่งคำขอใหม่ Reverse proxy จะจำไว้ให้คุณ

ที่เก็บ casdoor/elk-auth-casdoor ตั้งอยู่ที่ https://github.com/casdoor/elk-auth-casdoor

วิธีการรันมัน?

  1. ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งสภาพแวดล้อมภาษาโปรแกรม Go

  2. ไปที่ casdoor/elk-auth-casdoor และดึงโค้ด

  3. ลงทะเบียน proxy ของคุณเป็นแอปพลิเคชันกับ 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 ผ่าน reverse proxy นี้เท่านั้น