【问题标题】:OAuth2 but require Multi-Factor Authentication (MFA)OAuth2,但需要多重身份验证 (MFA)
【发布时间】:2015-07-29 06:47:15
【问题描述】:
我有一个包含机密 PII(社会保险号、工资单信息)的应用。为了方便起见,我想让用户使用 OAuth ID(Google,Linked In)登录,但要求这些帐户在身份提供者中启用了多因素身份验证,即如果用户未启用 MFA,则无法通过 OAuth2 登录他们的基础身份提供者帐户。这让我可以避免将我的机密信息暴露给弱 GMail 密码。
有什么办法吗?
【问题讨论】:
标签:
authentication
oauth-2.0
single-sign-on
【解决方案1】:
实际上,我相信您可以检查自己的会话/令牌,看看它是否通过 Google、Twitter、Facebook 等完成,然后在第一次使用该令牌时要求 MFA / 2FA / OTP。这有意义吗?
您可以使用 Browser Authenticator 运行您自己的 TOTP 微服务,其中包含您需要在浏览器中生成和验证密钥和令牌的组件,以及具有补充服务器端代码的 Node Authenticator。
只需添加您自己的存储机制和对微服务的 https 调用,更新会话/令牌和 viola,您就在它们之上添加了两因素/多因素/一次性密码身份验证。
【解决方案2】:
很遗憾,没有。
对于 Google 和 Linkedin,身份验证级别未链接到特定范围。 Oauth 响应没有指定用户是否使用了 OTP 令牌。
即使用户注册了 MFA,用户也可以将他正在使用的计算机注册为受信任的计算机,在这种情况下,Google 永远不会提示他输入 OTP。此行为可能会阻止许多用户访问您的应用程序。