Web服务安全性和SOA路线图的人为维度

在大多数非平凡的SOA环境中,很难跟踪系统之间不断发展的集成,除非有明确的发布和查找适当信息的方法。 概述IT环境,定义当前或将要连接的内容,是维护环境的先决条件。 缺少这种情况通常会导致“面向意大利面条的环境”的感觉,并且不愿大胆尝试。

这句话听起来很明显,但实际上并不总是考虑在内。 一些组织要么没有这样的集中式集成控制,要么因为“妨碍了一切”而停止使用它。 充其量,这意味着集成信息被保存在某些关键人物的头上,这很冒险。 通常,在这样的地方的团队不敢“在某些情况下仍然依赖它们”更新服务合同,而是在需要更新时随时复制它们,这与SOA相反。

有时,一个好主意只需要退后几步即可正确应用。 我在这篇文章中解释了为什么我认为对SOA路线图的需求应能激发大多数Web服务(包括非敏感服务)上存在安全访问限制。

为什么这么简单的想法很难付诸实践?

有几个因素可以促使团队跳过这一重要的文档编制步骤:

  • 其他重要的短期任务的紧迫性,以及团队不断地“扑灭大火”的感觉,没有时间做其他事情
  • 缺少明确标识的中央存储库,该存储库用于在何处访问和发布此类信息(例如SOA注册中心或存储库),或者缺乏对这些信息的使用。
  • 缺乏集中式的管理,无法监督整合

从人为因素的角度来看,“我已经受够了”综合症会使这种情况恶化。 在复杂的多团队/多项目环境中,已经为眼前的问题所困扰的个人通常不会主动寻找其他项目难以解决(并解决)的依赖问题。 我们需要对此进行预测并积极帮助那些团队,同时要记住,他们要处理的其他问题当然也很重要。

以上内容的核心根源是,在可能的情况下,更容易跳过集成的验证/文档步骤。 我们必须通过宣传集中式集成信息的价值以及提高实现无证集成的难度来扭转这种感觉。

我们需要的

我们需要一个易于使用的过程来收集,验证和发布系统之间当前和将来的依赖关系。 一个关键方面是以“足够的治理”方式使它保持简单并与实际使用它的人保持联系。

四个主要组成部分似乎是:

  • 一个清晰的过程,用于请求新的集成或更新现有的集成。 这包括从业务和技术角度进行验证,以确保环境保持尽可能清洁和面向未来。 如果执行了EA工作,那么大多数请求都来自EA团队或来自EA团队,这使得此步骤变得微不足道! 在实践中,当项目团队在详细的设计或实施阶段确定所需的依赖关系时,也将来自项目团队。
  • 一个明确标识且易于访问的存储库,可在其中查找当前和计划中的集成。 该存储库必须包括每个未来依赖项的版本控制以及弃用/停用计划。
  • 负责更新中央存储库的团队,使路线图保持最新。 如果可以的话,通常是EA团队。
  • 在技​​术层面上,如果不涉及上述三个组件,则无法执行集成。 这应避免在合同更新引发问题之前一直隐藏的“幻影依赖项”。

在实践中,第四个组件应是企业范围内的IT原则,该原则规定每个Web Service实现必须要求调用应用程序具有安全授权。 当服务需要时,这将不会阻止其他安全机制的存在,例如,传输带有发起原始业务操作的人工用户身份的票证(REST和SOAP都允许同时存在多个安全令牌)。

通常必须通过将技术文档和代码示例附加到IT原理上来简化该原理的实现。 因为我们不希望同事之间互相攻击,所以可以采取低风险的方法,其目的只是确保让EA团队更容易建立幻影依赖。 使用SOAP时,我的建议是使用简单的WS-UsernameToken策略,并为每个客户端应用程序关联一个用户名/密码对。 使用REST时,一种众所周知的机制是使用HMAC,将请求的一部分与随机数和/或到期日期一起进行哈希处理(此机制类似于Amazon S3所使用的机制)。

结论

在本文中,我试图解释为什么我认为在每个Web服务中系统地采用一个简单的安全策略有助于跟踪IT状况,并确保SOA治理团队看不到“幻影依赖项”。 此安全策略的实施必须简单易行,并得到帮助文档的支持,并且不能过于强大,仅足以确保EA团队了解所有集成实施。

参考:来自Svend博客的 JCG合作伙伴 Svend Vanderveken的Web服务安全性和SOA路线图的人为因素 。


翻译自: https://www.javacodegeeks.com/2012/09/web-service-security-and-human.html

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

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

相关文章

pccad自定义图框_(PCCAD自定义标题栏详细方法.doc

PCCAD2011自定义标题栏详细方法下面以图3-1为例说明标题栏的自定义过程。图3-11.新建文件(用New 命令)。2.用绘图和文字中的相关命令设计出图3-1所示的图形。其中在使用中不变的内容,如厂名等均用“文字”命令标出,而需临时填充的…

ThinkPHP 3.2.x 集成极光推送指北

3.2版本已经过了维护生命周期,官方已经不再维护,请及时更新至5.0版本 —— ThinkPHP 官方仓库 以上,如果有条件,请关闭这个页面,然后升级至 ThinkPHP 5,如果由于各种各样的原因无法升级至 TP 5 &#xff0c…

Java:选择正确的集合

这是在应用程序中选择Set , List或Map的正确实现的快速指南。 最好的通用或“主要”实现可能是ArrayList,LinkedHashMap和LinkedHashSet。 它们的整体性能更好,除非您需要其他实现提供的特殊功能,否则应使用它们。 该特殊功能通常…

Java多线程——不变性与安全发布

1、不变性 某个对象在被创建后其状态就不能被修改,那么这个对象就称为不可变对象,不可变对象一定是线程安全的。不可变对象很简单。他们只有一种状态,并且该状态由构造函数来控制。 当满足以下条件时,对象才是不可变的&#xff1a…

中tr不能显示字符_垃圾文本识别中基本操作指南和错误总结,第三部分

创建模型需要用到机器学习的库,所以我们先下载sklearn库sklearn库下载完成后再输入库文件,就可以完美运行。然后就是划分测试集和训练集,需要注意的是,在从数据处理函数中导入数据时,足足运行了有将近30多秒&#xff0…

mvc后台post发送json数据

代码比较简单&#xff0c;不废话&#xff0c;直接上代码&#xff1a; /// <summary>/// 提交json数据&#xff0c;并接收/// </summary>/// <param name"apipath">要请求的服务器地址</param>/// <param name"jsonStr">要提…

(转载)20分钟读懂程序集

转自&#xff1a;http://www.cnblogs.com/damonlan/p/3221347.html 说到程序集&#xff0c;我刚开始对这个名词特别的郁闷&#xff01;~。然后 前些天花了些时间 好好读了一下&#xff0c;现在比较清晰了&#xff0c;把一些书上看到的 记下来&#xff0c;以飨读者。希望没浪费你…

大数据胸_喂母乳会导致胸下垂?!你被这个谣言骗了多少年?

很多人认为&#xff0c;给宝宝喂奶会导致胸下垂。有些爱美的妈妈&#xff0c;甚至在宝宝出生6个月后就着急断奶。那么&#xff0c;喂奶真的会导致胸下垂么&#xff1f;给大家讲两个真实的调查结果哈~2004年的一次针对496名新妈妈的调查结果显示&#xff0c;有75%的母乳喂养母亲…

Spring Shell项目发布

Spring Source昨天发布了Spring Shell 。 Spring Shell是一个交互式Shell&#xff0c;可以使用基于Spring的编程模型轻松地通过命令进行扩展。 它是通过除去OSGi依赖项从Spring Roo项目中提取的&#xff0c;并变成了一个独立项目。 这使得那些只希望使用交互式外壳功能的人更容…

自制ACL+DHCP实验(初版)

&#xff08;实验用gns模拟器&#xff09; ACL 实验拓扑&#xff1a; 实验要求&#xff1a; 1.1.1.1→3.3.3.3 不通 11.11.11.11→3.3.3.3 通 2.2.2.2→3.3.3.3 通 实验步骤&#xff1a; 步骤一&#xff1a;基本配置 R1&#xff1a; R1#conf t R1(config)#int lo0 R1(config-if…

pil 图像最大值_第97天:图像库 PIL(二)

上节我们讲了 Python 的图像处理库 PIL 的基本图像处理功能&#xff0c;打开了 PIL 的神秘面纱。这节我们接着讲 PIL 的 Image 模块的常用方法。Image 模块的方法convertImage.convert(modeNone, matrixNone, ditherNone, palette0, colors256)参数说明&#xff1a;mode&#x…

c#的委托用法delegate

转载于:https://www.cnblogs.com/douzujun/p/6555886.html

yii2.0

yii是一个高性能的适用于开发web2.0应用的框架&#xff0c;它自带丰富的功能&#xff0c;包括mvc&#xff0c;dao/aciverecord&#xff0c;缓存&#xff0c;身份验证和基于角色的访问控制&#xff0c;脚手架&#xff0c;测试等&#xff0c;可显著缩短开发时间yii只加载你需要的…

Java中常见的代码冲突

在工作中&#xff0c;最近我对现有Java项目进行了代码清理。 完成该练习后&#xff0c;我可以看到在代码中一次又一次地发生了一组常见的代码冲突。 因此&#xff0c;我想出了此类常见违规的清单&#xff0c;并与同行分享&#xff0c;以使人们有意识地提高代码质量和可维护性。…

np读取csv文件_被 Pandas read_csv 坑了

-- 不怕前路坎坷&#xff0c;只怕从一开始就走错了方向Pandas 是python的一个数据分析包&#xff0c;纳入了大量库和一些标准的数据模型&#xff0c;提供了高效地操作大型数据集所需的工具。Pandas 就是为解决数据分析任务生的&#xff0c;无论是数据分析还是机器学习项目数据预…

Python 第三方库 cp27、cp35 等文件名的含义

What does version name ‘cp27’ or ‘cp35’ mean in Python? 如对于 gensim-0.12.4-cp27-none-win_amd64.whl文件名而言&#xff0c;将其文件名拆分的话&#xff0c;含义分别是&#xff1a; 0.12.4 - package version, they may be using semantic versioningcp27 - this p…

JAVA: 序列化

对象序列化 - 一个对象可以被表示为一个字节序列&#xff0c;保存对象的类型信息、对象的数据&#xff0c;还有对象中的数据类型&#xff0c;以便存储或传输。 反序列化 - 将序列化对象写入文件之后&#xff0c;可以从文件中读取出来&#xff0c;并且对它进行反序列化&#xff…

寻找随机的错误-一个真实的故事

几周前&#xff0c;我完成了RapidFTR开源项目的错误查找 &#xff0c;这花了我三个晚上。 我认为可能值得分享狩猎的故事。 本文将介绍我的工作。 我将概述我的旅程&#xff0c;以实际找到正在发生的事情的根本原因。 我在本文中的目标是突出显示可以使用的技术示例&#xff0c…

铃木uy125摩托车机油_UY125 新瑞梦UM125发布 济南铃木于湖南株洲吹响国IV集结号...

​4月18日&#xff0c;济南铃木在湖南株洲天台开元酒店举行了2019年新品发布会&#xff0c;并于现场发布了两款极具终端战略意义的新款国IV车型&#xff0c;分别为定位“实用运动”的全新个性化踏板车型UY125&#xff0c;以及能够进一步巩固济南铃木在国IV入门级踏板车型领域绝…

473. 核电站问题

★ 输入文件&#xff1a;nucle.in 输出文件&#xff1a;nucle.out 简单对比 时间限制&#xff1a;1 s 内存限制&#xff1a;128 MB 【问题描述】 一个核电站有 N 个放核物质的坑&#xff0c;坑排列在一条直线上。如果连续 M 个坑中放入核物质&#xff0c;则会发生爆炸&…