我已经看到它可以很好地与WebAPI集成,但还没有看到任何集成作为移动客户端设备的身份验证的示例.例如 – 假设我有一个使用Identity实现的ASP.NET网站.现在我想为Windows 8.1和Windows Phone 8构建客户端应用程序.我看到两个主要问题限制了这一点.
首先 – ASP.NET身份显然只发布短暂的身份验证.令牌,这对移动应用程序来说是一个非常糟糕的用户体验.我已经看到了一些创建刷新令牌机制的尝试 – http://leastprivilege.com/2013/11/15/adding-refresh-tokens-to-a-web-api-v2-authorization-server/.这是一个非常好的方法,但看到一个真正内置的解决方案仍然会更有趣.
第二 – 也许更重要 – 外部身份验证提供商支持.在ASP.NET身份网站上,很容易看到通过WebAPI进行身份验证的方法,但我还没有看到这与外部身份验证一起使用.如何获得Facebook,Microsoft和Twitter的身份验证URL以及如何在应用程序内完成身份验证流程?
有没有人有这方面的经验?找到一个完整的演练会很棒,我很乐意用一些赏金点来奖励正确的解决方案:-).
解决方法
此外,你正在使用术语(这增加了每个人的困惑,包括你自己的). ASP.NET Identity管理存储在数据库中的用户凭据.它与需要验证凭据的应用程序类型(移动设备,API,浏览器,桌面等)无关.
Katana中间件允许应用程序验证调用者.有浏览器应用程序的cookie中间件,google,facebook,WS-Fed等的外部中间件,然后是API应用程序的OAuth2.每种工作都根据应用程序的性质而有所不同.其中一些也会相互影响,具体取决于应用程序的要求.
我并不是要选择你 – 这更多的是对微软在他们提供的框架中缺乏教育/文档的抱怨.我想这可以解答你的问题 – 微软没有你要求的东西.它们有点点碎片,但你只需连接它们.
一些可能有用的链接:
http://www.asp.net/web-api/overview/security
http://www.asp.net/vnext/overview/authentication
http://brockallen.com/category/owin-katana/
http://leastprivilege.com/category/katana/
http://leastprivilege.com/category/webapi/
HTH