OAuth2中OTP/2FA支持的推荐设计

sle*_*cal 6 oauth-2.0

我正在尝试将OTP/2FA支持添加到OAuth2中,但经过对RFC6749的大量阅读后,仍然不清楚如何在不违反规范的情况下干净地添加OTP/2FA.

虽然可以在authorize对话框流中添加OTP/2FA条目,但是没有将其添加到其中的规定token.例如,public具有Resource owner password-based特权的客户端应用程序可能希望在请求新的时直接提供令牌access_token,而不必嵌入HTML对话框.

因此,我的问题是;

  • RFC是否允许自定义grant_type?它应该用于提供2FA/OTP功能吗?

  • RFC是否允许现有的其他属性grant_type?例如,grant_type=token&otp_code=1234(RFC不清楚是否允许在grant_type规范中使用其他属性)

  • OTP功能应该放在标题中吗?这是Github 使用的方法,但它感觉非常丑陋/ hacky.

  • 还有其他方法我忽略了吗?

先感谢您

Han*_* Z. 4

RFC 允许扩展(自定义)授权,请参阅https://www.rfc-editor.org/rfc/rfc6749#section-8.3部分。该赠款可以定义其他属性。

OAuth 2.0 没有定义资源所有者如何向授权服务器进行身份验证,资源所有者密码凭证授予除外。您的提案可以设计为该赠款的扩展变体。

  • 顺便说一句:如果您使用 OTP 作为单一因素,您可以只使用现有的资源所有者密码凭证授予并提供 OTP 作为其中的密码 (3认同)