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

如何处理restful对接口安全性问题

使用 Apache Shiro 保护 RESTful Web 服务

RESTful api接口安全优雅设计

如何设计好的RESTful API之安全性

RESTful Api 身份认证安全性设计