Xin lỗi trước nếu câu hỏi này phù hợp hơn trên một trang web StackExchange khác; điều này cảm thấy như sự lựa chọn đầu tiên tốt nhất.
Lý lịch
Tôi có một ứng dụng web (.NET Framework, ASP.NET Web Forms và MVC) đang chạy trên IIS (mọi phiên bản). Ứng dụng không có logic xác thực, thay vào đó chỉ dựa vào IIS được định cấu hình cho Xác thực Windows (Thương lượng); sau đó ứng dụng sẽ tham chiếu HttpContext.Current.User.Identity.Name để truy xuất người dùng Windows.
Tôi đã được giao nhiệm vụ thêm MFA vào quy trình đăng nhập nhưng tôi đã gặp khó khăn nếu điều này thậm chí có thể thực hiện được. Dưới đây là sự hiểu biết hiện tại của tôi và lý do tại sao tôi tin rằng điều đó là không thể; câu hỏi của tôi là liệu tôi đã bỏ lỡ một cái gì đó.
Bàn thắng:
- Khi người dùng cuối kết nối với ứng dụng, yêu cầu kiểm tra xác thực yếu tố thứ hai
- Không có thay đổi cấp độ ứng dụng
Hiểu biết hiện tại:
- Với Xác thực Windows, người dùng đã được xác thực và thách thức từ IIS chỉ bao gồm mã thông báo xác thực hiện tại cùng với yêu cầu
- IIS từng có tùy chọn làm gián đoạn luồng này và chuyển hướng đến thử thách MFA thông qua máy chủ MFA của Microsoft, nhưng tùy chọn này đã bị ngừng và không còn khả dụng nữa.
- Hiện không có tùy chọn nào khác để làm gián đoạn luồng xác thực IIS
- Tùy chọn tiềm năng #1 - Làm lại ứng dụng để bao gồm logic xác thực (rất có thể hướng tới Kết nối OAuth/OpenID) và gọi thử thách MFA tại thời điểm đó
- Tùy chọn tiềm năng #2 - Đặt proxy ứng dụng ở giữa người dùng cuối và ứng dụng; proxy ứng dụng sẽ yêu cầu đăng nhập cộng với MFA, sau đó chuyển hướng đến ứng dụng.
Tôi đang ở mức tôi biết đủ để biết rằng tôi không biết đủ, nhưng tôi đang thiếu những gì cần hiểu thêm để đào sâu hơn.
Hiểu biết của tôi về Xác thực Windows và các tùy chọn có sẵn để đạt được MFA có chính xác không hay tôi còn thiếu điều gì khác sẽ giúp tôi tiếp tục?