api签名_使用签名保护基于HTTP的API

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

api签名

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

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

相关文章

【多元域除法】多项式除法电路原理及MATLAB详解

关注公号【逆向通信猿】更精彩!!! 关于二元域上的两个元素的加法和乘法、多项式除法,在之前的博客 【有限域除法】二元多项式除法电路原理及MATLAB详解 子程序:sub_poly_div.m 【有限域元素加法和乘法】有限域元素加法和乘法的原理及MATLAB实现 子程序:sub_gf_add.m、s…

win10高分辨率下修改字体显示大小(不是缩放百分比)

问题 不通过修改设置缩放百分比来增大win10的字体显示大小,缩放百分比调大后会导致很多问题出现!!! 修改 打开设置,或者右键个性化,在搜索栏输入:“放大文本大小”,搜索框下面会自…

应用程序无法正常启动 0xc0150002

Visual Studio 2017在debug下运行程序报错 应用程序无法正常启动 0xc0150002 分析原因 可能是:原程序是低版本的VS所编写的,缺少低版本的运行库,所以报错 解决 安装了VS2010后即可正常运行 error LNK2019: 无法解析的外部符号 __vsnwprin…

Excel之抽奖器实现

Excel实现一个抽奖器,关键在于学会几个Excel中的函数即可轻松实现。 单人抽奖 RANDBETWEEN 例: INDEX(A2:A61,RANDBETWEEN(1,60))缺点:这种方式生成的抽奖器,在多人情况下,由于RANDBETWEEN函数的返回值有可能是相同…

【RS码1】系统RS码编码原理及MATLAB实现(不使用MATLAB库函数)

关注公号【逆向通信猿】更精彩!!! 基础知识 要想搞懂本节知识,需要先熟悉掌握以下前几篇博客 【多元域乘法】多项式乘法电路原理及MATLAB详解 【多元域除法】多项式除法电路原理及MATLAB详解 RS码编码原理 RS码的编码与BCH码类似,区别在于RS码为多进制的 生成多项式…

如何用Java编写类似C的Sizeof函数

如果您刚开始学习Java并且是C语言背景,那么您可能已经注意到Java和C编程语言之间存在一些差异,例如String是Java中的对象,而不是NULL终止的字符数组。 同样,Java中没有sizeof()运算符。 所有原始值都有预定…

Spring启动教程

1.简介 如果您一直想使用一个Web框架,它使您能够快速开始API开发,而无须设置Web服务器,收集所有有线依赖项,安装各种工具的麻烦,那么您将拥有一个出色的框架,即Spring开机 Spring Boot的主要座右铭是约定优…

【LDPC系列1】基于MATLAB中LDPC编译码器对象的图像传输通信系统仿真

关注公号【逆向通信猿】更精彩!!! 1. 构造编码器对象 采用MATLAB内置的comm.LDPCEncoder构造编码器对象,其中使用默认的校验矩阵,信息位长32400比特,码长64800比特,该校验矩阵中除第一行中1的个数为6个外,其余行中1的个数均为7;前12960列中1的个数为8,后32400列构成…

【LDPC系列2】基于MATLAB中LDPC编译码器对象的图像传输通信系统仿真(IEEE 802.16e标准协议基础矩阵)

关注公号【逆向通信猿】更精彩!!! 1. 构造校验矩阵H,并保存为mat文件 采用IEEE 802.16e标准协议中的基础校验矩阵 通过构造QC-LDPC校验矩阵,码长n=2304,信息长k=1152,码率r=1/2,基础矩阵维数为1224: Hb = [-1 94 73 -1

VS2010附加进程调试DLL时断点无法断下的解决方法

系统版本:Win10 x64 1809 VS版本:VS2017 企业版 问题一 在动态链接库(DLL)附加到进程调试时,用VS2017附加后单步调试,结果发现总是在调试过程中卡死,VS2017无响应; 解决办法是:强制结束VS2017…

用于SaaS和NoSQL的Jdbi

一个自然的接口,用于与CRM,ERP,会计,营销自动化,NoSQL,平面文件等基于Java的数据集成 Jdbi是Java的SQL便利库,它为JDBC提供更自然的Java数据库接口,该接口易于绑定到域数据类型。 该…

【卷积码系列3】(n,k,m)卷积码的维特比译码实现(不使用MATLAB库函数)及性能对比(vitdec函数不使用MATLAB库函数【全部代码需私信另外付费获取】)

理论基础 MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的实现过程详解 上面这篇仅作为了解!!! 【卷积码系列1】(n,k,m)卷积码的编码原理详解及MATLAB实现 【卷积码系列2】(n,k,m)卷积码的生成多项式矩阵系数转网格图描述(不使用MATLAB库函数) 维特比译码曲…

Java批处理教程

在当今世界,互联网已经改变了我们的生活方式,其主要原因之一是大多数日常琐事都使用互联网。 这导致可用于处理的大量数据。 其中涉及大量数据的一些示例是处理工资单,银行对帐单,利息计算等。因此,请设想一下&#x…

编写junit 测试_使用JUnit和Repeat注​​释编写有效的负载测试

编写junit 测试EasyTest最近推出了一组新的注释,可帮助其用户编写有效的测试用例。 进入EasyTest的两个主要注释是: 重复 持续时间 今天,我们将讨论重复标注。 一种新的方法级别注释 重复已添加到EasyTest Framework。 此批注可用于重复…

【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)

四、基于DFT的(理想)滤波 例2:一个“警告” “理想DFT滤波器”虽然简单、有效,但可能会导致意想不到的问题。在博客 【数字信号处理】基于DFT的滤波系列2(含MATLAB代码) 中,数据本身是理想的,由完美的谐波组成,这些谐波在频域中以单一频率理想地表示(无频谱泄漏),这…

【数字信号处理】基于DFT的滤波系列4之加窗(含MATLAB代码)

四、基于DFT的(理想)滤波 加窗以减少频谱泄漏 在上面的例子中,整数次谐波被用来产生理想中的示例。这意味着一个完整的整数周期适合正在使用的样本数。一个明显的问题是,如果使用非整数周期数(以及谐波)会怎样?答案是远没有那么有效。 在现实世界中,从这个意义上说,数…

【数字信号处理】基于DFT的滤波系列5之二维DFT滤波(含MATLAB代码)

五、二维DFT滤波 前几节介绍的用于对时间序列滤波的原理也可用于对图像的滤波,采用二维傅里叶变换技术。 下图为一幅图像的二维DFT(2D DFT)变换后的幅度值,该图像仅由一个恒定强度组成,因此它是0Hz分量——背景强度。在可视化 2D DFT 的结果时通常使用fftshift(),因此 DC…

Vaadin教程

1.简介 当您是后端开发人员时,您会听到人们说您无法创建内置HTML的UI页面并且无法使用CSS设置样式时所引起的痛苦。 就像成为后端开发人员一样,它具有已知的局限性,即我们可以播放和运行大型生产后端应用程序,但不能创建漂亮的页面…

jee web_您基于JEE的Web项目的结构是什么?

jee web在这篇文章中,我将尝试讨论基于Web的项目的各种组织结构,主要是使用JSF。 开始新项目时,首先想到的是如何组织Java包? 想象一下,您开发了一个基于Web的用户和组管理系统。 很长时间以来,我使用了以下…

开源mindmap_Java开发人员访谈的MindMap

开源mindmap多年来,我在许多Java开发人员的访谈中担任小组成员。 之前,我曾写过一篇标题为成功参加软件工程师技术面试的7大技巧的文章,其中涵盖了很少的一般准则。 在本文中,我将分享一个思维导图,其中包含Java开发人…