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…

用Rocker制作模板

在本文中&#xff0c;我们将快速介绍Rocker &#xff0c;这是一个静态类型化的快速Java 8模板引擎。 必需的依赖项 要开始使用Rocker&#xff0c;我们需要在项目中添加以下依赖项&#xff1a; <dependency><groupId>com.fizzed</groupId><artifactId>…

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

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

【MFC系列-第33天】链接控件自绘技术

33.1 常用的字体复制 方法一 CFont* pFont pDC->GetCurrentFont(); LOGFONT lf; pFont->GetLogFont(&lf); m_fontN.CreateFontIndirect(&lf); lf.lfUnderline TRUE; m_fontT.CreateFontIndirect(&lf);方法二 HFONT hFont (HFONT)GetStockObject(DEFAUL…

guava读取配置文件_使用Guava MapSplitters配置Hadoop

guava读取配置文件在本文中&#xff0c;我们将为通过Context对象将配置参数传递给Hadoop Mapper提供新的思路。 通常&#xff0c;我们在启动map-reduce作业时将配置参数设置为Context对象上的键/值对。 然后在Mapper中&#xff0c;我们使用键来检索要用于我们的配置需求的值。 …

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

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

Zuul 2 –样本过滤器

Zuul 2终于开源了 。 我第一次听到Zuul 2年Spring由米奇科恩一个2016的讲就是可以在这里找到 &#xff0c;这是好事&#xff0c;终于可以用它玩。 为了快速实现Zuul 2之类的网关的目的–网关提供了微服务生态系统的切入点。 由于所有客户的请求都是通过网关路由的&#xff0c;…

Excel之抽奖器实现

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

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

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

【RS码2】RS码的BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数【全部代码需私信另外付费获取】)

理论基础 订阅《信道编码》专栏,首先查阅各子程序的详解 【有限域生成】本原多项式生成有限域的原理及MATLAB实现 【有限域除法】二元多项式除法电路原理及MATLAB详解 【有限域元素加法和乘法】有限域元素加法和乘法的原理及MATLAB实现 【多元域乘法】多项式乘法电路原理…

QT开发基础

QT中可以使用qmake来生成Makefile&#xff0c;由.pro文件生成Makefile的命令如下&#xff1a; qmake hello.pro -o Makefile make模板(TEMPLATE) 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择&#xff1a; app - 建立一个应用程序的makefile。这…

Shebang来Java了吗?

尽管添加对Unix风格的shebang &#xff08; #! &#xff09;的支持从来不是 JEP 330 [“启动单文件源代码程序”] 的中心目标 &#xff0c;但围绕JEP 330“单个文件源程序”的潜在功能存在一些问题。为了支持Unix风格的shebang &#xff0c;在OpenJDK jdk-dev邮件列表上引起了广…

【C++编程题1】数组指针之字符串排序

题目 用数组指针处理50个不等长字符串。写一个函数对字符串按降序排序&#xff0c;然后在主函数输入这50个字符串&#xff0c;调用函数后&#xff0c;再输出这50个已经排好序的字符串。 代码 子函数&#xff1a; #include <iostream> using namespace std; #define N…

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

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

【C++编程题2】字符串插入空格

题目 从键盘输入一个字符串&#xff0c;然后按照下面要求输出 从键盘输入一个字符串&#xff0c;然后按照下面要求输出一个新字符串&#xff1a;新串是在原串中的每两个字符之间插入一个空格&#xff0c;如原串为 abcd&#xff0c;则新串为a口b口c口d口&#xff08;口表示空格…

Spring启动教程

1.简介 如果您一直想使用一个Web框架&#xff0c;它使您能够快速开始API开发&#xff0c;而无须设置Web服务器&#xff0c;收集所有有线依赖项&#xff0c;安装各种工具的麻烦&#xff0c;那么您将拥有一个出色的框架&#xff0c;即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

.xhr长轮询_使用Spring 3.2的DeferredResult进行长轮询

.xhr长轮询在我们的最后一集中 &#xff0c; Agile Cowboys Inc.的首席执行官刚刚雇用了Java / Spring顾问&#xff0c;方法是为他提供最初为女友购买的保时捷。 这位首席执行官的女友因失去保时捷而感到不安&#xff0c;已将其婚外恋告诉了他的妻子。 他的妻子在分拆了CEO的套…

十进制数与八进制数互相转换(MATLAB和C版本)

一、八进制数转十进制数 C语言实现 实现思路和参数: /* Function: ConvertOctaltoDecimal* Abstract: Convert an octal number to its equivalent decimal value** - First compute the number of digits in the octal number* - Then perform the conversion, one …