这个标题几乎解释了这一切,但这就是我想要做的事情:
我正在开发一个需要支持JWT身份验证的ASP.NET Core 1.0应用程序。使用OpenIddict很容易做到这一点,但OpenIddict就是其中之一,并且在后台神奇地工作了#34;框架。
我想保持OpenIddict的简单性,但是通过使用Identity及其双因素身份验证功能而不仅仅是用户名/密码登录来更改它的默认行为。
我还没有找到为OpenIddict提供自定义登录管理器的方法。有没有人有这方面的经验?
答案 0 :(得分: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授权与双因素身份验证不兼容。
相反,我建议切换到隐式或授权代码等交互式流程,这样您就可以支持这种情况(因为在这种情况下您负责登录部分)。
有关详细信息,请查看this sample。它只依赖于登录步骤的默认VS模板附带的AccountController
,并包含一个处理授权部分的特殊AuthorizationController
。
2-FA由AccountController
原生支持,因此您无需在应用程序中实现任何功能。