使用asp.net身份和Android授权进行混合身份验证

时间:2014-06-24 19:37:17

标签: android asp.net-web-api oauth-2.0 google-oauth asp.net-identity-2

我在asp中使用Identity(v2.0)以及通过Web API连接到网站的Android应用程序。

我已将Identity配置为使用Google OAuth登录并且运行良好。现在我正在尝试为应用程序创建Web API,我还需要对移动用户进行身份验证。

我已经达到了配置Identity以管理api的承载令牌的程度。但要执行登录,我找到的唯一方法是通过用户和密码documentation说:

grant_type=password&username=user&password=pass

或通过网络进行OAuth挑战。

Android也manages Google OAuth。有没有办法配置Identity使用Google Oauth执行登录?

我既没有找到管理外部承载令牌的方法,也没有找到使用Google身份验证令牌与Web Api签名的方法。

也许我误解了什么。

提前致谢。

1 个答案:

答案 0 :(得分:0)

好的,不知怎的,我已经找到了怎么做。

  1. 在Android中,使用范围受众群体获取ID令牌:服务器:如Google和#34;帐户身份验证和授权"文档。

  2. 将Web API令牌endpoin作为用户的电子邮件发送,并将密码作为密码发送。

    grant_type =密码&安培;用户名= {电子邮件}&安培;密码= {GoogleToken}

  3. 在我服务器中OAuthAuthorizationServerProvider的extendend类中,我将github repo googleplus / gplus-verifytoken-csharp中的令牌验证添加到方法GrantResourceOwnerCredentials

  4. 如果令牌有效,我可以填充UserLoginInfo并找到具有UserManager的用户。

  5. 然后正常身份验证继续进行,用户身份验证正常。

    无论如何,我认为必须有更优雅的方式来做到这一点。