承载令牌 - 双因素 - ASP.NET身份

时间:2014-09-03 03:19:50

标签: asp.net asp.net-web-api token asp.net-identity identity

我已经实现了ASP.NET Identity 2.0.1,我使用双因素身份验证进行基于Web的登录,我对它的使用和整体安全性非常满意。

然而,对于通过WebAPI 2访问相同网站的移动设备,我使用的是OAuth2承载令牌认证,当然没有带有承载令牌的双因素认证这样的概念。

如果想要在移动设备上使用与基于网络的登录相同的双因素安全级别,建议的方法是什么?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我已经这样做了

  1. 用户请求令牌(通过OAuthAuthorizationServerProvider),不带双因素代码 - 获取具有基本声明的访问令牌。
  2. 用户使用此令牌通过另一个控制器上的帖子请求两个因子代码。该控制器方法受到索赔检查(检查基本索赔)的保护
  3. 用户收到两个因子代码
  4. 用户通过相同的令牌终点请求新的访问令牌(将代码作为查询参数传递)。

    http://localhost:12345/api/token?code=abc

    正文:{grant_type =密码&用户名=用户名&密码=密码1}

  5. 在OAuthAuthorizationServerProvider中 - 您需要覆盖GrantResourceOwnerCredentials并检查两个因子代码 - 如果代码存在且用户信誉正常 - 发出具有更高权限的新令牌,允许访问其他资源。

    < / LI>