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
วิธีการรันมัน?
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งสภาพแวดล้อมภาษาโปรแกรม Go
ไปที่ casdoor/elk-auth-casdoor และดึงโค้ด
ลงทะเบียน proxy ของคุณเป็นแอปพลิเคชันกับ Casdoor
ปรับเปลี่ยนการตั้งค่า
ไฟล์การตั้งค่าตั้งอยู่ที่ "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เยี่ยมชม http://localhost:8080 (ตามตัวอย่างข้างต้น) และเข้าสู่ระบบตามคำแนะนำการเปลี่ยนเส้นทาง คุณควรจะเห็น Kibana ที่ได้รับการป้องกันและตรวจสอบสิทธิ์โดย Casdoor
หากทุกอย่างทำงานได้ดี อย่าลืมบล็อกการเข้าถึงจากภายนอกไปยังพอร์ต Kibana เดิมโดยการตั้งค่าไฟร์วอลล์ของคุณ (หรือวิธีอื่น) นี่จะรับประกันว่าคนภายนอกสามารถเข้าถึง Kibana ผ่าน reverse proxy นี้เท่านั้น