【发布时间】:2021-05-12 03:48:39
【问题描述】:
在我的应用程序的初始实现中,我通过密码流使用 OpenIddict 的 ~/connect/token 操作来验证用户的用户名和密码。根据 OAuth2 规范,当用户名和密码正确时,用户将收到带有其作用域等的令牌。
现在,我将一次性 PIN 引入我的应用 (OTP)。如果用户注册了该应用,但想要跳过 OTP 验证,他们应该能够做到。但这样做时,他们不会收到完整的范围列表 - 他们只会获得基本范围,直到他们验证他们的帐户。这是因为用户可能被限定为管理员访问权限或其他内容,但在我们验证他们的电子邮件地址为合法之前不应接收该范围。未经验证的客户端应该仍然能够在一定程度上使用该应用,只是不能使用他们的正常权限(如果他们有任何花哨的权限)。
据我所知,我无法修改 OpenIdConnectRequest 以添加 OTP 或类似内容,那么如何使用 OpenIddict 在 OAuth2 密码流中使用 OTP?
(另外,如果阅读上述内容听起来像是纯粹的精神错乱,并且我在我的应用程序中引入了可怕的安全漏洞,那么你只想对着月亮嚎叫,请告诉我。)
【问题讨论】:
标签: oauth-2.0 oauth openiddict