ฉันต้องการใช้การเข้าถึงตามบทบาทบน API ของฉันที่ระดับเมธอด เช่น. ในการเรียกใช้เมธอดที่กำหนดบน API ผู้เรียกต้องมีบทบาท 'myapp.api.write' ฉันหาวิธีดำเนินการนี้ไม่ได้เมื่อบัญชีบริการเรียก API ของฉัน แต่มีวิธีแก้ปัญหาเมื่อผู้ใช้ปลายทางเรียก API
ผู้ใช้ส่วนหน้าได้รับการตรวจสอบสิทธิ์โดยใช้ Firebase การอ้างสิทธิ์ที่กำหนดเองจะถูกสร้างขึ้นบนผู้ใช้เพื่อกำหนดบทบาทของผู้ใช้ แอปพลิเคชัน NestJS ตรวจสอบบทบาทในการอ้างสิทธิ์ JWT ที่ระดับเมธอดที่ใช้การเข้าถึงตามบทบาทสำหรับผู้ใช้ปลายทาง มันใช้งานได้ดีมาก
อย่างไรก็ตาม....มีการเรียกใช้ API บางตัวจากแอปพลิเคชัน App Engine อื่นๆ ฉันต้องการใช้การเข้าถึงตามบทบาทในบริบทนี้ เช่น App Engine A สามารถเรียกใช้ GET บน App Engine B ได้ แต่ไม่สามารถเรียกใช้ POST ฉันกำลังดิ้นรนกับวิธีการบรรลุเป้าหมายนี้ฉันสามารถใช้พร็อกซีระบุตัวตนได้ แต่สิ่งนี้จะไม่ให้การควบคุมที่จุดสิ้นสุดหรือระดับเมธอด - แค่แอปทั้งหมด มันคือทั้งหมดหรือไม่มีเลย วิธีต่อไปของฉันคือให้ App Engine A ส่ง JWT ไปยัง App Engine B จากนั้นเพิ่มบทบาทที่กำหนดเองให้กับบัญชีบริการ App Engine A ที่กำลังทำงานอยู่ ปัญหาของฉันเกี่ยวกับวิธีนี้คือคุณไม่สามารถสร้างสิทธิ์ที่กำหนดเองสำหรับบัญชีบริการ และคุณไม่สามารถสร้างบทบาทที่กำหนดเองได้หากไม่ได้รับอนุญาต ฉันหวังว่าจะสร้างการอนุญาตที่กำหนดเอง เช่น 'myproject.data.read' และตรวจสอบว่าบัญชีบริการการโทรมีสิทธิ์นี้ภายใน App Engine B
มีใครอีกบ้างที่พยายามทำอะไรแบบนี้และทำให้มันทำงานด้วยวิธีอื่น?