SB2*_*055 18 authentication asp.net-web-api single-page-application
我有一个使用WebAPI构建的Web服务,它接受JSON请求并相应地响应.核心架构已构建,但没有任何身份验证/授权.
经过大量的谷歌搜索和示范项目,我不知道从哪里开始.我发现了2008年和2009年的大量资料,但没有为WebAPI /单页应用程序提供大量最新的指南/工作流程.我认为工作流程应该如下:
检查用户是否已登录:如何使用javascript完成此操作?我是否将cookie发送到我的webAPI?如果是这样,我是否将该cookie作为参数发送到请求正文中?
让用户登录/注册:这些数据如何加密/解密?当然我不能通过线路发送密码......这是SSL进来的地方吗?
让他们访问他们有权访问的内容:我想我得到了这个 - 我可以在每个请求的基础上在控制器中进行授权.
任何信息都会很棒.
基本上,您需要基于令牌的身份验证或授权.如果您指的是ASP.NET WebAPI,以下项目将是一个很好的起点:http://thinktecture.github.com/Thinktecture.IdentityModel.45/
即使您没有使用ASP.NET WebAPI,以下视频也是关于如何在RESTful Web服务上提供身份验证/授权的精彩介绍:http: //vimeo.com/43603474
回答你的一些问题:
检查用户是否已登录:如何使用javascript完成此操作?我是否将cookie发送到我的webAPI?如果是这样,我是否将该cookie作为参数发送到请求正文中?
您可以使用cookie但我通常使用标头以避免常见的XSRF攻击.每当从浏览器发送http请求时,都会自动包含Cookie.
这是SSL进来的地方吗?
是.如果要继续使用基于令牌的方法,可以使用单独的服务器(Identity Server)为您进行身份验证.
JavaScript 客户端是独一无二的。您是否在同一域中拥有 Web API 和提供 JavaScript 的页面?如果没有,您将受到同源政策限制。如果您有托管网页和 Web API 的相同 Web 应用程序,则可以使用表单 Authn。在这种情况下,您不需要自己从 JavaScript 发送包含身份验证票证的 cookie。浏览器会为您执行此操作,这就是 XSRF 问题的原因。您必须小心 JavaScript 发送最终用户不应该知道的凭据。如果 JavaScript 了解某些内容,任何聪明的最终用户都可以获取该知识。OAuth 2.0 隐式授权可能是一个不错的选择。最终用户在颁发访问令牌的授权服务器中输入凭据(密码)。JavaScript 获取令牌并将其呈现给 Web API,但它永远无法访问凭据。
| 归档时间: |
|
| 查看次数: |
10725 次 |
| 最近记录: |