ASP.NET Web API授权和身份验证

Jea*_*anD 18 authentication rest authorization oauth-2.0 asp.net-web-api

我正在尝试构建一个安全的asp.net web api.您可以找到很多方法来保护您的API,但我想知道什么是最好的方法或"行业标准"来实现我的情况.

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

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

OAuth 2.0是一个解决方案吗?

tpe*_*zek 12

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

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


Pai*_*ook 6

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

基础

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

声明

  • Anoynmous声称主要负责人
  • 验证即时声明
  • 基于声明的授权

不变

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

扩展方法

  • XML(与XmlReader,XmlDocument,XDocument之间的对比)
  • WS-Trust RSTR
  • 安全令牌转换
  • X.509证书