Microservices ที่อยู่หลังเกตเวย์ API จำเป็นต้องยืนยันโทเค็นการเข้าใช้หรือไม่


10

ฉันมี microservices มากมายที่เข้าถึงได้จากภายนอกผ่านเกตเวย์ API เท่านั้น

API เกตเวย์ของฉันถูกตั้งค่าเป็นทรัพยากร OAuth และตรวจสอบโทเค็น (ตรวจสอบลายเซ็น ฯลฯ ) ก่อนส่งคำขอดาวน์สตรีมไปยังไมโครไซต์หนึ่งรายการหรือมากกว่า

ในขณะที่ microservices ของฉันต้องการโทเค็นเพื่อตรวจสอบขอบเขตและการเรียกร้อง แต่ตอนนี้บริการนี้จำเป็นต้องมีการตรวจสอบโทเค็นด้วยหรือไม่

ดูเหมือนว่าจะเกินกำลังเล็กน้อย แต่ฉันไม่สามารถหาคำแนะนำออนไลน์เกี่ยวกับสถานการณ์นี้ได้

การตรวจสอบโทเค็นที่เกตเวย์ API นั้นดีพอหรือไม่ หรือเป็นวิธีที่ดีที่สุดในการตรวจสอบอีกครั้งในภายหลัง?


1
บริการเดียวกันนี้สามารถเข้าถึงได้เมื่อข้ามเกตเวย์ภายในหรือไม่
เกร็ก Burghardt

I cannot find any advice online about this scenario.เพราะมันขึ้นอยู่กับปัจจัยหลายอย่างที่แตกต่างกันไปในแต่ละโครงการ อาจเป็นการพัฒนาส่วนใหญ่ที่อ้างว่าเป็นสถาปัตยกรรม MS พวกเขาไม่ต้องการมัน ยิ่งกว่านั้นภายในสถาปัตยกรรมดังกล่าวควรมีเซิร์ฟเวอร์รับรองความถูกต้องที่จะทำสิ่งนี้แทนบริการ (และแทนที่จะเป็นเกตเวย์ของหลักสูตร) เป็นเซิร์ฟเวอร์รับรองความถูกต้องที่อนุญาตให้ส่งผ่านหรือไม่
Laiv

คำตอบ:


3

หากการโทรภายในใด ๆ สามารถข้ามเกตเวย์ตรวจสอบโทเค็นในทุกบริการไมโครหรือบังคับให้การโทรทั้งหมด - ภายในและภายนอก - ผ่านเกตเวย์

โดยส่วนตัวแล้วฉันจะไม่เชื่อถือการโทรภายในเช่นกัน ให้พวกเขาผ่านเกตเวย์แม้กระทั่งถึงจุด จำกัด ทราฟฟิกผ่านกฎไฟร์วอลล์ รู้ว่าใครกำลังพูดกับใครและทำไม สิ่งนี้จะช่วย จำกัด พื้นผิวของการโจมตีของคุณหากใครบางคนเคยละเมิดเครือข่ายของคุณ

สิ่งนี้จะนำเสนอจุดล้มเหลวเพียงจุดเดียว แต่ความเสี่ยงนี้สามารถลดลงได้โดยการใช้เซิร์ฟเวอร์การปรับสมดุลโหลดและมีเซิร์ฟเวอร์ที่ล้มเหลวในมือในกรณีที่เกิดปัญหาร้ายแรง

ในทางตรงกันข้ามถ้าทุกบริการตรวจสอบโทเค็นและสิ่งที่เกี่ยวกับกระบวนการตรวจสอบการเปลี่ยนแปลงคุณมีบริการ N + 1 เพื่ออัปเดต


ฉันเคยได้ยินข้อโต้แย้งว่า "คุณไม่สามารถไว้ใจการเข้าชมภายในเช่นกัน" แต่การเปิดเผยแอปพลิเคชันให้กับผู้ใช้จำนวนเล็กน้อย (ค่อนข้าง) บนอินทราเน็ตนั้นเป็นหนทางไกลจากการเปิดเผยแอปพลิเคชันเดียวกันกับอินเทอร์เน็ตสาธารณะ เป็นหลักเหมือนกับความแตกต่างระหว่างแม่เหล็กลำโพงและไซโคลตรอน
Robert Harvey

2
@ RobertHarvey: ฉันคิดว่าเหตุผลที่ฉันได้ยินมาจาก "ไม่ไว้ใจการจราจรภายใน" ไม่ใช่การจราจรที่ถูกต้องตามกฎหมายเพราะมันเป็นเครือข่ายในกรณีที่มีการบุกรุก โดยเฉพาะอย่างยิ่งหากระบบของคุณจัดการข้อมูล PII สุขภาพการเงินหรือข้อมูลที่ละเอียดอ่อน หากมีคนบุกเข้ามาพวกเขาจะถูก จำกัด ในสิ่งที่พวกเขาสามารถพูดคุยได้
เกร็ก Burghardt

หากมีใครบางคนเข้าสู่ระบบของคุณการตรวจสอบโทเค็นจะเป็นปัญหาของคุณน้อยลง ไม่ว่าคุณจะควรตรวจสอบโทเค็นภายในเครือข่ายที่เชื่อถือได้ (และไม่สามารถเข้าถึงได้โดยชาวต่างชาติ) อาจขึ้นอยู่กับประเภทของการตรวจสอบที่เราทำและหากมีการตรวจสอบอีกครั้ง ตัวอย่างเช่นประสิทธิภาพ กลับไปที่เหตุผลของคุณ คุณจะใช้ TLS ในเครือข่ายส่วนตัวหรือไม่ คุณจะเข้ารหัสการสื่อสารระหว่างสององค์ประกอบที่ทำงานถัดจากกันและกันหรือไม่? คำตอบที่มีแนวโน้มที่จะขึ้นอยู่กับ
Laiv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.