2015-05-17 32 views
5

Tôi có một ứng dụng có PII bí mật (số an sinh xã hội, thông tin bảng lương). Tôi muốn cho phép người dùng đăng nhập bằng ID OAuth (Google, Được liên kết trong) để thuận tiện nhưng yêu cầu các tài khoản đó phải bật xác thực đa yếu tố trong nhà cung cấp danh tính, nghĩa là không đăng nhập thông qua OAuth2 nếu người dùng chưa bật MFA tài khoản nhà cung cấp danh tính cơ bản của họ. Điều này cho phép tôi tránh để lộ thông tin bí mật của mình với mật khẩu Gmail yếu.OAuth2 nhưng yêu cầu xác thực nhiều yếu tố (MFA)

Có cách nào để thực hiện việc này không?

Trả lời

1

Thật không may, không.
Trong trường hợp của Google và Linkedin, cấp xác thực không được liên kết với một phạm vi cụ thể. Phản hồi Oauth không chỉ định nếu người dùng đã sử dụng mã thông báo OTP hay không ..

Ngay cả khi người dùng đăng ký MFA, người dùng có thể đăng ký máy tính mà anh ấy sử dụng làm thẻ đáng tin cậy và trong trường hợp này, Google sẽ không bao giờ nhắc anh ta cho một OTP. Hành vi này có thể ngăn nhiều người dùng truy cập vào ứng dụng của bạn.

1

Thực ra, tôi tin rằng bạn có thể kiểm tra phiên/mã thông báo của riêng mình để xem nó đã được thực hiện thông qua Google, Twitter, Facebook, v.v ... và sau đó yêu cầu MFA/2FA/OTP về việc sử dụng mã thông báo đầu tiên đó hay không. Điều đó có ý nghĩa?

Bạn có thể chạy dịch vụ vi tính TOTP của riêng mình bằng cách sử dụng Browser Authenticator có các thành phần bạn cần tạo và xác minh khóa và mã thông báo trong trình duyệt và Node Authenticator có mã phía máy chủ bổ sung.

Chỉ cần thêm cơ chế lưu trữ của riêng bạn và một cuộc gọi https tới microservice, cập nhật phiên/mã thông báo và viola, bạn đã thêm xác thực mật khẩu hai yếu tố/đa yếu tố/một lần ngay trên đầu trang.

Các vấn đề liên quan