Tôi đã tạo một ứng dụng nhiều người thuê sử dụng Entity Framework, WebAPI, ASP.NET Identity. Về cơ bản nó đọc tên miền phụ của đối tượng thuê và sử dụng nó để đọc chuỗi kết nối từ cơ sở dữ liệu và đặt nó vào thời gian chạy.ASP.NET Identity + Token Bearer + Multi-Tenant
Mọi thứ đều tuyệt vời, cơ sở dữ liệu đang tạo v.v ... nhưng vấn đề duy nhất hiện nay là Mã nhận dạng người gửi ASP.NET.
Khi tôi đã tạo mã thông báo truy cập cho http://tenant1.#####.com/token, có vẻ như mã thông báo được ký trên cùng một ứng dụng (không có khóa máy nào được chỉ định) và nó cũng cho phép truy cập vào các bộ điều khiển http://tenant2.#####.com. trong trường hợp đó là các tên miền phụ/người thuê khác nhau.
Có cách nào khác không? Hoặc có lẽ tôi nên nhìn vào khung bảo mật khác chứ không phải ASP.NET Identity?
Bạn cần kiểm soát mã thông báo và thêm dữ liệu tùy chỉnh ở đó, tên đối tượng thuê. Kể từ khi thẻ được dựa trên tuyên bố này nên có thể. Sau đó, có một kiểm tra khác theo từng yêu cầu để xác minh xem đối tượng thuê hiện tại có khớp với một từ mã thông báo không. Kiểm tra này có thể được thực hiện trong một mô-đun http tùy chỉnh chẳng hạn. –
Xin chào, trong trường hợp này, việc sử dụng xác nhận quyền sở hữu có phải là phương pháp "an toàn" không? Bởi vì tất cả phải mất là để có thể giả mạo một mã thông báo với các yêu cầu chính xác của người thuê và yêu cầu có thể đi qua? –
Bạn không thể giả mạo mã thông báo ở phía máy khách. –