OAuth和外部身份验证提供程序

时间:2014-07-24 16:50:37

标签: asp.net-web-api oauth oauth-2.0 owin katana

我在OWIN上构建需要授权的WebAPI。我实现了OAuth 2.0,我对它非常满意。目前,已经实施了grant_type“密码”身份验证,现在我需要一种方法来使用外部身份验证系统,即Facebook,Google等。

我想弄清楚的情况是:

  1. iOS / Android应用程序使用本地库授权用户使用Facebook并获取Facebook access_key
  2. 我应该将该access_key发送到我的OAuth OWIN后端
  3. 使用Facebook API测试访问密钥
  4. 获取user_id
  5. 然后将user_id映射到我系统中的用户
  6. 为该特定用户发布身份令牌
  7. 我在概念上是否正确,如果是,我该如何在OAuth管道中实现这一点?

1 个答案:

答案 0 :(得分:0)

我就是这样做的。要实现它,您将需要Microsoft.Owin.Security.Facebook nuget包。

这是一篇很好的文章,解释了如何使用该包。 http://blogs.msdn.com/b/webdev/archive/2013/10/16/get-more-information-from-social-providers-used-in-the-vs-2013-project-templates.aspx?PageIndex=2

基本上,在你的owin启动类中,你添加了对app.UseFacebookAuthentication()的调用;

然后从HttpContext获取IPrincipal并进行配置。