18

我正在尝试构建一个安全的 asp.net web api。您可以找到很多方法来保护您的 API,但我想知道在我的案例中实现这一点的最佳方法或“行业标准”是什么。

这些是我的要求 - API 将被少数第三方开发人员用于网站/移动应用程序等。 - 想要使用此 API 的开发人员必须获得访问 API 的密钥(授权) - 用户(访客/消费者)必须登录第三方应用程序才能查看他们的个性化信息。- API 将使用 ASP 成员数据库来管理/验证用户。

我知道可以使用 http 基本身份验证来对用户进行身份验证,但是如何实现 API 的授权部分呢?

OAuth 2.0 是一个解决方案吗?

4

2 回答 2

12

有一篇很好的文章描述了使用令牌/密钥进行身份验证/授权:

它还描述了有关 ASP.NET Web API 安全性的其他一些良好做法。

于 2012-09-18T12:24:46.417 回答
6

我还建议使用可以支持以下内容的Thinktecture.IndentityModel.40库:

根据

  • Base64Url 编码
  • 纪元日期时间转换
  • 随机数生成
  • 时间常数字符串比较

索赔

  • 匿名索赔本金
  • 认证即时索赔
  • 基于声明的授权

持续的

  • 处理算法、日期时间格式、JWT、SWT、WS-Security 和 WS-Trust 时有用的常量

扩展方法

  • XML(往返于 XmlReader、XmlDocument、XDocument)
  • WS-Trust RSTR
  • 安全令牌转换
  • X.509 证书
于 2012-09-18T12:48:21.760 回答