3

好吧,标题几乎解释了这一切,但这是我想要做的:

我正在开发一个需要支持 JWT 身份验证的 ASP.NET Core 1.0 应用程序。使用 OpenIddict 很容易做到这一点,但 OpenIddict 是那些“在后台神奇地工作”的框架之一。

我想保持 OpenIddict 的简单性,但通过使用 Identity 和它的双因素身份验证功能而不仅仅是用户名/密码登录来改变它的默认行为。

我还没有找到向 OpenIddict 提供自定义登录管理器的方法。有没有人有这方面的经验?

4

1 回答 1

3

使用 OpenIddict 很容易做到这一点,但 OpenIddict 是那些“在后台神奇地工作”的框架之一。

是的,因为它是为不知道 OAuth2 或 OpenID Connect 如何工作的人设计的,这就是为什么故意隐藏大多数协议细节(因此,为什么处理 OIDC 请求/响应的类是故意隐藏的)不可更换)。


我想保持 OpenIddict 的简单性,但通过使用 Identity 和它的双因素身份验证功能而不仅仅是用户名/密码登录来改变它的默认行为。

如果您觉得这很容易,我假设您正在使用在一堆博客文章中展示的“资源所有者密码凭据授予”(例如http://capesean.co.za/blog/asp-net-5-jwt-tokens /http://kerryritter.com/authorizing-your-net-core-mvc6-api-requests-with-openiddict-and-identity/ )

不幸的是,这个(简单的)OAuth2 授权与 2 因素身份验证不兼容。


相反,我建议切换到隐式或授权代码之类的交互式流程,这将允许您支持这种情况(因为在这种情况下您负责登录部分)。

有关更多信息,您可以查看此示例。它仅依赖于AccountController登录步骤的默认 VS 模板附带的模板,并包含一个AuthorizationController处理授权部分的特殊模板。

2-FA 由 原生支持AccountController,因此您不应该在您的应用程序中实现任何东西来启用它。

于 2016-07-07T11:20:06.727 回答