2015-05-17 2 views
5

У меня есть приложение с конфиденциальным PII (номер социального страхования, информация о заработной плате). Я хотел бы разрешить пользователям входить в систему с идентификаторами OAuth (Google, Linked In) для удобства, но для того, чтобы эти учетные записи включали многофакторную аутентификацию в провайдере идентификации, то есть не удалось войти в систему через OAuth2, если пользователь не включил MFA в их базовую учетную запись поставщика удостоверений. Это позволяет мне не подвергать мою конфиденциальную информацию слабым паролям GMail.OAuth2, но требует многофакторной аутентификации (MFA)

Есть ли способ сделать это?

ответ

1

К сожалению, нет.
В случае с Google и Linkedin уровень аутентификации не связан с определенной областью. Ответ Oauth не указывает либо, если пользователь использовал токен OTP, либо нет.

Даже если пользователь зарегистрирован в MFA, пользователь может зарегистрировать компьютер, который он использует в качестве доверенного, и в этом случае Google никогда не предложит ему OTP. Это может помешать многим пользователям получить доступ к вашему приложению.

1

На самом деле, я считаю, что вы можете проверить свой собственный сеанс/токен, чтобы узнать, было ли это сделано через Google, Twitter, Facebook и т. Д., А затем потребовать MFA/2FA/OTP при первом использовании этого токена. Имеет ли это смысл?

Вы можете запустить собственный микросервис TOTP, используя Browser Authenticator, который имеет компоненты, необходимые для генерации и проверки ключа и токена в браузере, и Node Authenticator, который имеет дополнительный серверный код.

Просто добавьте свой собственный механизм хранения и вызов https для микросервиса, обновите сеанс/токен и альта, вы добавили двухфакторную/многофакторную/одноразовую аутентификацию пароля прямо поверх них.

Смежные вопросы