Tôi muốn triển khai quyền truy cập dựa trên vai trò trên các API của mình ở cấp phương thức. ví dụ. để gọi một phương thức nhất định trên API, người gọi phải có vai trò 'myapp.api.write'. Tôi không thể tìm ra cách để thực hiện việc này khi tài khoản dịch vụ gọi API của tôi, nhưng có giải pháp khi người dùng cuối gọi API.
Người dùng giao diện người dùng được xác thực bằng Firebase, xác nhận quyền sở hữu tùy chỉnh được tạo trên người dùng để xác định vai trò của người dùng. Ứng dụng NestJS kiểm tra các vai trò trong xác nhận quyền sở hữu JWT ở cấp phương thức triển khai quyền truy cập dựa trên vai trò cho người dùng cuối. Điều này hoạt động rất tốt.
Tuy nhiên.... một số API được gọi từ các ứng dụng Máy ứng dụng khác. Tôi muốn triển khai quyền truy cập dựa trên vai trò trong ngữ cảnh này, tức là Máy ứng dụng A có thể gọi GET trên Máy ứng dụng B, nhưng không phải POST. Tôi đang đấu tranh với làm thế nào để đạt được điều này.Tôi có thể sử dụng proxy nhận biết danh tính nhưng điều này sẽ không cung cấp quyền kiểm soát ở cấp độ điểm cuối hoặc phương thức - chỉ toàn bộ Ứng dụng, có tất cả hoặc không có gì. Cách tiếp cận tiếp theo của tôi là yêu cầu Máy ứng dụng A gửi JWT đến Máy ứng dụng B, sau đó thêm vai trò tùy chỉnh vào tài khoản dịch vụ mà Máy ứng dụng A đang chạy bên dưới. Vấn đề của tôi với phương pháp này là bạn không thể tạo quyền tùy chỉnh cho tài khoản dịch vụ và bạn không thể tạo vai trò tùy chỉnh nếu không có quyền. Tôi đã hy vọng tạo quyền tùy chỉnh, chẳng hạn như 'myproject.data.read' và kiểm tra xem tài khoản dịch vụ gọi điện có quyền này trong Máy ứng dụng B hay không.
Có ai khác đã thử bất cứ điều gì như thế này và làm cho nó hoạt động theo cách khác không?