使用签名保护基于HTTP的API

我在EMC上的一个平台上可以构建SaaS解决方案。 云安全

与越来越多的其他应用程序一样,该平台具有基于RESTful HTTP的API。

使用像JAX-RS这样的开发框架,构建这样的API相对容易。

但是, 正确构建它们并不容易。

建立基于HTTP的API的问题

问题不仅仅在于功能的发布。 我们知道如何开发软件 ,可用的REST / HTTP框架和库使公开功能变得容易。

但是,这只是故事的一半。 还有更多的-ilities考虑。
高枕无忧
在REST架构风格解决其中的一些,如可扩展性进化能力

如今,许多基于HTTP的API都声称是RESTful的,但实际上不是 。 这意味着他们没有获得REST可以带来的所有好处。

在以后的文章中,我将更多地讨论如何帮助开发人员满足REST体系结构风格的所有限制。

今天,我想着重介绍API的另一个非功能性方面: 安全性

基于HTTP的API的安全性

在安全方面,我们关心CIA-triad: 机密性 , 完整性和可用性 。

Web服务的可用性与Web应用程序的可用性并没有很大的不同,这是众所周知的。 我们有集群,负载均衡器,而没有什么, 通常我们的状态很好。

另一方面,机密性和完整性都需要正确的身份验证 ,在这里事情变得更加有趣。

基于HTTP的API的身份验证

对于HTTP世界中的身份验证 ,请看一下HTTP Authentication 。 认证方式

该RFC描述了基本身份验证和摘要身份验证。 两者都有缺点 ,这就是为什么您看到许多API使用替代方法的原因。

幸运的是,这些替代方案可以使用RFC中定义的相同基本机制。 该机制包括状态码401 Unauthorized以及WWW-AuthenticateAuthentication-InfoAuthorization标头。 请注意,不幸的是, Authorization标头的名称错误,因为它用于身份验证,而不是authorization 。

最后一个难题是自定义身份验证方案 。 例如, Amazon S3身份验证使用AWS自定义方案。

使用签名对基于HTTP的API进行身份验证

AWS方案依赖于签名 。 其他服务(例如EMC Atmos )也使用相同的方法。

因此,很高兴看到已经提出了新的IETF草案以标准化基于HTTP的API中签名的使用。

标准化使框架和库的构建成为可能,这将降低实现身份验证的成本,并使构建更安全的API更容易。

参考: 安全软件开发博客上的JCG合作伙伴 Remon Sinnema提供的参考文献: 使用签名保护基于HTTP的API 。

翻译自: https://www.javacodegeeks.com/2013/08/securing-http-based-apis-with-signatures.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python开发【模块】:Celery 分布式异步消息任务队列

前言: Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子: 你想对100台机器执行一…

iOS开发者的一些前端感悟

很多前端工程师会把自己比作“魔法师”,而对于JavaScript这门语言,我也想把它唤作一门“有魔力的语言”。因为这群有无限想法的人,真的在用它创造各种让你惊叹的事物。 Web三件套一、前言 几年前,笔者还是一名初涉编程的学生&…

windows下github 出现Permission denied (publickey)

github教科书传送门:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 再学习到"添加远程仓库"的时候遇到了 Permission denied (publickey) 这个问题, 总结来说以前的步骤如下所示: 1、git config --glo…

php如何逐条读取数据库,php从数据库中读取特定的行(实例)

有的时候我们需要从数据库中读取特定的数据,来检验用户的输入,这个时候需要执行的sql语句是:select * from table_name where idnum;需要执行这样的一个语句。那么怎样来执行这样的语句。为了执行sql语句,我们需要和数据库相连接$…

Java 7 vs Groovy 2.1性能比较

自从我与Grails上一次接触以来,我已经有两年没有使用Groovy了。 我陷入(硬)核心企业Java中,并且在后台遇到了一些性能方面的问题。 我几乎错过了学习Spock的机会,但是幸运的是, 华沙Java用户组帮助我摆脱了…

[UE4]嵌套Canvas

转载于:https://www.cnblogs.com/timy/p/9090642.html

写博客的这几个月,获益良多

1.前言 也将近过年了,看了那么多人搞了年会总结。自己活跃社区这几个月,改变了不少,收获也不少。就想写下这段时间写文章的一些总结,统计下‘成绩’,说下感想,就写了这篇文章。这次总结的关键词就是&#x…

php 注册自动登录,php – 创建第二个自动登录用户的登录页面

我有一个登录页面如下:Username: Password: LoginCancel在这里我的session.controller.php文件:基本上,我想要做的是创建第二个登录页面,自动将值传递给会话控制器并登录.例如,如果我转到login-guest.php,我会将用户名和密码的默认值和然后有一个jquery点…

Pyqt5+python+ErIC6+QT designer

Eric6安装及配置 https://blog.csdn.net/weixin_41656968/article/details/80253012 Python3.6PyQt5Eric6.0环境配置 https://blog.csdn.net/wf307388339wf/article/details/78990899 eric6新建工程编写代码操作步骤 https://jingyan.baidu.com/article/37bce2be5d29911003f3a2…

探索Apache Camel Core –文件组件

文件轮询器是解决常见IT问题的非常有用的机制。 Camel的内置file组件非常灵活,并且有许多选项可用于配置。 让我们在这里介绍一些常用用法。 轮询输入文件的目录 这是典型的骆驼Route用于每秒轮询一次目录以查找输入文件。 import org.slf4j.*; import org.apache…

shiro 权限 URL 配置细节

转载于:https://www.cnblogs.com/hwgok/p/9100277.html

2016 年崛起的 JS 项目

本文是我对中文版 risingstars2016 的整理,而本人就是中文版的译者,首发于知乎专栏 前端周刊。共 21384 字,读完需 30 分钟,速读需 5 分钟。长江后浪推前浪,如果你能花 30 分钟读完我 6 个小时翻译的内容,相…

NPOI之Excel——设置单元格背景色

NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillPattern 为单元格背景色的填充样式。NPOI Excel 单元格背景颜色设置方法: 123456ICellStyle style …

php 开启命令模式,如何启用PhpStorm中的命令行工具

本篇文章主要给大家介绍如何使用phpstorm中的命令行工具。PhpStorm下载地址:PhpStorm使用命令行工具,我们可以直接从IDE调用命令!在我们使用任何命令行工具之前,我们必须在设置中启用它。涉及到的步骤如下:使用命令行工…

深入了解Java 8中的可选类API

作为Java程序员,我们所有人都经历了以下情况:我们调用一个方法来获取某个值,然后代替直接对返回值调用某些方法,我们首先必须检查返回值不为null,然后在返回值。 这是像Guava这样的外部API试图解决的难题 。 此外&…

CentOS7安装及配置vsftpd (FTP服务器)

CentOS7安装及配置vsftpd (FTP服务器) 1、安装vsftpd 1 yum -y install vsftpd 2、设置开机启动 1 systemctl enable vsftpd 3、启动ftp服务 1 systemctl start vsftpd.service 4、打开防火墙,开放21端口 1 firewall-cmd --zonepublic --add-port21/tcp --permanent…

React Native项目自动化打包发布

今天这篇文章的目的是在rn项目的构建,并不会涉及到rn框架或者使用的讲解,说起构建,特别是前端构建大家应该很快会想到webpack、Grunt、 Gulp等。而这些工具在rn项目中就显得有些鸡肋。所以在此给大家分享一下不使用构建工具实现rn项目自动化打…

Python程序员之面试必回习题

写在前面 近日恰逢学生毕业季,课程后期大家“期待苦逼”的时刻莫过于每天早上内容回顾和面试题问答部分【临近毕业每天课前用40-60分钟对之前内容回顾、提问和补充,专挑班里不爱说话就的同学回答】。 期待的是可以检验自己学习的成功;苦逼的是…

如何用正则表达式杀死Java

我们最近偶然发现了一个我们绝对不了解的现象:您可以使用简单的正则表达式杀死任何Java IDE以及任何Java进程… 回到大学后,我被告知正则表达式(称为正则语法或3型语法)总是以有限状态的自动机结束,因此可以在线性时间…

php for next,Nextcloud停留无限登录页面 PHP7的问题及解决方案

Nextcloud 14或者15 无法打开登录界面出现错误信息如下:内部服务器错误服务器不能完成你的请求。如果再次发生,请在下方将技术详情发送给服务器管理员。更多细节可以在服务器日志中找到.技术细节远程地址: 210.22.126.186请求 ID: kSPvbdWDU7yvwng3516v请…