使用签名保护基于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…

[UE4]嵌套Canvas

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

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

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

shiro 权限 URL 配置细节

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

2016 年崛起的 JS 项目

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

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

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

React Native项目自动化打包发布

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

Python程序员之面试必回习题

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

SpringMVC原理MVC设计思想

什么是MVC? MVC是一种架构模式 --- 程序分层,分工合作,既相互独立,又协同工作 MVC是一种思考方式 --- 需要将什么信息展示给用户? 如何布局? 调用哪些业务逻辑? MVC流程图如下图所示: MVC核心思…

Hbase 的javaAPI基本操作用 在idea上的实现

1.保证集群开启&#xff1a; jps有如下进程 2.pom文件中的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sche…

旅行报告:JavaOne 2013 –重归荣耀

我已经回来几天了&#xff0c;需要赶上过去几天一直搁置的所有事情。 对我来说&#xff0c;这是一年中最忙的时间。 JavaOne和OpenWorld在旧金山的整整一周。 一个非常简短的旅行报告。 年度ACED简报 你们中许多人都知道我是Oracle社区认可计划&#xff08;称为“ ACE计划 ”&…

ElasticSearch 数据分片

一、ElasticSearch 分片 ElasticSearch集群中有许多个节点(Node)&#xff0c;每一个节点实例就是一个实例&#xff1b;数据分布在分片之间。集群的容量和性能主要取决于分片如何在节点上如何分配。将数据分片是为了提高可处理的容量和易于进行水平扩展&#xff0c;为分片做副本…

Unity3D_(游戏)2D坦克大战 像素版

2D坦克大战 像素版 游戏规则&#xff1a;  玩家通过上、下、左、右移动坦克&#xff0c;空格键发射子弹 敌人AI出身时朝向己方大本营(未防止游戏快速结束&#xff0c;心脏上方三个单位障碍物设为刚体)    当玩家被击杀次数>3  或  心脏被子弹击穿  重新加载游戏…

认识Skeleton Screen【屏幕加载骨架】

一直以来&#xff0c;无论是web还是iOS、android的应用中&#xff0c;为了提升应用的加载等待这段时间的用户感知体验&#xff0c;各种奇门遁甲之术层出不穷。其中&#xff0c;菊花图以及由它衍生各种加载动画是一个非常大的流派&#xff0c;如下图所示&#xff1a;由它衍生而出…

使用Apache Zookeeper进行协调和服务发现

面向服务的设计已被证明是针对各种不同的分布式系统的成功解决方案。 如果使用得当&#xff0c;它会带来很多好处。 但是随着服务数量的增加&#xff0c;了解部署什么以及部署在何处变得更加困难。 而且&#xff0c;由于我们正在构建可靠且高度可用的系统&#xff0c;因此还需要…

微信小程序无埋点数据采集方案

作者&#xff1a;lxj&#xff0c;点餐终端团队成员前言 相信业务团队对这样的场景不会太陌生&#xff1a;打点需求&#xff1a; 每新上一个功能&#xff0c;数据产品便会同步加上打点需求&#xff0c;当数据打点上线后一段时间&#xff0c;数据产品/业务产品便会针对数据的转化…

php异步请求$.post,如何用PHP实现异步请求、忽略返回值

本篇文章的主要内容是用PHP实现异步请求、忽略返回值&#xff0c;具有一定的参考价值&#xff0c;有需要的朋友可以看看&#xff0c;希望能对你有帮助。项目需要&#xff0c;场景如下&#xff1a;某个条件下需要调用接口发送多个请求执行脚本&#xff0c;但是由于每个请求下的脚…

Linux NTP

ntpd服务的设置: ntpd服务的相关设置文件如下&#xff1a; /etc/ntp.conf&#xff1a;这个是NTP daemon的主要设文件&#xff0c;也是 NTP 唯一的设定文件。/usr /share/zoneinfo/:在这个目录下的文件其实是规定了各主要时区的时间设定文件&#xff0c;例如北京地区的时区设定文…