【问题标题】:Web api service authentication for website as well as devices网站和设备的 Web api 服务认证
【发布时间】:2013-12-23 13:47:23
【问题描述】:

我正在创建一个 Web api 数据服务。我想在 asp.net 网站以及设备(iOS、Windows Phone、Android)的应用程序中使用该服务。

我应该使用哪种身份验证机制?我四处阅读,发现带有加密的 Bearer 令牌是一个好方法。

我无法理解网站如何将身份传播到 Web api 服务? (因为通常基于 mvc 的网站都有内置的身份验证!)

我知道我可以将身份验证委托给基于 OWIN 的模块...我不确定所有这些技术都适合的整体情况。

谁能给我一张完整的图片,怎么做?

【问题讨论】:

    标签: asp.net asp.net-mvc security asp.net-web-api owin


    【解决方案1】:

    身份传播很简单,设备应用程序要么使用登录页面自动化,要么提供自己的登录界面来获取令牌,然后在连续请求中使用令牌。

    我的建议是围绕 OAuth2 流程构建您的身份验证。您会发现四分之三的流程很有趣。

    授权代码流适用于被动客户端(其他 Web 应用程序)。您的身份验证服务器返回一个一次性代码,应用程序(资源服务器)使用该代码将其交换为不记名令牌。

    令牌流适用于可以访问身份验证服务器上的登录 ui 的活动客户端,例如 javascript 客户端。

    资源所有者流程允许移动应用程序交换用户名/密码以获得令牌,这是托管自定义登录 ui 的机会。

    http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

    在实践中,所有这些可能的流程在集成方面为客户提供了很大的灵活性。由于协议的开放性,构建在任何技术堆栈中的客户端都可以使用您的身份验证服务。

    如果您遵循这条路线并使用 DotnetOpenAuth,那么是的,令牌会在用户会话中携带加密信息,因此不需要持久令牌存储​​库。

    【讨论】:

    • 感谢您的解释。我将阅读这篇文章并查看 DotnetOpenAuth。
    猜你喜欢
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2010-11-17
    • 2011-09-15
    • 2014-08-14
    相关资源
    最近更新 更多