【问题标题】:Extending OWIN OAuth2.0 Password Grant With Security Questions使用安全问题扩展 OWIN OAuth2.0 密码授予
【发布时间】:2015-02-19 16:00:53
【问题描述】:
我目前在使用 OAuth2.0 密码授权的 WebApi2 应用程序中拥有 OWIN/Katana,我想通过添加您将在银行网站上看到的那些安全问题来增强这些授权,例如“你妈妈的表弟小时候的狗叫什么名字?”
用额外的问题以及典型的密码授予字段来挑战用户的最有效方法是什么:用户、密码?
这是否需要实现我自己的中间件和使用 IAppBuilder 集成的选项,还是有更简单的方法?
【问题讨论】:
标签:
c#
asp.net
asp.net-web-api
oauth
owin
【解决方案1】:
在服务器端:通过IOAuthAuthorizationServerProvider.GrantResourceOwnerCredentials 通知,您可以通过OAuthGrantResourceOwnerCredentialsContext 访问整个IOwinContext,从而使用IOwinRequest.ReadFormAsync 从请求表单中提取任何自定义参数。
在客户端:您必须使用username 和password 参数传递安全问题答案。复杂性将直接取决于您的客户提供的挂钩。
POST /token HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=johndoe&password=A3ddj3w&answer=boblemagnifique