Restful Web API 安全性
Posted
技术标签:
【中文标题】Restful Web API 安全性【英文标题】:Restful web API Security 【发布时间】:2018-07-27 06:05:36 【问题描述】:场景: 我们有一个 MS SQL 数据库,其中包含各种站点/应用程序的内容 - 我们计划创建一个 c# .net web api,然后从我们的站点/应用程序构建 REST 调用(这些通常都是客户端代码)。有些网站/应用程序有用户登录,有些则没有
问题: - 我们如何保护 api,以便只有我们的网站和应用程序可以访问它 - 我们如何构建以应对和没有用户登录
欢迎任何建议和想法
【问题讨论】:
只需使用 IdentityServer4。 【参考方案1】:如果您不打算打开您的 webapi 以供第 3 方使用。一种快速的方法可能是
-
创建证书并部署在所有服务器上
从 Server1,生成一些文本的哈希,例如你好。
在标头或查询字符串中将此哈希发送到服务器 2。
在服务器 2 上验证此哈希。
如果有计划为第 3 方使用打开 webapi,然后使用 oAuth 保护您的端点。我建议使用 IdentityServer4。
【讨论】:
【参考方案2】:为每个应用生成 JWT 令牌,将其分配给您的应用(如 APP 密钥),该应用调用您的 REST API,使用授权标头或在 API 调用中创建任何自定义标头。
【讨论】:
为此我需要身份验证服务器正确吗?像这样 - medium.com/vandium-software/… 是的,但是由于您希望您的“应用程序”能够访问 api,因此几乎没有什么变化,您需要为每个应用程序创建一个令牌,以便可以使用它来验证您的应用程序。跨度> 所以基本上你将创建应用程序密钥,现在每个请求你将传递两个令牌 1)用户令牌,2)应用程序令牌,类似于 Oauth。以上是关于Restful Web API 安全性的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security RememberMe & RESTful API