Tôi đã vật lộn với cách đơn giản hóa xác thực WebAPI/Identity cho WebAPI hiện tại/tương lai của chúng tôi. Tôi mới ở đây, nhưng tôi sẽ giải thích nó là tốt nhất có thể. Chúng tôi bắt đầu với một WebAPI duy nhất và thiết lập ASP.Net Identity để xử lý xác thực và như vậy. Sau đó, chúng tôi thiết lập khác, và chẳng mấy chốc nó sẽ là 30.Xác thực nhiều WebAPI bằng một lớp Xác thực danh tính duy nhất
Vấn đề ở đây là rõ ràng - cho mỗi WebAPI mới chúng ta phải cắm vào một lớp MS nhận dạng ủy quyền. Trong một số trường hợp, chỉ có một WebAPI đơn lẻ sẽ hoạt động, nhưng trong trường hợp này đây là các sản phẩm hoàn toàn riêng biệt (cộng với thiết kế xấu của nó).
Vì vậy, chúng tôi muốn bắn cho một cái gì đó như thế này:
Nhưng tôi có một thời gian khó khăn để tìm hiểu làm thế nào mỗi WebAPI sẽ nhận được thông tin tài khoản để tôi có thể kiểm tra vai trò và như vậy.
Tôi đã đọc nhiều bài đăng về xác thực WebAPI như: thisthis và this nhưng có vẻ như mọi thứ tôi tìm thấy phải đảm bảo rằng SINGLE WebAPI và chúng tôi biết cách thực hiện điều đó. Nó giống như những gì chúng ta cần là một cách tiếp cận SSO cho WebAPI của chúng ta. Nó gần như có vẻ như chúng ta cần một cái gì đó giống như cách tiếp cận bên ngoài xác thực (như Facebook, Twitter, vv) nhưng sử dụng DB phụ trợ riêng của chúng tôi - Tôi chỉ không biết thuật ngữ thích hợp.
Vì vậy, tôi chuyển sang các chuyên gia để được giúp đỡ trong việc tôi đứng đầu đúng hướng:
- Có thực tế phổ biến để có mỗi WebAPI có nó là của riêng lớp xác thực/uỷ quyền mà mỗi điểm với cùng DB ?
- Khái niệm lớp auth đơn có được tích hợp sẵn vào WebAPI/Identity hoặc tôi có phải làm điều đó từ đầu không?
- Có phải là Authentication Filter những gì chúng tôi nên sử dụng không?
Tôi có thể tấn công tất cả lại với nhau đằng sau hậu trường, nhưng có cảm giác như có một câu trả lời rõ ràng rằng tôi đang thiếu.
Có cách nào tích hợp để thiết lập một "ủy thác" giữa mỗi WebAPI và một API xác thực để làm một cái gì đó như thế này:
Đây là hướng chúng tôi hiện đang hướng:
Nếu tôi chỉ có thể có được sự thúc đẩy chung về đúng hướng, tôi sẽ vui mừng như cú đấm. Tôi chỉ không muốn phát minh lại bánh xe.
Oh, và trước khi tôi quên, chúng ta đang sử dụng asp.net 4.5, WebAPI 2, nhận dạng 2, trên IIS
Cảm ơn bạn cho bất kỳ con trỏ.
Vâng, tôi cũng đã đọc về điều đó hôm nay nhưng đã để nó ra khỏi yêu cầu của tôi ở trên. Tôi ủng hộ vì tôi đọc một số bình luận từ những người khác nói rằng bạn không muốn làm điều đó như thế. BAO GIỜ - dựa trên điểm số và khuyến nghị SO của bạn, có vẻ như tôi cần nghiên cứu và tự nghiên cứu nó. Đó là bài tập về nhà của tôi cho tối nay! Cảm ơn Russ – PRB
@PRB - không phải lo lắng. Danh tính liên kết, Nhận dạng dựa trên xác nhận quyền sở hữu, WS-Federation, SAML, STS vv có thể là một lĩnh vực để điều hướng. Tôi đã thấy IdentityServer được sử dụng thành công để cung cấp nhận dạng dựa trên xác nhận quyền sở hữu cho một số apis web. Tôi sẽ không gọi bản thân mình là một chuyên gia bảo mật để chỉ có thể khuyên bạn nên nghiên cứu và rút ra kết luận của riêng bạn. Tôi cũng khuyên bạn nên tải xuống bản PDF của Xác nhận quyền sở hữu dựa trên Nhận dạng và Kiểm soát quyền truy cập - https://msdn.microsoft.com/en-us/library/ff423674.aspx –