Asp.net core 具有双因素身份验证的OpenIddict

Asp.net core 具有双因素身份验证的OpenIddict,asp.net-core,openiddict,Asp.net Core,Openiddict,好吧,标题几乎解释了这一切,但以下是我试图做的: 我正在开发一个ASP.NET Core 1.0应用程序,该应用程序需要支持JWT的身份验证。使用OpenIddict很容易做到这一点,但是OpenIddict是那些“在后台神奇地工作”的框架之一 我希望保持OpenIddict的简单性,但是通过使用Identity和它的双因素身份验证特性来改变它的默认行为,而不仅仅是用户名/密码登录 我还没有找到为OpenIddict提供自定义登录管理器的方法。有没有人有这方面的经验 使用OpenIddict很容

好吧,标题几乎解释了这一切,但以下是我试图做的:

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

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

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

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

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


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

如果您觉得很简单,我假设您正在使用一堆博客文章(例如或)中演示的“资源所有者密码凭据授予”

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


相反,我建议切换到交互式流,如隐式或授权代码,这将允许您支持此场景(因为在本例中,您负责登录部分)

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


2-FA本机由
AccountController
支持,因此您不需要在应用程序中实现任何东西来启用它。

哦,是的,这是一个非常好的示例,可以帮助我入门,谢谢。我很难为ASP.NET核心解决这个问题。通常有一百万篇博客文章和例子完全符合你的要求,但由于.NET Core仍处于起步阶段,情况并非如此。感谢@Pinpoint,过去你在这篇文章中再次帮助了我。