使用Restful asp.net Web api和安全api的用户登录认证
本文关键字:api 用户 登录 认证 安全 asp net Web 使用 Restful | 更新日期: 2023-09-27 18:18:39
我正在学习使用AngularJS前端框架开发asp.net Web API。我已经对此做了一个星期的研究。我读过关于oauth, owin和其他的。但现在不知道哪个更好。
我有几个问题,希望你们能帮助我。
1)在我的应用程序中-只有注册用户才能通过电子邮件和密码登录进入应用程序。有人能告诉我一个很好的资源或文章如何创建一个良好的注册和登录认证与API。这是足够安全的,因为我将收集用户数据并存储它们。
2)我需要什么类型的安全来保护我的API,首先API将在防火墙后面,然后一个项目完成后,它将向世界开放?如果可能的话,请给我指一下正确的方向。
请注意,这不是一个重复的问题,我已经通过大多数帖子stackoverflow和问这个后,我找不到答案。
任何建议或帮助都是非常感谢的。
感谢您对这个话题的所有努力
您可以使用基于令牌的身份验证。Net Web API 2, OWIN, Asp。Net Identity和AngularJS。
Asp。Net Web API现在完全支持OWIN。武士刀是微软的OWIN实现。
Asp。Net Web API现在支持使用OAuth 2.0进行授权。微软OWIN组件使OAuth成为可能。
你是否对Identity,OWIN,OAuth…这些术语感到困惑?以下是它们的简要概述。
Asp。Net Identity是为了克服asp.net成员系统存在的问题而开发的。Asp。Net Identity允许我们使用不同的存储(表存储,非SQL),并允许我们使用外部身份提供程序,因为它使用OWIN。
OWIN是打破紧密耦合b/w Asp。Net和IIS。OWIN只是一个规范。武士刀是微软的OWIN实现。OWIN位于http请求管道中。OWIN管道有中间件组件,我们可以在其中提到外部登录机制。
创建OAuth是为了消除用户与第三方应用程序共享密码的需要。
注意:Asp。网络身份与OWIN、OAuth无关,反之亦然。它们是三个独立的概念。Asp。Net Identity是微软的实现。OWIN, OAuth是开放的标准的概念。因为微软已经实现了OWIN,所以OAuth成为可能。
因此,Web API 2使用OAuth承载令牌代替表单认证cookie,这在Web API世界中更正确。因为它允许使用各种终端用户设备,如移动设备。
在这种情况下,您可以使用visual studio 2013中提供的默认模板。
1. 创建新项目并选择Asp。. Net web应用程序。
2. 选择Web API或SPA模板
3.更改身份验证和选择个人用户帐户。
4. 单击Ok。
现在,为了使用OWIN, Asp. js,所有的东西都默认配置好了。网络身份,OAuth。由于我们使用基于令牌的身份验证,您可以在帐户控制器中发现没有可用的登录方法。
- 注册用户,使用AccountController 中提供的register方法
- 要登录,您需要将以下格式的数据发布到http://example.com/token(可以在StartUp.Auth.cs中配置)
grant_type = password&用户名= Alice&密码= password123 - 登录后,我们收到承载令牌,我们需要在每次访问受保护资源的请求中发送带有授权头的令牌。
由于你使用的是非常棒的前端框架AngularJs,你可以将承载令牌保存在本地存储中,并且你可以编写一个http拦截器服务,它负责在每个请求中发送承载令牌。
在这里注册用户是由Asp。Net身份,其中身份验证用户由OAuthAuthorizationServer负责,该服务器默认存在于Providers文件夹中。
我们收到的承载令牌不是针对特定客户端的,因此任何人都可以拦截它们。所以只能通过SSL使用它们。
请浏览以下链接
http://www.asp.net/web-api/overview/security/individual-accounts-in-web-apihttp://bitoftech.net/2014/06/09/angularjs-token-authentication-using-asp-net-web-api-2-owin-asp-net-identity/
Vs2013 webapplication项目模板自带良好的自带设置。我建议调查一下